ошибка при перенаправлении на защищенную страницу после входа в систему - PullRequest
0 голосов
/ 04 марта 2012

Так что я сделал сайт с функцией входа в систему.Вы можете получить доступ к веб-сайту только после регистрации и входа в систему.Регистрация работает и сессия запускается при нажатии кнопки входа, но я получаю сообщение об ошибке при перенаправлении на защищенную страницу.Я получаю следующее сообщение об ошибке:

Предупреждение. Невозможно изменить информацию заголовка - заголовки уже отправлены (вывод начался с /webdata/domains/cim-gmbh.ch/vhosts/www/htdocs/login.php:7) в /webdata/domains/cim-gmbh.ch/vhosts/www/htdocs/login.php в строке 40

Предупреждение: невозможно изменить информацию заголовка - заголовки уже отправлены (вывод начался с / webdata /domains / cim-gmbh.ch / vhosts / www / htdocs / login.php: 7) в /webdata/domains/cim-gmbh.ch/vhosts/www/htdocs/login.php в строке 44

и вот весь файл 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 ]

1 голос
/ 04 марта 2012

Убедитесь, что перед первым тегом openeng нет пробела / отступа <?php У вас есть:

 <?php

include "mysql_connectinfo.php";

Также убедитесь, что вы ничего не выводите и не выводите в файл mysql_connectinfo.php.

Поскольку вы используете $_SESSION, вам также нужно убедиться, что у вас есть session_start() в начале вашего скрипта:

<?php
session_start();
// more code
0 голосов
/ 04 марта 2012

Убедитесь, что ваш редактор кода не включает в документ спецификацию.Я точно знаю, что notepad ++ и некоторые другие включают это по умолчанию.Если он включен, он вставит невидимые символы в ваш документ, который выглядит как вывод на сервер, вызывая сообщения об ошибках, которые вы видите.Попробуйте скопировать и вставить свой код в НОВЫЙ документ, в котором нет спецификации.

У меня была такая же проблема пару недель назад, и создание нового php-документа в Dreamweaver БЕЗ разрешения проблемы (метка порядка байтов)вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...