您好我正在尝试学习PHP并想要登录并注销会话但它无法正常工作。 这是我的PHP代码
<?php
session_start();
$username = '';
$password = '';
$database = '';
$server = '';
mysql_connect($server, $username, $password);
mysql_select_db($database);
$userName=mysql_real_escape_string($_POST['username']);
$passWord=md5(mysql_real_escape_string($_POST['password']));
$query = "SELECT id FROM member WHERE userName='$userName' and passWord='$passWord'";
$res = mysql_query($query);
$rows = mysql_num_rows($res);
if ($rows==1)
{
$_SESSION['userName'] = $_POST['username'];
header("Location: page.php");
}
else
{
echo "user name and password not found";
}
?>
这是我的表格
<Form name ="form1" Method ="POST" Action ="Login.php">
<INPUT TYPE = "TEXT" VALUE ="username" Name ="username">
<INPUT TYPE = "TEXT" VALUE ="password" Name ="password">
<INPUT TYPE = "Submit" Name = "Submit1" VALUE = "Login">
</FORM>
如果可能,我可以使用一些帮助
答案 0 :(得分:1)
试试这个
$query = "SELECT id FROM member WHERE userName='$userName' and passWord='$passWord'";
$res = mysql_query($query);
if(mysql_num_rows ($res) == 1)
{
$row = mysql_fetch_assoc($res);
$_SESSION['userName'] = $row['id'];
if (isset($_SESSION['login_return_url']))
{
header('Location: ' . $_SESSION['login_return_url']);
exit;
}
else
{
header("Location: page.php");
}
}
else
{
echo "user name and password not found";
}
答案 1 :(得分:0)
在session_start();应该在第一线。不需要空格或换行符。
答案 2 :(得分:0)
我认为您提供了正确的$username = ''; $password = ''; $database = ''; $server = '';
例如我的数据库有:
$username = 'root';
$password = 'root';
$database = 'mydatabase';
$server = 'localhost';
此外,我建议不要简单地使用md5 or sha1
。使用Salt hashing algorithms
进行加密。
答案 3 :(得分:-1)
您需要在空字符串的顶部提供数据库设置。我不想假设你有。
$username = '';
$password = '';
$database = '';
$server = '';
此外,由于您已经转义了post变量,因此可以使用
$_SESSION['userName'] = $userName;
而不是
$_SESSION['userName'] = $_POST['username'];