【发布时间】:2011-08-31 04:35:15
【问题描述】:
更新 我已经修改了这个脚本,但它不能正常工作,但我仍然很困惑。
我所做的是,我已经在原始脚本中注释掉了这部分,现在我没有得到标题已经发送的消息:
/*
include("include_db_connection.php");
$sessionid = session_id();
$update_sessiondetails_query = "UPDATE t_session SET logout_time=now() WHERE session_id='" .$sessionid. "'";
$update_sessiondetails_result = mysqli_query($db_conn, $update_sessiondetails_query)
or die('Connected to database, but querying failed');
*/
但我不明白的是,这里没有回声或打印,我所做的只是在连接到数据库后更新数据库。在标题()之前不允许这样做......??!如果不允许这样做,我还有什么选择?无论如何,我都必须使用用户注销时间来更新数据库!
再次感谢!
下面的原始问题和脚本 -
嗨,
我正在处理我的注销脚本,但无法成功完成此脚本,因为我收到标头已发送以下代码的警告 -
这是我的注销脚本 -
<?php
session_start();
include("db_connection.php"); //gets the database connection details like username/host
$sessionid = session_id(); //gets the current logged in user's session ID
$update_sessiondetails_query = "UPDATE t_session SET logout_time=now() WHERE session_id='" .$sessionid. "'"; //update the database for this user by inserting the logout time
$update_sessiondetails_result = mysqli_query($db_conn, $update_sessiondetails_query)
or die('Connected to database, but querying failed');
session_unset();
session_destroy();
// if session uses cookies, clear all cookies
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]);
}
//once scripts completes successfully, redirect user to some other page
$homepage_url = "somepage.php";
header('Location: '. $homepage_url);
?>
这是我得到的错误 - 警告:无法修改标头信息 - 标头已由(输出开始于...blah blah blah...)
请让我知道为什么会出现此错误。 注意:在我的本地机器上使用 WAMP 工作时,注销脚本工作正常并且不会给出任何错误或警告(这些在 wamp 中未设置为 OFF);仅当我使用在线虚拟主机进行测试时才会收到这些警告。
谢谢!
【问题讨论】:
-
您正在将某些内容打印到页眉并尝试再次设置它。在 header('Location: '.$homepage_url);你显示任何文字吗?回声,打印,死亡等......?在标题推荐之前打印到屏幕上的任何内容都会导致此错误
-
@phillpafford:我在 page1.php 中做了很多事情,比如回显和查询等。logout.php 链接在这个页面中。单击 logout.php 时,我收到标题警告消息。现在,这个 logout.php 脚本中没有 echo 语句或任何其他打印内容。我在我的问题中复制了完整的注销脚本。这是唯一的内容。
标签: php header location warnings redirect