Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Undefinierter Index:Benutzername in C:\wamp\www\Website\storeadmin\admin_login.php.. und das gleiche für Passwort

Sie verwenden $_SESSION['name'] in einem Skript und $_SESSION['username'] in einem anderen.

Ich würde mir vorstellen, wenn Sie username ändern an name oder umgekehrt verschwindet der Fehler.

Ich bin mir nicht sicher, was der Fehler mit dem Passwort ist, mein Bauchgefühl ist, dass Sie es sehen, weil die Sitzung gerade erst begonnen hat und das $_SESSION-Array leer ist, versuchen Sie, ein paar if(isset($_SESSION[ '...'])) herum.

Im admin_login sollten Sie überprüfen, ob der Login-Button geklickt wurde und Sie nicht nur das Formular laden, d.h.

//admin_login.php
<?php
session_start();
if(isset($_SESSION["member"])){
    header("location:index.php");
    exit();
}

if(@$_POST['button'] == 'LogIn'){     // <-  Check the user has clicked the button
  $manager = preg_replace('#[A-Za-z0-9]#i',"",$_SESSION["username"]);
  $password = preg_replace('#[A-Za-z0-9]#i',"",$_SESSION["password"]);


  include "../storescripts/connect_to_mysql.php";
  $sql = mysql_query("SELECT * FROM admin WHERE username ='$manager' AND password ='$password'LIMIT 1");
  $exist_count = mysql_num_rows($sql);
  if($exist_count == 1){
      while(mysql_fetch_array($sql)){
          $id = $row["id"];
      }

      $_SESSION["id"]= $id;
      $_SESSION["name"]= $manager;
      $_SESSION["password"]= $password;
      header("location:index.php");
      exit();

    }else{
      echo 'This information is incorrect,try again <a href = "index.php">Click Here</a>';
      exit();
    }

}


?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
....

Einige andere zu beachtende Dinge:

  • Du hast zwei <html> -Tags im Anmeldeformular
  • Das Aktionsattribut des Anmeldeformulars hat ein Leerzeichen vor dem Skriptnamen
  • Wenn Sie LIMIT 1 in Ihrem SQL verwenden, müssen Sie das mysql_fetch_array nicht umschließen in einem while()