我的主要目标是提供用户身份验证并将其重定向到各自的Web服务中 . 首先,我创建了包含登录表单的HTML页面 . 因此,当用户输入数据时,我从数据库中检索密码和电子邮件信息,如果输入的数据是正确的,那么我应该将它们重定向到另一个PHP页面 . 所以我的问题来了....我正在使用PHP标头将它们重定向到另一个页面,一切都很好用HTML和MySQL数据库,用户输入表单数据并访问他们的网页 . 但是如果用户试图回到原始页面,它将被重定向到 Headers 中提到的页面!用户无法访问原始表单页面 . 我在HTML标签中使用了该功能 . 我没有在表单中提及任何操作 . 如果用户输入错误的电子邮件ID或错误的密码,则该函数会在同一表单页面中显示错误消息,但如果他输入正确的数据,则会将其定向到 Headers 位置中的页面 . 因此,当用户希望返回到表单页面或在某些页面之后重新启动原始页面时,它将被重定向到 Headers 位置 . 因此,当我删除 Headers 位置并重新加载它时,我能够看到原始页面 . 任何人都可以帮我纠正代码吗?
<?php
function check_username($eid_login,$pwd_login)
{
$servername="Localhost";
$username="root";
$password="2537@Nuka";
$dbname="Secure_Drive";
$conn=mysqli_connect($servername,$username,$password,$dbname);
if(!$conn)
{
#die("Couldn't to connect to database:".mysqli_connect_error());
}
else
{
#echo "Connected sucessfully to the database";
}
$sql="SELECT * FROM SignUp_Info WHERE Email_Id='$eid_login'";
$result=mysqli_query($conn_db_login,$sql);
if(mysqli_num_rows($result)>0)
{
while($row=mysqli_fetch_assoc($result))
{
$verify_login_pwd=$row["Password"];
if($pwd_login!=$verify_login_pwd)
{
$password_match="You entered wrong password";
echo "<p class=\"php\">".$password_match."</p>";
}
else
{
header('Location:sample.php');
}
}
}
else
{
$email_exits="Id does not exists";
echo "<p class=\"php\">".$email_exits."</p>";
}
}
?>
<html>
<head>
<title>
Login-Home
</title>
<link rel="stylesheet" type="text/css" href="css/login.css">
</head>
<body>
<header>
<div class="name">
<a href="#"><h1>Secure Drive</h1></a>
</div>
</header>
<main>
<div>
<center>
<form method="POST">
<fieldset class="formstyle">
<legend>Login</legend>
<div class="adjust">
<br><label class="labels">E-mail ID</label><br>
<input class="floattype" type="text" name="emailid_login" placeholder="E-mail Id" required><br>
<br><label class="labels">Password</label><br>
<input class="floattype" type="password" name="password_login" placeholder="Password" required><br>
<br><button type="submit" value="Login">Login</button>
</div>
</fieldset>
</form>
<?php
$eid_login=$_POST["emailid_login"];
$pwd_login=$_POST["password_login"];
check_username($eid_login,$pwd_login); ?>
<br><br><a class="link" href="signup.php">Click here to SignUp</a>
</center>
</div>
</main>
<footer>
<p>©2016 Secure Drive,Gryffindors Inc.</p>
</footer>
</body>
</html>
2 回答
在你的问题中发生了很多事情,我对你的问题有点失落 . 我认为你问的是如果表单已经提交,如何只运行表单处理代码 .
您可以像这样检查请求方法:
现在
check_username
函数只能在表单提交时运行 .你需要提到
session_start();
每页的顶部 . 这是表单页面 .在while循环else部分中添加一个会话变量 .
sample.php
页logout.php来使用它