我转移到新托管和我的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>";
}
?>
答案 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
记住这一点,