我的表单存在登录问题。请任何人帮助我找出错误。
当我尝试登录时,它始终显示登录失败。我的数据库表名是 sign_up ,字段是 id ,名称,性别, Email_id ,用户名,密码的
我的登录表单代码( loginform.php ):
<?php session_start();?>
<html>
<?php
include('connection.php');
$obj = new connection;
$obj->connect();
?>
<body>
<?php session_destroy();
session_unset();
?>
<h3 align="center"> LOGIN </h3>
<table align="center">
<form action="login.php" name="frm" method="post">
<tr><td>Username</td><td><input type="text" name="txt1" value=""/></td></tr>
<tr><td>Password</td><td><input type="password" name="txt2" value=""/></td></tr>
<tr><td><input type="submit" value="Login"/></td>
<?php $query = mysql_query("SELECT COUNT(id) FROM sign_up");
$row = mysql_fetch_array($query);
if($row[0] == 0){
echo '<td><a href="registerform.php">New User?</a></td>';
}
?>
</tr>
</form>
</table>
</center>
</body>
</html>
和我的登录功能( login.php )
<?php
include('connection.php');
session_start();
$obj = new connection;
$obj->connect();
$username=$_POST['txt1'];
$password=md5($_POST['txt2']);
$query=mysql_query("SELECT Username,Password FROM sign_up WHERE Username='$username' and Password='$password'");
$row=mysql_fetch_array($query);
$user=$row['Username'];
$pass=$row['Password'];
if(($username==$user) && ($password==$pass))
{
header("Location:welcome.php");
}
else
{
echo "Login Failed!!!";
}
?>
答案 0 :(得分:0)
$username
缺少查询中的单引号。将您的查询更改为:
$query=mysql_query("SELECT Username,Password FROM sign_up WHERE Username='$username'
and Password='$password'");
答案 1 :(得分:0)
尝试使用$username
添加引号,$_REQUEST['name']
是什么
您可能希望在会话使用中设置用户名$user
$username=trim($_POST['txt1']);
$password=trim($_POST['txt2']);
$password=md5($password);
$query=mysql_query("SELECT Username,Password FROM sign_up WHERE Username='$username'
and Password='$password'");
$rows = mysql_num_rows($query);
if($rows > 0) {
$row=mysql_fetch_array($query);
$user=$row['Username'];
$pass=$row['Password'];
if(($username==$user) && ($password==$pass))
{
$_SESSION['name'] = $user;
}
}
else {
echo 'No rows found';
}
答案 2 :(得分:0)
请查看以下链接
http://riturajkumar12.blogspot.in/2014/02/login-with-username-and-password-using.html
你会得到详细的回答
答案 3 :(得分:0)
首先,您应该真正观看此视频https://www.youtube.com/watch?v=_jKylhJtPmI,然后使用预准备语句而不是旧式语法。
要生成更好的代码,您应该考虑使用PDO而不是mysql函数,因为它允许您在一行代码中更改数据库引擎。
然后,您应该使用对象语法。一切都应该封装在对象中,你应该只有一个入口点作为你的应用程序。
在完成所有这些更改后,它应该可以正常工作,因为您不会有Jenz所说的引用问题。
要专门回答您的问题,您可以执行print_r($row)
并向我们提供结果吗?