繁体   English   中英

用户使用PHP登录

[英]User login using PHP

我无法追查此代码的错误。 我试图通过他的用户名和密码登录用户。 这是我想要做的。

index.php文件:

此文件检查是否设置了用户名cookie并相应地显示该文件。 此文件将用户名和密码提交到名为validate.php的文件。

validate.php:

<?php
session_start();
include("connector.php");
$var=connect();
if($var==10)
{
    $valid=false;
    $row= mysql_query('select * from users where username="'.$_POST["username"].'"');
        if($row['password']==$_POST["password"])
        $valid=true;
     if($valid)
     {
         $_SESSION["username"]=$_POST["username"];
         $_SESSION["userid"]=$row['userid'];
        echo "<script>document.location.href='./session_creator.php'</script>";
     }
     else
     {
        echo "invalid";
     }
}
?>

connector.php ==>

<?php
$connection=0;
function connect()
{
    $dbc = mysql_connect('localhost:3306','root','root');
    if (!$dbc)
    {
        die ('Not connected:'. mysql_error());
        return -10;
    }
    else
    {
        $connection = mysql_select_db("citizennet",$dbc);
        if(!$connection)
        {
            die("Not connected: ". mysql_error());
            return -20;
        }
    }
    return 10;
}

?>

session_creator.php:

<?php
    session_start();
    setcookie("username",$_SESSION['username'],time()+3600);
    setcookie("userid",$_SESSION['userid'],time()+3600);
    echo "<script>document.location.href='./index.php'</script>";
?>

重定向的index.php文件报告未设置cookie。 我是新手,如果我关注的过程是错误的,请纠正我。

我正在添加index.php来验证用户是否已登录:

<?php
if(!isset($_COOKIE["username"]))
echo '<a id="login_button">login</a> <div id="login_box_pane"><form action=validate.php method="post">Username: <input type="text"/> Password:<input type="password"/><input type="submit"/></form></div>';
else
echo "<a>".$_COOKIE["username"]."</a>";
?>
$user = mysql_real_escape_string($_POST['user']);
$pass = mysql_real_escape_string($_POST['pass']);

$sql = "SELECT * FROM users WHERE username='$user' AND password='$pass'";
$result = mysql_query($sql);

这将解决您的SQL注入漏洞,并且只有在用户名和密码都正确的情况下才能获得正确的帐户

现在,您可以使用条件来设置cookie和会话

当您在页面上设置cookie时,它应该是这样的:

<?php //login page
session_start()
$username = $_POST['username'];
$password = $_POST['password'];

/*
Check authentication with database values
*/
//if login successful set whatever session vars you want and create cookie
$_SESSION['username'] = $username;
setcookie($username, $password, time()+3600);

?>

在此之前,您将检查用户凭据并将其登录或拒绝。 登录后,您可以设置会话变量。 然后创建cookie使用上面的代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM