<MyRusakov.ru />

Создание крупного проекта на Java с нуля

Создание крупного проекта на Java с нуля

Данный курс научит Вас создавать крупные проекты на Java грамотно и быстро. В курсе Вы увидите создание большой и сложной программы на Java абсолютно с нуля.

В начале курса у нас будет только идея, а в конце готовый продукт, который можно использовать в практических целях.

В рамках упражнений курса Вы параллельно со мной будете создавать свою большую программу на Java, что даст Вам необходимую практику, после которой для Вас уже не будет разницы, какого размера создавать программы.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

Редирект на PHP. Альтернативы.
29.06.2012 03:51:48 Редирект на PHP. Альтернативы. Сообщение #1
ac-40-6.0

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-файле?
Профиль Ответить
29.06.2012 14:12:49 Редирект на PHP. Альтернативы. Сообщение #2
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

session_stert(); - раз ошибка (session_start()), и if (error) - весьма странно, возможно, надо было if ($error)
Профиль Ответить
30.06.2012 17:14:49 Редирект на PHP. Альтернативы. Сообщение #3
ac-40-6.0

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();}
Профиль Ответить
30.06.2012 17:18:03 Редирект на PHP. Альтернативы. Сообщение #4
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Я почему цепляюсь к ошибкам, потому что без них всё прекрасно работает. И сессии можно использовать до header(). Поэтому идём дальше:
1. header(), а не hader().
2. } скобка должна закрываться у if.
Профиль Ответить
30.06.2012 17:54:40 Редирект на PHP. Альтернативы. Сообщение #5
ac-40-6.0

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();}

появляется строчка с ошибкой. Я уже не знаю что делать.=(
Профиль Ответить
30.06.2012 18:02:19 Редирект на PHP. Альтернативы. Сообщение #6
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

появляется строчка с ошибкой
Какую именно ошибку?
Профиль Ответить
30.06.2012 18:09:02 Редирект на PHP. Альтернативы. Сообщение #7
ac-40-6.0

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
Профиль Ответить
30.06.2012 18:23:12 Редирект на PHP. Альтернативы. Сообщение #8
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Ошибка где-то в другой части кода. Что-то выводится до session_start() через echo или как-то иначе, либо кодировка отличная от UTF-8 без BOM (например, просто UTF-8).
Профиль Ответить
30.06.2012 18:41:29 Редирект на PHP. Альтернативы. Сообщение #9
ac-40-6.0

ac-40-6.0

Эксперт

Эксперт

Дата регистрации:
29.06.2012 02:02:06

Сообщений: 88

1. <?php
2. include_once('/blocs/con_name.inc');
3. //подключаемся к базе
4. $db = @new mysqli($host, $user, $pass, $base) or die("error connect database";
5.
6. //отправляем запрос к бд
7. $sql = $db -> query("SELECT * FROM table ORDER BY `id`";
8. //проверяем успешность
9. if(mysqli_num_rows($sql) == 0){
10. session_start();
11. $_SESSION['error'] = 1;
12. header("location: http://site.ru";
13. exit();}
14.
15.//если успешно, то продолжаем


Можно узнать где? И почему когда я стираю строку 11, всё выполняется без проблем?
Профиль Ответить
30.06.2012 21:12:07 Редирект на PHP. Альтернативы. Сообщение #10
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Думаю, что-нибудь здесь: include_once('/blocs/con_name.inc'); А вывод происходит здесь: doctipe2.php в 8-й строке.
Профиль Ответить