ac-40-6.0
Эксперт
Дата регистрации:
29.06.2012 02:02:06
Сообщений: 88
Для начала хотелось бы отдать дань уважения Админу за неплохие уроки.
А теперь проблема из жанра "или лыжи не едут или я..."
имею такой кусок кода
<?php
if(error)){
session_stert();
$_SESSION['error'] = 1;
header("Location: http://site.ru"
exit();}
.......?>
Error - понятие абстрактное.
Но самый ступор начинается в том, что сессия исправно создается, а редиректа не происходит.
Говорит что заголовки уже посылались.
Если поменять местами
session_start() и
header() происходит перенаправление, но сессия то всё-таки нужна.
Как альтернативу я использую такую конструкцию:
echo '<html><head><meta ... refresh="0; content=http://site.ru"/></head></html>'
Но можно ли это как-то сократить или исправить ошибку в php-файле?
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
session_stert(); - раз ошибка (session_start()), и if (error) - весьма странно, возможно, надо было if ($error)
ac-40-6.0
Эксперт
Дата регистрации:
29.06.2012 02:02:06
Сообщений: 88
Это я здесь опечатку допустил. В коде синтаксических ошибок нет.
Как я уже упоминал понятие error - абстрактное, означающее условие, которое в алгоритме программы будет считаться за ошибку.
К примеру:
//нет нужного результата
if(mysql_num_rows($sel) == 0){
session_start();
$_SESSION['error'] = 1;
hader("Location: http://sitename.ru"
exit();}
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Я почему цепляюсь к ошибкам, потому что без них всё прекрасно работает. И сессии можно использовать до header(). Поэтому идём дальше:
1. header(), а не hader().
2. } скобка должна закрываться у if.
ac-40-6.0
Эксперт
Дата регистрации:
29.06.2012 02:02:06
Сообщений: 88
Так почему я к Вам и обращаюсь!!!
Сам ничего не понимаю.
Если написать код вот так:
if(isset_error){
session_start();
header("location: http://site.ru"
$_SESSION['error'] = 1;
exit();}
Никаких ошибок не выдает, редирект происходит, но сессия не создается, что в принципе не удивляет.
если код написан так
.....
$_SESSION['error'] = 1;
header("location: http://site.ru"
exit();}
появляется строчка с ошибкой. Я уже не знаю что делать.=(
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
появляется строчка с ошибкой
Какую именно ошибку?
ac-40-6.0
Эксперт
Дата регистрации:
29.06.2012 02:02:06
Сообщений: 88
Warning: Cannot modify header information - headers already sent by (output started at S:\home\site.ru\www\bloc\doctipe2.php:8) in S:\home\site.ru\www\bloc\regform.php on line 12
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Ошибка где-то в другой части кода. Что-то выводится до session_start() через echo или как-то иначе, либо кодировка отличная от UTF-8 без BOM (например, просто UTF-8).
ac-40-6.0
Эксперт
Дата регистрации:
29.06.2012 02:02:06
Сообщений: 88
Admin
Администратор
Дата регистрации:
27.05.2010 21:23:42
Сообщений: 3063
Думаю, что-нибудь здесь: include_once('/blocs/con_name.inc'); А вывод происходит здесь: doctipe2.php в 8-й строке.