因此,我已经完成了该任务,我仍在尝试使该登录页面实际登录,它应该是使用$ _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文件,但仍然无法正常运行
只是我想念的东西
(另外,如果您选择发表评论,请不要粗鲁,我很挣扎)
谢谢
?>
答案 0 :(得分:3)
在您的PHP代码中,您尝试从$_POST['Id']
获取用户名,但实际上您的字段名称为$_POST['login']
正确更改您的字段名称,我还建议您在开发环境上使用error_reporting()
,这将有助于您进行调试。
第二,不要保存普通密码,请始终对密码进行加密。
您的代码已开放用于SQL注入,以防止使用PDO。
另一个建议,如果表单已提交,则可以运行PHP脚本,或者可以使用
if(count($_POST) > 0){
//execute code
}
最后一个调试建议,当您使用<form>
时,如果您认为它不起作用,则必须使用以下命令检查是否获得输入:
print_r($_POST) // POST / GET
这将帮助您了解正在发生的事情。