Автор Тема: 2 RomikChef про faq.phpclub.net  (Прочитано 2477 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Yukko

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1586
  • +0/-0
  • 0
    • Просмотр профиля
    • http://estrabota.com.ua
2 RomikChef про faq.phpclub.net
« : 11 Января 2004, 15:08:35 »
Перечитывал на досуге http://faq.phpclub.net/sessions и вот, возникло предложение добавить одну строку.

После слов:
Поэтому надо добавлять СИД руками, например, так:
header("Location: /script.php?".SID);
добавить
exit;

Владелец faq ты, и ты можешь не согласиться, но на той же странице в примере сверху:

И далее обращаться к элементам массива $_SESSION. Например, проверка авторизации будет выглядеть примерно так:
session_start();
if (
$_SESSION[\'authorized\']<>1) {
header("Location: /auth.php");
exit;
}


exit; в примере присутсвует.

И не по теме, просто наблюдения.
Хотя по правилам

header
("Location: bla.php");
exit;

PHP Version 4.3.4 на Apache 1.3.23 (Linux) спокойно прекращает выполнение скрипта (я поставил ниже редиректа запрос к БД, который ее апдейтит)
IIS 5.0 PHP Version 4.3.2 (Win2K server) впадает в ступор (продолжает выполнять скрипт).

Мало того, PHP Version 4.3.4 на Apache 1.3.23 (Linux) вполне нормально разбирает ошибочную строку запроса типа
http://mono/my.php?user=yukkoPHPSESSID=19ebca8bd62c830d3e79272b4f585ff8 правильно забрав значение user=yukko и идентификатор сессии. IIS же отрабатывает user=yukkoPHPSESSID=19ebca8bd62c830d3e79272b4f585ff8 :)
работа в Украине

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
2 RomikChef про faq.phpclub.net
« Ответ #1 : 11 Января 2004, 15:32:00 »
ну, с первым я, конечно, не соглашусь.
ибо это не пример кода, а пример функции.
Если к каждой функции всегда приписывать то, что обычно идет за ней, это во-первых, будет слишком раздувать код, а во-вторых, будет банально отвлекать внимание.

про ступор, если честно, ничего сказать не могу - не сталкивался.

в последнем примере, если пхп переменной юзер присвоил значение юкко. то он разобрал строку неправильно.

Оффлайн Yukko

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1586
  • +0/-0
  • 0
    • Просмотр профиля
    • http://estrabota.com.ua
2 RomikChef про faq.phpclub.net
« Ответ #2 : 11 Января 2004, 15:49:31 »
Цитировать
RomikChef:
ну, с первым я, конечно, не соглашусь.

второе больше, как комментарий-размышления, все равно в скрипте осталось
header("Location: bla.php"); 
exit;
и строка передана правильно...

А вот насчет первого... я передал СИД через редирект без exit; (стормозил, не подумал), линукс выполнил нормально, кинул на ISS, сразу понял, что в скрипте ошибка, потому что редиректа как такового не происходит, но ошибок никаких не выдает. Я набрал адрес твоего faq, посмотреть на пример, прочитал ту часть, где ты пишешь про то, как РНР добавляет автоматом, но при редиректе надо добавлять руками. exit; я там не нашел, но ошибка от этого не исчезла, я обратился к ману, где все английским по бэкграунду написано.

Хотя у меня на все ушло около 5-ти минут, но у кого-то на это уйдет не один день, вот и решил обратиться к тебе. faq новички читают, написано header("Location: bla.php"); они в скрипт вобьют именно так, как написано. Редко кто даже краткий фак читает от начала до конца. Я подумал, что фраза "не забудьте добавить exit; после header("Location: ");"  будет нелишней.

Собственно вот и весь ход моих мыслей.
работа в Украине

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
2 RomikChef про faq.phpclub.net
« Ответ #3 : 11 Января 2004, 16:04:44 »
Yukko
по поводу IIS попробуй слать
1. указывать полный путь (http://.....)
2. перед header("Location: ..." ) слать
header("Status: 302 Temporary redirect") - точный текст не помню (HDD со всей документацией накрылся :() глянь в доке по HTTP
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Yukko

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1586
  • +0/-0
  • 0
    • Просмотр профиля
    • http://estrabota.com.ua
2 RomikChef про faq.phpclub.net
« Ответ #4 : 11 Января 2004, 16:09:22 »
Макс
у меня нет никаких проблем... у меня все отлично работает. :)
Топик я начал из-за того, чтобы фак Ромика был еще более понятнее для тех, кто его читает :) все остальное размышления.

Ромик свою позицию объяснил, я объяснил почему я это написал. :) :) :) в любом случае спасибо за участие.
работа в Украине

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28