[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: В чём разница?
sh47n
Сорри за беспокойство, изучаю дальше PHP и опять вопрос.
Почему header("Refresh:0; URL= index.php"); работает,
а $_SESSION['host'] = $_SERVER['HTTP_HOST']; в index
и после обработки
header("Refresh:0; URL=".$_SESSION['host']);
работает только так
header("Refresh:0; URL=http://".$_SESSION['host']);
Имя сессионной переменной не зарезервировано, проверял, ставил hhhosttt
без http:// не проходит
Заранее спасибо!
walerus
Посмотри что находится в $_SERVER['HTTP_HOST'] и все станет понятно. Да и в общем, изучи что находится в суперглобальном массиве $_SERVER...
sh47n
Цитата (walerus @ 3.12.2014 - 15:13)
Посмотри что находится в $_SERVER['HTTP_HOST'] и все станет понятно. Да и в общем, изучи что находится в суперглобальном массиве $_SERVER...

Что там изучать, echo поставил и вижу страницу откуда пришел, но почему с index.php работает?
$_SERVER вообще не причем, если просто без сессионной переменной прописать 10.0.0.1, тоже не сработает
Игорь_Vasinsky
протокол видимо обязательно указывать.

вообще если рефреш = 0, то

header( 'Location: yor_url' );


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
sh47n
Цитата (Игорь_Vasinsky @ 3.12.2014 - 15:31)
протокол видимо обязательно указывать.

вообще если рефреш = 0, то

header( 'Location: yor_url' );

Но почему с index работает, не понятно.
В описании header не увидел ничего, что на файлы в той же папке можно редирект делать напрямую.
В рефреш 0 для отладки, потом будет сессионная переменная.
walerus
sh47n
Цитата
изучаю дальше PHP
Цитата
Что там изучать,
ты уж определись...
header("Refresh:0; URL= index.php");
выполнит "редирект" на индекс.php, относительно той директории, где запущен скрипт, т.е. :

Пример.
1) скрипт вызывается/лежит по адресу: http://domen.com/vasiliy/test/test.php и, если в файле test.php, будет стоять такая строка
header("Refresh:0; URL= index.php");
то скрипт уйдет по адресу: http://domen.com/vasiliy/test/index.php
2) скрипт вызывается/лежит по адресу: http://domen.com/vasiliy/test/test.php и, если в файле test.php, будет стоять такая строка
header("Refresh:0; URL= ".$_SERVER['HTTP_HOST']);
то скрипт уйдет по адресу: http://domen.com/

теперь заметно разницу? иди учи :ph34r:
sh47n
Цитата (walerus @ 3.12.2014 - 16:10)
sh47n
Цитата
изучаю дальше PHP
Цитата
Что там изучать,
ты уж определись...
header("Refresh:0; URL= index.php");
выполнит "редирект" на индекс.php, относительно той директории, где запущен скрипт, т.е. :

Пример.
1) скрипт вызывается/лежит по адресу: http://domen.com/vasiliy/test/test.php и, если в файле test.php, будет стоять такая строка
header("Refresh:0; URL= index.php");
то скрипт уйдет по адресу: http://domen.com/vasiliy/test/index.php
2) скрипт вызывается/лежит по адресу: http://domen.com/vasiliy/test/test.php и, если в файле test.php, будет стоять такая строка
header("Refresh:0; URL= ".$_SERVER['HTTP_HOST']);
то скрипт уйдет по адресу: http://domen.com/

теперь заметно разницу? иди учи :ph34r:

Ты точно знаешь, что в примере 2
$_SERVER['HTTP_HOST'] сохранит всю строчку, а не domen.com?
Ты проверял или просто учил где-то и как-то?
У меня сохраняет до первого слеша и без http, т.е. из твоей строчки
http://domen.com/vasiliy/test/test.php
останется только domen.com




walerus
sh47n
Цитата
останется только domen.com
ты прав, я не доглядел, но не в этом суть.

Суть в том, что ты пытаешься найти разницу не понимая как формируется URL..., хотя тут же пишешь правильные вещи - "останется только domen.com".

Так почему тебя это начинает вгонять в "непонимание" своих слов ???

есть у нас сайт, с адресом - http://domen.com, в этом домене есть папка vasiliy, в этой папке лежит файл - test.php, так вот,

если содержимое этого файла будет таким
header("Refresh:0; URL= index.php");
то скрипт, сделает редирект на адрес: http://domen.com/vasiliy/index.php, потому что используется относительный путь к index.php

если содержимое этого файла будет таким
header("Refresh:0; URL= ". $_SERVER['HTTP_HOST']);
а [HTTP_HOST] => domen.com, то что получается в редиректе?
header("Refresh:0; URL= " . "domen.com" );
т.е. сслыка получается такого вида http://domen.com/vasiliy/domen.com , что является не правильным,

по этому, нужно указывать глобальный путь если тебе нужен редирект на domen.com.

Либо так
header("Refresh:0; URL= /" );
либо так
header("Refresh:0; URL= http://". $_SERVER['HTTP_HOST']);
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.