<?php
//verification function
function correct_login($user, $pass){
$sql = "SELECT
UserName,
UserPass
FROM
plm
WHERE
Username = '".$user."'";
$query = mysql_query($sql);
$result = mysql_fetch_assoc($query);
if(MD5($pass) == $result['UserPass']){
return true;
}
else{
return false;
}
}
if(isset($_GET['action']) AND ("logout" == $_GET['action'])) {
//logout
session_destroy();
echo "<p>";
echo "You are now logged out.<br>";
echo "In order to log back in use the link at the bottom of";
echo " the page";
echo "</p>";
}
elseif(isset($_POST['UserName']) AND '0' == $_POST['UserName']){
//empty query
echo "<p>";
echo "You must enter a username in order to log in.";
echo "</p>";
}
elseif(isset($_POST['submit']) && correct_login($_POST['UserName'], $_POST['UserPass'])) {
if(!isset($_SESSION['ID'])){
$_SESSION['ID'] == $_POST['UserPass'];
}
echo "<p>";
echo "You are logged in";
echo "<a href=\"content.php?display=secureadmin&".SID."\">lawl</a>";
echo "</p>";
}
elseif(isset($_SESSION['ID'])) {
echo "<p>";
echo "You are logged in";
echo " <a href=\"content.php?display=admin&action=logout&".SID."\"";
echo "</p>";
}
elseif(isset($_POST['submit'])) {
//invalid password
echo "<p>";
echo "Invalid password and/or username.";
echo "</p>";
}
else{
echo "<table>";
echo "<form action=\"content.php?display=admin\" method=\"post\" class=\"formular\">";
echo "<tr><td><label>Username: </label></td><td><input type=\"text\" name=\"UserName\">";
echo "</td></tr>";
echo "<tr><td><label>Password: </label></td><td><input type=\"password\" name=\"UserPass\">";
echo "</td></tr><tr>";
echo "<td><input type=\"submit\" name=\"submit\" value=\"Login\" />\n";
echo "</td></tr></form></table>";
}
?>
^ Log-in screen (login funktioniert)
Ich habe die session_start() Funktion global gesetzt (ich benutze <div> tags und verwende sie über include als eine art Frameset), damit meine ich das die Seite, die alle anderen Seiten aufruft vor dem header session_start() enthält
<?php
if(!isset(session_id())){
echo"<p id=\"warning\">";
echo"You are not logged in and/or are not an Administrator.<br>";
echo"</p>";
}
else{
if(isset($_GET['action']) && "news" == $_GET['action']){
//add and edit news
echo"add and edit news";
}
elseif(isset($_GET['action']) && "releases" == $_GET['action']){
//add and edit bands && releases
echo"bands && releases";
}
elseif(isset($_GET['action']) && "stocklist" == $_GET['action']){
//add and edit stock
echo"edit stock";
}
}
?>
^Soll die seite sein, die nur eingeloggte Administratoren sehen können. Wie im vorherigen Source zusehen war habe ich versucht die session id über .SID. im link weiter zu geben. Versteht mich nicht falsch, ich weis das da irgendwo ein grundlegender Fehler ist - konnte ihn aber bisher noch nicht entdecken und beheben[/code]