php重定向到标题位置

问题描述:

该项目的主要目的是提供用户身份验证并将其重定向到其各自的Web服务。首先我创建了包含登录表单的HTML页面。所以当用户输入他们的数据时,我会从数据库中检索密码和电子邮件信息,如果输入的数据是正确的,那么我应该将它们重定向到另一个PHP页面。所以我的问题来到这里....我使用PHP头将它们重定向到另一个页面,HTML和MySQL数据库一切正常,用户正在输入表单数据并访问他们的网页。但是,如果用户试图回到原来的页面,它将被重定向到页眉中提到的页面!用户无法访问原始表单页面。我在HTML标记中使用了该函数。我没有在表单中提到任何操作。如果用户输入错误的电子邮件ID或错误的密码,则该函数在同一表单页面中显示错误信息,但是如果他输入了正确的数据,他将被引导到页眉位置中的页面。因此,当用户希望返回表单页面或在一些后重新启动原始页面时,它将被重定向到标题位置。所以当我删除标题位置并重新加载时,我可以看到原始页面。任何人都可以帮助我纠正代码?php重定向到标题位置

<?php 
function check_username($eid_login,$pwd_login) 
{ 
$servername="Localhost"; 
$username="root"; 
$password="[email protected]"; 
$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>&copy;2016 Secure Drive,Gryffindors Inc.</p> 
</footer> 
</body> 
</html> 

在你的问题上有这么多的事情,我对你的问题有点失落。我想你问的是如何在表单提交后才运行表单处理代码。

您可以检查这样的请求方法:

if ($_SERVER['REQUEST_METHOD'] === 'POST') { 
    $eid_login=$_POST["emailid_login"]; 
    $pwd_login=$_POST["password_login"]; 
    check_username($eid_login,$pwd_login); ?> 
} 

现在check_username功能只能在表单提交运行。

您需要在每页的顶部提及session_start();。 这是表单页面。

if(isset($_SESSION['login'])){ 
    header('Location:sample.php'); 
} 

将内部会话变量添加到while循环else部分。

if($pwd_login!=$verify_login_pwd) 
    { 
    $password_match="You entered wrong password"; 
    echo "<p class=\"php\">".$password_match."</p>"; 
    } 
    else 
    { 
     $_SESSION['log'] = $username; 
     header('Location:sample.php'); 
    } 

sample.php

<?php 
    session_start(); 
    if(!isset($_SESSION['login']){ 
     header('Location:form.php'); 
    } 

?> 

logout.php使用此

<?php 
session_start(); 
if(session_destroy()) 
{ 
header("Location: form.php"); 
} 
?>