0

不幸的是,在我的登录表单中,没有输入任何数据,仍然显示为登录成功。我是否犯了任何特定错误,还是应该添加更多代码?非常感谢您的帮助

PHP

<table style= width:300px; border="0"; align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<form name="form1" method="post" action="checklogin.php">
<td>
<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td colspan="3"><strong>Member Login </strong></td>
</tr>
<tr>
<td width="78">Username</td>
<td width="6">:</td>
<td width="294"><input name="myusername" type="text" id="myusername"></td>
</tr>
<tr>
<td>Password</td>
<td>:</td>
<td><input name="mypassword" type="text" id="mypassword"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" value="Login"></td>
</tr>
</table>
</td>
</form>
</tr>
</table>

CSS - checklogin.php

<?php

$host="localhost";
$username="root";
$password="";
$db_name="Hockey Club";
$tbl_name="members";


mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");


$myusername=$_POST['username'];
$mypassword=$_POST['password'];


$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);

$sql="SELECT * FROM members WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);


$count=mysql_num_rows($result);



if($count==1){

$_SESSION['username'] = $myusername];
$_SESSION['password'] = $mypassword];
header("location:login_success.php");
}
else {
echo "Wrong Username or Password";
}
?>

和 - login_success.php

<?php
session_start();
if (!isset($_SESSION['myusername'])) {
header("location:Index.php");
}
?>

<html>
<body>
Login Successful
</body>
</html>
4

1 回答 1

0

您永远不应将密码以其原始形式存储在数据库中。如果您是编程新手,那里有很多很棒的用户身份验证脚本。在以这种方式创建生产站点之前,请先研究它们。

这是一个开始的好地方。

散列密码

并且不要使用mysql。使用 mysqli 或 PDO

这是一个谷歌链接让你去:用户身份验证

于 2013-01-11T19:32:33.677 回答