用于连接数据库和登录表单的PHP代码

时间:2014-06-07 06:24:42

标签: php mysql forms

您好我正在尝试学习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>

如果可能,我可以使用一些帮助

4 个答案:

答案 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'];