繁体   English   中英

重定向到其他PHP页面

[英]Redirecting to other PHP page

我已经尝试了所有方法,但仍然没有看到按预期方式重定向到index.php 我还添加了ob_start(),但是它不起作用。 然后我尝试了header('location:...') 它也没有用。 然后我尝试使用JavaScript进行重定向,但这也没有用。 有什么建议么 ??

<html>
<head>    

<link rel ="stylesheet" href=css/style.css>
</head>
<body>
<?php
ob_start();
require('dbconnect.php');
require('loginservice.php');
session_start();
//if my form is submitted
if(isset($_POST['submit']))
 {

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

$query1= userIdentity($username,$password);
echo 'returning value deisplay';
  echo '\n' .$query1 . '\n'; 
  echo 'i am here';
  if($query1==1){
  //echo 'welcome dude';
  $_SESSION['username'] = $username;
   //    Redirect user to index.php
   //echo "<script type='text/javascript'>  window.location='index.php';      </script>";
 // header("Location: index.php");
   //e//cho 'heeeelo';
   echo "<script type='text/javascript'>window.location.href = 'index.php';  </script>";
        ob_flush();
        exit(0);       
      }

   // header("Location: index.php");
   else 
   {
   echo  " <div class='form'>
   <h3>Username/password is incorrent.</h3>
   <br/>click here to <a href='login.php'>Login</a></div>";
   } 
   //header("Location: index.php");

  }
  else {

 ?>


 <div class="form">
 <h1>Log In</h1>
 <form action="" method='post' name="login">
 <input type ="text" name="username" placeholder="username" required />
 <input type="password" name="password" placeholder="password" required />
 <input name="submit" type="submit" value="login" />
 </form>
 <p> Not registered yet ? <a href='register.php'>Register Here </a> </p>
 </div>

  <?php
  }
 ?>
 </body>
</html>

与其在PHP代码之前使用html <html><head><body>标记,不如在这些代码之前使用php代码并使用标头功能。 这是可以使用的新版本:

<?php
ob_start();
require('dbconnect.php');
require('loginservice.php');
session_start();
//if my form is submitted
if(isset($_POST['submit']))
 {

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

$query1= userIdentity($username,$password);
echo 'returning value deisplay';
  echo '\n' .$query1 . '\n'; 
  echo 'i am here';
  if($query1==1){
  //echo 'welcome dude';
  $_SESSION['username'] = $username;
   //    Redirect user to index.php
   //echo "<script type='text/javascript'>  window.location='index.php';      </script>";
 // header("Location: index.php");
   //e//cho 'heeeelo';
   header("Location: index.php);
        ob_flush();
        exit(0);       
      }

   // header("Location: index.php");
   else 
   {
   echo  " <div class='form'>
   <h3>Username/password is incorrent.</h3>
   <br/>click here to <a href='login.php'>Login</a></div>";
   } 
   //header("Location: index.php");

  }
  else {

 ?>
<html>
<head>    

<link rel ="stylesheet" href=css/style.css>
</head>
<body>



 <div class="form">
 <h1>Log In</h1>
 <form action="" method='post' name="login">
 <input type ="text" name="username" placeholder="username" required />
 <input type="password" name="password" placeholder="password" required />
 <input name="submit" type="submit" value="login" />
 </form>
 <p> Not registered yet ? <a href='register.php'>Register Here </a> </p>
 </div>

  <?php
  }
 ?>
 </body>
</html>

根据PHP手册页的header()

请记住,必须先通过常规HTML标记,文件中的空白行或从PHP发送任何实际输出,然后调用header()。

因此,将PHP代码移到起始HTML标记上方,如下例所示。 我创建了一个变量来保存消息,以防登录尝试失败(即$message )。 请注意,首先如何将其设置为空白消息(以达到良好的作用域 ),然后在适当时进行设置。 然后将其添加到下面的表格中。

编辑:

您可以在phpFiddle中看到这一点 尝试使用任何用户名登录。 如果输入密码pw ,则应该转到index.php ,该页面上将显示带有phpfiddle.org文本的图像。 此外,我从else块中删除了HTML,因此它将始终显示表单(如果设置了登录失败消息,则将其插入),尽管如果登录失败,您可能希望使其不再显示表单...

<?php
ob_start();
require('dbconnect.php');
require('loginservice.php');
session_start(); 
$message = ''; //initialize to empty, for good scope
//if my form is submitted
if(isset($_POST['submit']))
{

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

    $query1= userIdentity($username,$password);
    if($query1==1){
        $_SESSION['username'] = $username;
        //    Redirect user to index.php</script>";
        header("Location: index.php");
        //...
     }//else:
     else {
          $message = "<div class='form'><h3>Username/password is incorrect.</h3>
          <br />click here to <a href='login.php'>Login</a></div>";
     }
?>
<html>
<head>    
<!-- the rest of the HTML content -->

并在正文中添加该错误消息(如果已定义),例如:

<div class="form"><?php echo $message; ?> 
    <h1>Log In</h1><!-- rest of the HTML for the form-->

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM