2011-01-09 58 views
1

好的,所以我想做一个简单的登录页面。我已经成功创建了一个注册页面,但我无法获取登录信息。麻烦制作登录页面?

的login.php:

<?php 

session_start(); 

include("mainmenu.php"); 

$usrname = mysql_real_escape_string($_POST['usrname']); 
$password = md5($_POST['password']); 

$con = mysql_connect("localhost", "root", "[email protected]"); 
if(!$con){ 
    die(mysql_error()); 
} 

mysql_select_db("users", $con) or die(mysql_error()); 

$login = "SELECT * FROM `users` WHERE (usrname = '$usrname' AND password = '$password')"; 
$result = mysql_query($login); 

if(mysql_num_rows($result) == 1 { 

    $_SESSION = true; 
    header('Location: indexlogin.php'); 
} 

    else { 
echo = "Wrong username or password." ; 
} 


?> 

indexlogin.php只是回声 “登录成功”。我究竟做错了什么? 哦,只是FYI-我的数据库是“用户”,我的表是“数据”。

+3

那么我们不知道“indexlogin.php”里面有什么,所以我们真的帮不了你。 – 2011-01-09 22:51:50

+0

你能发布预期结果吗? – 2011-01-09 22:55:46

回答

3
<?php 

session_start(); 

include("mainmenu.php"); 

$usrname = mysql_real_escape_string($_POST['usrname']); 
$password = md5($_POST['password']); 

$con = mysql_connect("localhost", "root", "[email protected]"); 
if (!$con) { 
    die(mysql_error()); 
} 

mysql_select_db("users", $con) or die(mysql_error()); 

$login = "SELECT * FROM `users` WHERE (usrname = '$usrname' AND password = '$password')"; 
$result = mysql_query($login); 

if (mysql_num_rows($result) == 1) { 
    $_SESSION['logged_in'] = true; 
    header('Location: indexlogin.php'); 
    exit; 
} else { 
    echo "Wrong username or password."; 
} 

?> 
  • 我加 mysql_real_escape_string()防止 SQL injection
    不,我没有,因为你已经拥有了它。
  • 我清理了一下代码的格式。
  • 我改变了$_SESSION = true;(这没有意义)到$_SESSION['logged_in'] = true;。然后,在indexlogin.php你可以这样做if ($_SESSION['logged_in']) { echo $secret; }
  • 我固定echo = "Wrong username or password.";echo "Wrong username or password.";
  • 我加了一个右括号附近mysql_num_rows($result) == 1

你说:

我的数据库是 “用户” 和我的表是 “数据”。

如果这是正确的,您需要将SELECT * FROM users更改为SELECT * FROM data

2

我不认为你可以设置$ _SESSION = true,因为$ _SESSION是一个数组。试试$ _SESSION ['logged_in'] = true。