我正在使用以下代码。我收到错误:
警告:无法修改标头信息 - 已经发送的标头(输出从/home/public_html/mc/cpanel/Source/verifylogin.php:11开始)
警告:session_start()[function.session-start]:无法发送会话cookie - 已经发送的标头(输出从/home/public_html/mv/cpanel/Source/verifylogin.php:11开始)
警告:session_start()[function.session-start]:无法发送会话缓存限制器 - 已发送的标头(输出从/home/public_html/mv/cpanel/Source/verifylogin.php:11开始)
<?php
error_reporting(E_ALL^ E_NOTICE);
ob_start();
require("../Lib/dbaccess.php");
$inQuery = "SELECT mhuserid, mhusername FROM cpanelusers WHERE mhusername = '". $_POST['UserName'] ."' AND mhpassword = '". hash('sha512', $_POST['Password']) ."'";
try
{
$Result = dbaccess::GetRows($inQuery);
echo $Result;
$NumRows = mysql_num_rows($Result);
if ($NumRows > 0)
{
header("Location: http://www.example.com/cpanel/mainwindow.php");
session_start();
}
else
{
header("Location: http://www.example.com/cpanel/");
echo "Last login attempt failed.";
exit;
}
}
catch(exception $e)
{
}
ob_clean();
?>
我做了所有更改并减少了下面的代码,但它仍无法正常工作。
<?php
ob_end_clean();
error_reporting(E_ALL^ E_NOTICE);
require("../Lib/dbaccess.php");
ob_start();
$inQuery="SELECT mhuserid, mhusername FROM cpanelusers WHERE mhusername = '".$_POST['UserName']."' AND mhpassword = '".hash('sha512', $_POST['Password'])."'";
try
{
$Result=dbaccess::GetRows($inQuery);
$NumRows=mysql_num_rows($Result);
if ($NumRows>0)
{
header("mainwindow.php");
}
else
{
header("index.html");
}
}
catch(exception $e)
{
}
?>
答案 0 :(得分:1)
session_start()和header()都要求没有任何内容写入页面。您正在第11行使用echo,因此将内容写入页面。
出于某种原因,你的ob_start似乎不起作用。可能在PHP配置中禁用了输出缓冲?
答案 1 :(得分:0)
找出问题所在。这是产生错误的“require ...”语句。我添加了连接字符串和在同一文件中执行查询的函数。