标头位置将无法在PHP中工作

时间:2013-10-26 03:37:15

标签: php

我正在为我的网站创建一个登录页面,但标题位置不起作用。这是login.php的代码:

<?php
include ( './includes/header.php' );

if (isset($_POST['submit'])) {
  $username = $_POST['username'];
  $password = $_POST['password'];
 $check_username = mysql_query("SELECT username FROM users WHERE username='$username'");
 $numrows = mysql_num_rows($check_username);
 if ($numrows != 1) {
  echo 'That User doesn\'t exist.';
 }
 else
 {
  $check_password = mysql_query("SELECT password FROM users WHERE password='$password' && username='$username'");
  while ($row = mysql_fetch_assoc($check_password)) {
   $password_db = $row['password'];

   if ($password_db == $password) {
     $_SESSION['username'] = $username;
    header("Location: members.php");
   }
  }
 }
}

?>
<h2>Login to Your Account</h2>
<form action='login.php' method='POST'>
<input type='text' name='username' value='Username ...' onclick='value=""'/><p />
<input type='password' name='password' value='Password ...' onclick='value=""'/><p />
<input type='submit' name='submit' value='Login to my Account' />
</form>

如果有人可以帮助我,我真的很感激,谢谢。

P.S。

如果您需要头文件的php部分,请访问:

<?php
session_start();
include ( './includes/functions.php' );
include ( './includes/connect_to_mysql.php' );
?>

2 个答案:

答案 0 :(得分:0)

如果您指的是header("Location: members.php");无法正常工作,则需要确保在发送此位置标头之前未向浏览器输出任何内容。这包括不在header.php或其他包含的文件中输出任何内容。

另外,根据PHP header documentation上的这个说明,您应该在位置使用完整的URI:重定向:

  

HTTP / 1.1需要绝对URI作为»Location的参数:包括方案,主机名和绝对路径,但某些客户端接受相对URI。您通常可以使用$ _SERVER ['HTTP_HOST'],$ _SERVER ['PHP_SELF']和dirname()自己创建一个相对的URI:

答案 1 :(得分:-4)

尝试在标题php中添加Ob_start