如何使我的php登录页面实际登录?

时间:2019-03-30 19:25:26

标签: php sql login

因此,我已经完成了该任务,我仍在尝试使该登录页面实际登录,它应该是使用$ _SERVER ['PHP_SELF']的自引用登录页面,但仍然无法执行任何操作

<center>
<h2>Please log in</h2>
<p>Enter your login ID and password to connect to this system<br/>
</p>
<form name="Input" method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<table border="1" bgcolor="black" cellpadding="10" >
<tr>
    <td><strong>Username:</strong></td>
    <td><input type="text" name="login" value="" size="20" placeholder="Username" /></td>
</tr>
<tr>
    <td><strong>Password:</strong></td>
    <td><input type="password" name="password" value="" size="20" placeholder="**********"/></td>
</tr>
</table>
<table border="0" cellspacing="15" >
<tr>
    <td><input type="submit" value = "Login" /></td>

    <td><input type="reset" value = "Reset" /></td>
</tr>
</table>
</form>
<p>
Please wait after pressing <strong>Log in</strong>
while we retrieve your records from our database.<br/>
<em>(This may take a few moments)</em>
</p>
<hr/>
</center>
</body>
</html>

<?php   //embed in a page with a two input box (named id and pass) form
    require "functions.php";
    $login = $_POST['id'];
    $password = $_POST['password'];
    $conn = db_connect();
    $sql = "SELECT first_name, last_name, email_address, last_access FROM   users WHERE id = '".$login."' AND password= '".$password."'";
    $results = pg_query($conn, $sql);
    if(pg_num_rows($results)){  //not zero means something was found
//user found, use pg_fetch_result to pull user specific info to displa
    }else{
        //user not found, check for just login id
        $sql = "SELECT * FROM  users WHERE id = '".$login."'";
        $results = pg_query($conn, $sql);
         if(!pg_num_rows($results)){  //user not found, empty $login to unstick it
            $login = ""; //when echo’’ed in the form
        }
    }

这是我已经拥有的代码

这是我的老师在课堂上提供的代码,但仍然无效

我也不知道在哪里放置欢迎信息或如何显示欢迎信息。

我曾尝试制作带有欢迎消息的welcome.php文件,但仍然无法正常运行

只是我想念的东西

(另外,如果您选择发表评论,请不要粗鲁,我很挣扎)

谢谢

?>

1 个答案:

答案 0 :(得分:3)

在您的PHP代码中,您尝试从$_POST['Id']获取用户名,但实际上您的字段名称为$_POST['login']

正确更改您的字段名称,我还建议您在开发环境上使用error_reporting(),这将有助于您进行调试。

第二,不要保存普通密码,请始终对密码进行加密。

您的代码已开放用于SQL注入,以防止使用PDO。

另一个建议,如果表单已提交,则可以运行PHP脚本,或者可以使用

if(count($_POST) > 0){
   //execute code
}

最后一个调试建议,当您使用<form>时,如果您认为它不起作用,则必须使用以下命令检查是否获得输入:

print_r($_POST) // POST / GET

这将帮助您了解正在发生的事情。