0

重複の可能性:
未定義のインデックス:C:\ wamp \ www \ Website \ storeadmin \admin_login.php..のユーザー名とパスワードも同じ

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

?>
<?php
if(isset($_POST["username"]) && isset($_POST["password"])){     // <-  Check the user has clicked the button
  $manager = preg_replace('#[A-Za-z0-9]#i',"",$_POST["username"]);
  $password = preg_replace('#[A-Za-z0-9]#i',"",$_POST["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["manager"]= $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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> AdminLogin</title>
<link rel="stylesheet" href="../style/style.css" type="text/css" media="screen"/>
</head>

<body>
<div  id="mainWrapper" > 
    <?php include_once("../template_header.php");?>
    <div id="pageContent" > 
    <div align="left" "style="margin-left:040px;"><h1>Please login to continue</h1><br />
    </div>
    <form id="form1" name="form1" method="post" action="admin_login.php"> 
    UserName<br />
    <input type="text" name="username" id="username" size="40"/>
    Password<br />
    <input type="password" name="password" id="password" size="40"/> 
    <br />
    <br />
    <br /> 
    <input type="submit" name="button" id="button" value="LogIn"/>  
    </form>
    </div>
    <?php include_once("../template_header.php");?>
</div>
</body>
</html>
//index.php
<?php
session_start();
if(!isset($_SESSION["member"])){
    header("location:admin_login.php");
    exit();
}

$managerID = preg_replace('#[^0-9]#i',"",$_SESSION["id"]);
$manager = preg_replace('#[A-Za-z0-9]#i',"",$_SESSION["manager"]);
$password = preg_replace('#[A-Za-z0-9]#i',"",$_SESSION["password"]);


include "../storescripts/connect_to_mysql.php";
$sql = mysql_query("SELECT * FROM admin WHERE id ='managerID' AND username ='$manager' AND password ='$password'LIMIT 1");
$exist_count = mysql_num_rows($sql);
if($exist_count == 0){
    echo("Your login session data in not in the database");
    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">
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Service Admin Area</title>
<link rel="stylesheet" href="../style/style.css" type="text/css" media="screen"/>
</head>

<body>
<div  id="mainWrapper" > 
    <?php include_once("../template_header.php");?>
    <div id="pageContent" > 
    <div align="left" "style="margin-left:040px;"><h1>Hello Store Manager .What would you loke to do today</h1><br />
    <h3><a href="inventory_list.php">Manage Inventory</a></h3><br/><h3><a href="">Manage Me</a></h3><br/></div></div>
    <?php include_once("../template_header.php");?>
</div>
</body>
</html>

私が直面している問題は、index.phpphpmyadminで設定したデータベースで指定されている正しいユーザー名とパスワードを入力した後でも、自分のページにログインできないことです。ログインしようとするたびに、で説明echo 'This information is incorrect,try again Click Here'されているようにが呼び出されますadmin_login.php。少しイライラしています。みんな助けてくれませんか?

4

2 に答える 2

1

デバッグを試してください。

  • preg_replace 呼び出しの前後で $_POST['username'] と $_POST['password'] の値を確認してください。
  • 'or die mysql_error()' を mysql_query() の呼び出しに追加して、正常に実行されているかどうかを確認します。
  • $sql の値をエコーアウトして、クエリを確認できるようにします。
  • header() コマンドは、名前と値の間にスペースを必要としませんか? または\r\nその後?再確認する価値があります。
  • 通常、さまざまな段階でより多くの出力が提供されるため、問題を追跡するのは簡単です。

そして (動作するようになったら)、crypt() または md5() + salt をデータベースのパスワード フィールドに追加してください。

于 2012-06-27T15:12:59.147 に答える
0

preg_replace が変数を空にしていると確信しています

$manager = preg_replace('#[A-Za-z0-9]#i',"",$_POST["username"]);   $password = preg_replace('#[A-Za-z0-9]#i',"",$_POST["password"]); 

PHPドキュメントhttp://uk.php.net/manual/en/function.preg-replace.phpによると

それらを削除しようとしましたか?

于 2012-06-27T15:27:34.277 に答える