xan*_*xan 0 php sql database login
我想编写一个登录脚本,用户输入电子邮件ID和密码,如果电子邮件和密码都正确,则会转到另一个页面.如果电子邮件和密码是正确的; 值存储在DB中.
这是整个纠正的工作代码:
<?php
if($_POST['submit']){
$email = protect($_POST['email']);
$password = protect($_POST['password']);
$md5password=MD5($password);
if(!$email || !$password){
echo '<span style="color: red;" /><center>You need to fill in your <b>User Name</b> and <b>Password</b>!</center></span>';
}else{
$res = mysql_query("SELECT * FROM `employer` WHERE `email` = '".$email."'");
$num = mysql_num_rows($res);
if($num == 0){
echo '<span style="color: red;" /><center>The <b>E Mail ID</b> you supplied does not exist!</center></span>';
}else{
$res = mysql_query("SELECT * FROM `employer` WHERE `email` = '".$email."' AND `password` = '".$md5password."'");
$num = mysql_num_rows($res);
if($num == 0){
echo '<span style="color: red;" /><center>The <b>Password</b> you supplied does not match the one for that E Mail ID!</center></span>';}else{
$row = mysql_fetch_assoc($res);
$_SESSION['uid'] = $row['id'];
echo "<center>You have successfully logged in!</center>";
$time = date('U')+50;
mysql_query("UPDATE `employer` SET `online` = '".$time."' WHERE `id` = '".$_SESSION['uid']."'");
mysql_query("UPDATE employer (date) VALUES (NOW())");
header('Location: loggedin_employer.php');
}
}
}
}
?>
Run Code Online (Sandbox Code Playgroud)
有一个教程在这里等几十个地方.
但是,您查看教程之前,检查出作弊OWASP认证用纸.
太多人构建不安全的系统.不要成为那些家伙之一. OWASP是一个优秀的资源,所有Web开发人员都应该非常熟悉它.
当你在这里时,你可能想要考虑杰夫阿特伍德的出色建议.
杰夫的文章摘录:
我总是痛苦的是,整个互联网上的每个rinky-dink网站都要求我为他们创建一个特殊的用户名和密码.是的,如果你是一个阿尔法极客,那么你可能会使用特殊软件和实用程序带上的USB密钥组合,为你经常访问的几十个网站生成安全的用户名和密码.但对于广大的,沉默的大多数普通人来说,他们对安全一无所知,但最重要的是要求方便,这意味着一件事:一遍又一遍地使用相同的用户名和密码.它也可能是一个简单的密码.
在开始你的任务之前,Jeff还有一篇关于OpenId的好文章值得一读.
最后,也许最重要的是,不要错误地存储密码! 鉴于大多数人在任何地方使用相同的用户名/密码,如果您的网站遭到入侵,那么他们的所有帐户都可能会受到损害.
