php标题问题

时间:2011-07-19 07:06:11

标签: php header

你可以帮助我吗?

我转移到新托管和我的Suddnley收到此错误:

警告:无法修改标题信息 - 已在第25行的/home/capital/public_html/Google/CheckLogin.php中发送的标题(由/home/capital/public_html/Google/Connect.php:1开始输出)< / p>

这是我的剧本:

<?php
    session_start();
    $server = 'localhost';
    $user = '***';
    $pass = '***';
    $db = '***';

    // Connect to Database
    $connection = mysql_connect($server, $user, $pass) or die ("Could not connect to server ... \n" . mysql_error ());
    mysql_select_db($db);


    $my_t=getdate(date("U"));
    $DateTime = ("$my_t[weekday], $my_t[month] $my_t[mday], $my_t[year]");

    $myusername=$_POST['myusername'];
    $mypassword=$_POST['mypassword'];


    $myusername = stripslashes($myusername);
    $mypassword = stripslashes($mypassword);
    $myusername = mysql_real_escape_string($myusername);
    $mypassword = mysql_real_escape_string($mypassword);
    $sql=mysql_query("SELECT * FROM Users WHERE Username='$myusername' and Password='$mypassword' and status='1'")or die(mysql_error());
    if(mysql_num_rows($sql) > 0){
        while($count=mysql_fetch_array($sql)){
            $_SESSION['user']=$count['userid'];
            $TodayLogin = $count['TodayLogin'];
        }
        mysql_query("UPDATE Users SET LastLogin = '$TodayLogin' WHERE userid = '$_SESSION[user]'"); 
        mysql_query("UPDATE Users SET TodayLogin = '$DateTime' WHERE userid = '$_SESSION[user]'"); 
        header("location:index.php");

    }
    else
    {
        echo "<div style='text-align:center;font-family:arial;font-size:32px;font-weight:bold;'>user or password incorrect</div>";
    }
?>

3 个答案:

答案 0 :(得分:1)

检查<?php标记之前没有任何内容。

问题是如果你在开始标记之前有任何东西 然后它被转换为html并在页面的其余部分创建之前与标题一起发送。 稍后你尝试在已经发送一个标题后发送另一个标题。

我发现了以下步骤:

  

1)找到导致问题的header()语句。错误必须在此行或之前。

     

2)查找在此header语句之前可以向用户发送输出的任何语句。

     

如果找到一个或多个,找到一些方法在它们之前移动header语句。   复杂的条件语句可能会使问题复杂化,但它们也可能有助于解决问题。

     

考虑PHP脚本顶部的条件表达式,它尽可能早地确定标题值并将其设置在那里。

     

3)确保php开始和结束标记之外没有空格。虽然<?php开始标记之前的空行可能看起来无辜,但在PHP处理时,它将变成一个打印出空行的echo语句。这是一个常见的罪魁祸首。

答案 1 :(得分:0)

不允许在header()之前打印或回显。可能你有白色空间,问题是由于这个原因。

答案 2 :(得分:0)

点击此链接http://kb2.adobe.com/community/publishing/505/cpsid_50572.html

记住这一点,

  • 任何HTML输出,包括DOCTYPE声明或任何HTML标记,包括页面头部
  • 在页面的开始PHP标记之前或在包含文件的PHP标记之外的额外空格
  • 在调用header()或session_start()
  • 之前使用print()或echo
  • 使用virtual()包含文件
  • 使用页面开头的字节顺序标记(BOM)