我正在尝试将索引页面重定向到user-home.php
页面。但是当我尝试登录时显示错误的用户。在这种情况下如何重定向到用户主页。希望得到帮助。提前致谢。下图是注册页面的数据库属性。
这里是我的索引页代码
<form method="post" action="" autocomplete="on">
<h3>Log in</h3>
<hr>
<p>
<label for="username" class="uname" data-icon="u" > Your username </label>
<input id="username" name="username" required="required" type="text"/>
</p>
<p>
<label for="password" class="youpasswd" data-icon="p"> Your password </label>
<input id="password" name="password" required="required" type="password"/>
</p>
<p class="login button">
<input type="submit" name="login" value="Login" />
</p>
</form>
<h2>dont have an account signup here</h2>
<li><a href="signup-form.php">signup</a></li>
</table>
<?php
if(isset($_POST['login'])){
$username = $_POST['username'];
$password = $_POST['password'];
$q=$db->prepare("SELECT* FROM signup WHERE username='$username' && password='$password'" );
$q->execute();
$row=$q->fetch(PDO::FETCH_OBJ);
$count = $q->rowcount();
if ($count >= 1){
session_start();
$_SESSION['id'] = $row['user_id'];
header('location:user-home.php');
}else{
echo "<script>alert ('Wrong User')</script>";
}
}
?>
答案 0 :(得分:-1)
当数据库发现行数大于零时,您的代码应该工作。因此,请确保您输入的用户名和密码确实存在于数据库中。如果存在这些代码,则此代码应该起作用,并且您的脚本应重定向到user-home.php。
如果没有,请像我一样添加echo语句,这样您就可以知道您的计数值是否大于零。 如果显示零,则表示您的数据库没有该用户名和密码。因此,首先请在下面的数据库查询中直接运行给定的数据库
insert into signup (username, password, fname, address, city, age, bgroup, email, mno, donation_date)
values('admin', 'admin', 'Shujat', 'Street #7', 'Islambad, Pakistan', 23, 'O-', 'demo@demo.com', 'test', '2019-03-01');
之后,您必须尝试使用以下给定的凭据登录...
username:admin
password:admin
之后,使用下面给出的代码,您应该能够重定向。
if(isset($_POST['login'])){
$username = $_POST['username'];
$password = $_POST['password'];
$q=$db->prepare("SELECT* FROM signup WHERE username='$username' && password='$password'" );
$q->execute();
$row=$q->fetch(PDO::FETCH_OBJ);
$count = $q->rowcount();
if ($count >= 1){
session_start();
$_SESSION['id'] = $row['user_id'];
header('location:user-home.php');
}else{
echo "Total count: " .$count .'<br>Total count is less then zero';
}
}