Denkfehler in einem Login-Script

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/denkfehler_in_einem_login-script_130062/page_1 - zur Vollversion wechseln!


moidaschl schrieb am 20.11.2004 um 16:57

Also ich möcht ned diverse Login-Skripten kopieren usw, jetz hab ich mir mal selber gedanken gemacht.

es funktioniert an und für sich schon recht gut, nur der logout macht mir kopfzerbrechen


man kann sich einfach ned ausloggen i glaub es liegt daran dass die session ned wirklich zerstört wird :D
hier mal der source:

Code: PHP
 function adminpanel() {
  echo "willkommen im adminpanel<br \>";
  echo "<a href=\"index.php?main=admin&local=logout&\">Logout</a>\n";
 }
 
 function loginformular() {
   echo "<form action=\"index.php?main=admin\" method=\"post\">\n";
   echo "<table class=\"login\" width=\"50%\" align=\"center\">\n";
   echo " <tr>\n";
   echo "  <td><b>Username</b></td>\n";
   echo "  <td class=\"login_rightboxes\">";
   $sql = "SELECT
              ID, Name
          FROM
              user
          ORDER BY
              Name ASC;";
   $result = mysql_query($sql) OR die(mysql_error());
   echo " <select size=\"1\" name=\"UserID\" id=\"name\" class=\"textfeld\">\n";
   echo "   <option value=\"0\" selected=\"selected\">--- Bitte Auswählen ---</option>\n";
   while($row = mysql_fetch_assoc($result)) {
      echo "<option value=\"".$row['ID']."\">".$row['Name']."</option>\n";
   } // while $row mysql fetch assoc
   echo "  </select>\n";
   echo "</td>\n";
   echo "  </tr>\n";
   echo "  <tr>\n";
  				echo "   <td><b>Passwort</b></td>\n";
  				echo "   <td class=\"login_rightboxes\"><input type=\"password\" name=\"Password\" class=\"textfeld\"/></td>\n";
  				echo "  </tr>\n";
  				echo "  <tr>\n";
  				echo "   <td><input type=\"submit\" name=\"submit\" value=\"Login\" class=\"textfeld\" /></td>\n";
  				echo "   <td class=\"login_rightboxes\"> </td>";
  				echo "  </tr>\n";
  				echo "</table>\n";
				echo "</form>\n";
 
 }
 
 
  if(login_right($_POST['UserID'], $_POST['Password'])){    
  // UserIp und SessionID werden in die Datenbank eingetragen  
    $UserIP = $HTTP_SERVER_VARS["REMOTE_ADDR"];
    $SessionID = session_id();
    $sql = "INSERT INTO user_lin
                 (SessID, UserIP)
            VALUES
                 ('".$SessionID."', '".$UserIP."')";
    mysql_query($sql) OR die(mysql_error());
  // Jetzt erst das Adminpanel aufrufen
    adminpanel();
 } else {
  if($_GET['local'] == "logout")
   session_destroy();
   
  $UserIP = $HTTP_SERVER_VARS["REMOTE_ADDR"];
  $SessionID = session_id();
  if(check_login($UserIP, $SessionID))
   adminpanel();
  else 
   loginformular();
 }

oben zwei funktionen, damit ich es unten ned 10000 mal schreiben muss.. die funktionen check_login und login_right sind hier

check_login
Code: PHP
function check_login($uip, $sid) {
        $sql = "SELECT
                    COUNT(*) as Anzahl
                FROM
                    user_lin
                WHERE
                    UserIP = '".$uip."' AND
                    SessID = '".$sid."'";
        $result = mysql_query($sql) OR die(mysql_error());
        $row = mysql_fetch_assoc($result);
        mysql_free_result($result);
        return $row['Anzahl'];
}


login_right
Code: PHP
function login_right($id, $pass) {
        $sql = "SELECT
                    COUNT(*) as Anzahl
                FROM
                    user
                WHERE
                    ID = '".$id."' AND
                    Password = MD5('".$pass."');";
        $result = mysql_query($sql) OR die(mysql_error());
        $row = mysql_fetch_assoc($result);
        mysql_free_result($result);
        return $row['Anzahl'];
    }


tia


moidaschl schrieb am 20.11.2004 um 17:31

verdammt, wie kann man so angrennt sein :D

ich schreib ja die werte in die datenbank, ich sollte sie beim logout auch wieder entfernen

muha oke :D

sry 4 thread, könnts ihn auch deleten




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025