0
  //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["name"]);
    $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>

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


$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">
<html >
<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>

これは面倒で、エラーが発生しません。かなり小さいことはわかっており、皆さんの間でエラーを修正できることを本当に願っています.上記の2つのphpページは、私の練習用Webドキュメントで管理者ログインページを作成するためのものです.

4

1 に答える 1

1

$_SESSION['name']あるスクリプトと$_SESSION['username']別のスクリプトで使用しています。

に変更した場合、またはその逆に 変更usernameした場合、エラーは解消されると思います。name

パスワードのエラーが何であるかはわかりません。私の直感では、セッションが開始されたばかりで $_SESSION 配列が空であるため、あなたがそれを見ているということです。いくつかの if(isset($_SESSION['.. 。'])) その周り。

admin_login では、ログイン ボタンがクリックされていること、およびフォームをロードしているだけではないことを確認する必要があります。

//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">
....

その他の注意事項:

  • <html>ログインフォームに2 つのタグがあります
  • ログイン フォームのアクション属性には、スクリプト名の前にスペースがあります
  • SQL で LIMIT 1 を使用する場合は、でラップする必要はありませmysql_fetch_arraywhile()
于 2012-06-27T10:58:49.140 に答える