登录后重定向到受保护页面时出错

时间:2012-03-04 14:14:42

标签: php redirect login

所以我创建了一个具有登录功能的网站。您只能在注册和登录后访问该网站。注册工作和会话在按下登录按钮时启动,但在重定向到受保护页面时出现错误。 我得到以下错误:

  

警告:无法修改标头信息 - 已在/ webdata / domains / cim-gmbh中发送的标头(在/webdata/domains/cim-gmbh.ch/vhosts/www/htdocs/login.php:7处开始输出)第40行的.ch / vhosts / www / htdocs / login.php

     

警告:无法修改标头信息 - 已在/ webdata / domains / cim-gmbh中发送的标头(在/webdata/domains/cim-gmbh.ch/vhosts/www/htdocs/login.php:7处开始输出)第44行的.ch / vhosts / www / htdocs / login.php

这是整个login.php文件:

 <?php

include "mysql_connectinfo.php";

if (isset($_SESSION['angemeldet']) || $_SESSION['angemeldet']) {
header('Location: index.php');
exit;
}

else if ($_SERVER['REQUEST_METHOD'] == 'POST') {

$username = $_POST['username'];
$passwort = $_POST['passwort'];

$sql = mysql_query("SELECT $mysqlname FROM $mysqltable WHERE $mysqlname='$username'AND $mysqlpwd='$passwort'");
$num = mysql_num_rows($sql);

if ($num != 0) {
  $_SESSION['angemeldet'] = true;

  if ($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.1') {
    if (php_sapi_name() == 'cgi') {
      header('Status: 303 See Other');
    }
    else {
      header('HTTP/1.1 303 See Other'); //this is line 40
    }
  }

  header('Location: index.php'); //this is line 44
  exit;
}
else {
  echo mysql_error();
 }
}
?>

2 个答案:

答案 0 :(得分:1)

在首次打开标记<?php之前,请确保没有空格/缩进:

 <?php

include "mysql_connectinfo.php";

还要确保不在mysql_connectinfo.php文件中回显/输出任何内容。

由于您使用的是$_SESSION,因此您还需要确保在脚本开始时session_start()

<?php
session_start();
// more code

答案 1 :(得分:0)

确保您的代码编辑器在文档中不包含BOM。我知道记事本++和其他一些默认包含这个的事实。如果包含它,它将在您的文档中插入不可见的字符,这看起来像输出到服务器,导致您看到的错误消息。尝试将代码复制并粘贴到没有BOM的新文档中。

几周前我遇到了同样的问题,在Dreamweaver中创建一个没有BOM(字节顺序标记)的新php文档解决了这个问题。

相关问题