2012-06-27 3 views
0

Можно создать дубликат:
Undefined index: username in C:\wamp\www\Website\storeadmin\admin_login.php..and the same for passwordне в состоянии войти в нужное место

//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.php страницу даже после того, как я установил правильное имя пользователя и пароль, как указано в моей базе данных, которые я установил через phpmyadmin. Каждый раз, когда я пытаюсь войти в систему, он вызывает echo 'This information is incorrect,try again Click Here', как указано в admin_login.php. Я немного расстроен. Можете ли вы мне помочь?

+0

Пожалуйста, постарайтесь опубликовать только соответствующий код. что ты уже испробовал? – TJHeuvel

+0

ваш sql даже работает? это пробел, который не требуется между $ password и limit? SELECT * FROM admin WHERE username = '$ manager' AND password = '$ password' LIMIT 1 –

+0

@NicholasKing sql запущен. Проблема по-прежнему сохраняется после указанной вами вещи. – user1485323

ответ

1

Попробуйте некоторые отладки;

  • Проверьте значения $ _POST ['username'] и $ _POST ['password'] до и после вызовов preg_replace.
  • Добавьте 'или die mysql_error()' к вызову mysql_query(), чтобы узнать, работает ли это ok
  • Выполните эскиз значения $ sql, чтобы вы могли посмотреть на запрос.
  • Не требует ли команда header() пробела между именем и значением? или a \ r \ n потом? Стоит двойная проверка.
  • Обычно обеспечивают более высокую производительность на разных этапах, и это должно быть тривиально, чтобы отследить проблему.

И (как только он работает), пожалуйста, добавьте в базу данных пароль crypt() или md5() +.

0

им вполне уверен, что preg_replace опустошается переменные

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

в соответствии с PHP Docs http://uk.php.net/manual/en/function.preg-replace.php

вы пытались удалить их?

Смежные вопросы