PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
muravey
Отправлено: 17 Мая, 2013 - 19:31:22
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Май 2013  


Помог: 0 раз(а)




Есть функция которая делает переадресацию между страницами
PHP:
скопировать код в буфер обмена
  1.  
  2. public static function Redirect($redirect)
  3.   {
  4.     unset($_SESSION['link_redirect']);
  5.    
  6.     ob_clean();  
  7.  
  8.     header('HTTP/1.1 302 Moved Temporarily'); // или 'HTTP/1.1 301 Moved Permanently'
  9.     header("Location: /".$redirect);  
  10.        
  11.     flush();
  12.     ob_flush();
  13.     ob_end_clean();
  14.   }
  15.  


И она не работает в firefox, а все четко работает в chrome.
Почему так?
 
 Top
OrmaJever Модератор
Отправлено: 17 Мая, 2013 - 19:51:42
Post Id



Активный участник


Покинул форум
Сообщений всего: 7541
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




а циклического редиректа точно нет? В хроме может работать потому что он видя циклический редирект останавливает его, а фф видимо нет.
И ещё кстате подсказка, после редиректа вызывайте exit() или die().


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
DelphinPRO
Отправлено: 17 Мая, 2013 - 20:00:44
Post Id



Активный участник


Покинул форум
Сообщений всего: 7190
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




muravey пишет:
header('HTTP/1.1 302 Moved Temporarily'); // или 'HTTP/1.1 301 Moved Permanently'    header("Location: /".$redirect);  


а можно так:
PHP:
скопировать код в буфер обмена
  1. header("Location: /".$redirect, true, 301);


Улыбка
короче, и текст заголовка вспоминать не надо


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
muravey
Отправлено: 17 Мая, 2013 - 20:03:51
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Май 2013  


Помог: 0 раз(а)




OrmaJever пишет:
а циклического редиректа точно нет?

Такая ошибка уже была фокс сразу заругался я ее исправил.

OrmaJever пишет:
после редиректа вызывайте exit() или die()

были так тоже не хочет.
(Добавление)
DelphinPRO пишет:
PHP:
скопировать код в буфер обмена
  1. header("Location: /".$redirect, true, 301);


Попробывал тоже самое фокс не работает хром все ок.
(Добавление)
Вызываю я эту функцию
PHP:
скопировать код в буфер обмена
  1.  
  2. if (isset($_GET['ParentId']))
  3.         {
  4.             $this->mParentId = (int)$_GET['ParentId'];
  5.            
  6.             if (isset($_SESSION['link_redirect']))
  7.             {
  8.                 $find = "ParentId=".$this->mParentId;
  9.                 if (strpos($_SESSION['link_redirect'], $find))
  10.                 {
  11.                     $redirect = $_SESSION['link_redirect'];
  12.                     //var_dump($redirect);
  13.                      
  14.                     Link::Redirect($redirect);
  15.                 }
  16.             }
  17.         }  
  18.  
 
 Top
OrmaJever Модератор
Отправлено: 17 Мая, 2013 - 20:21:36
Post Id



Активный участник


Покинул форум
Сообщений всего: 7541
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




muravey пишет:
Такая ошибка уже была фокс сразу заругался я ее исправил.

а сейчас вы точно смотрели линк куда редиректит? И на нём нету редиректа ещё куданибудь?
muravey пишет:
были так тоже не хочет.

Да это не для этой проблемы, это я просто сказал что после редиректа нужно завершать скрипт что бы небыло ошибок
(Добавление)
пошарьтесь в панели разработчика в хроме и фф, посмотрите какие имено там заголовки приходят.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
muravey
Отправлено: 18 Мая, 2013 - 06:07:09
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Май 2013  


Помог: 0 раз(а)




OrmaJever пишет:

пошарьтесь в панели разработчика в хроме и фф, посмотрите какие имено там заголовки приходят.


HTTP Headers в Хроме
PHP:
скопировать код в буфер обмена
  1.  
  2. Pragma  no-cache
  3. Date    Sat, 18 May 2013 02:50:28 GMT
  4. Server  Apache/2.2.22 (Win32) mod_ssl/2.2.22 OpenSSL/1.0.1c PHP/5.3.13
  5. X-Powered-By    PHP/5.3.13
  6. Transfer-Encoding       chunked
  7. Content-Type    text/html; charset=utf-8
  8. Cache-Control   no-store, no-cache, must-revalidate, post-check=0, pre-check=0
  9. Connection      Keep-Alive
  10. Keep-Alive      timeout=5, max=100
  11. Expires Thu, 19 Nov 1981 08:52:00 GMT
  12.  


PHP:
скопировать код в буфер обмена
  1.  
  2. HTTP Status: 200 (HTTP/1.1 200 OK)
  3.  


HTTP Headers в Фоксе
PHP:
скопировать код в буфер обмена
  1.  
  2. Date: Sat, 18 May 2013 03:06:43 GMT
  3.  
  4. Server: Apache/2.2.22 (Win32) mod_ssl/2.2.22 OpenSSL/1.0.1c PHP/5.3.13
  5.  
  6. X-Powered-By: PHP/5.3.13
  7.  
  8. Expires: Thu, 19 Nov 1981 08:52:00 GMT
  9.  
  10. Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
  11.  
  12. Pragma: no-cache
  13.  
  14. Keep-Alive: timeout=5, max=100
  15.  
  16. Connection: Keep-Alive
  17.  
  18. Transfer-Encoding: chunked
  19.  
  20. Content-Type: text/html; charset=utf-8
  21.  
  22.  
  23. 200 OK
  24.  

(Добавление)
еще из фокса

PHP:
скопировать код в буфер обмена
  1.  
  2. http://localhost/itamit.com/admin.php?Page=Cms&ParentId=1
  3.  
  4. GET /itamit.com/admin.php?Page=Cms&ParentId=1 HTTP/1.1
  5. Host: localhost
  6. User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:21.0) Gecko/20100101 Firefox/21.0
  7. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  8. Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
  9. Accept-Encoding: gzip, deflate
  10. Referer: http://localhost/itamit.com/admin.php?Page=Cms&ParentId=1&SortPosition=pos&PageNav=2
  11. Cookie: vc=23; __gads=ID=c16c12472f749154:T=1364821015:S=ALNI_MYQL5u94GcrxHyHWDtYaH5AO364gA; PHPSESSID=nhh6klbqttvm4lemjmkupil8r2
  12. Connection: keep-alive
  13.  
  14. HTTP/1.1 200 OK
  15. Date: Sat, 18 May 2013 03:08:19 GMT
  16. Server: Apache/2.2.22 (Win32) mod_ssl/2.2.22 OpenSSL/1.0.1c PHP/5.3.13
  17. X-Powered-By: PHP/5.3.13
  18. Expires: Thu, 19 Nov 1981 08:52:00 GMT
  19. Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
  20. Pragma: no-cache
  21. Keep-Alive: timeout=5, max=100
  22. Connection: Keep-Alive
  23. Transfer-Encoding: chunked
  24. Content-Type: text/html; charset=utf-8
  25.  
  26. http://localhost/itamit.com/admin.php?Page=Cms&ParentId=1
  27.  
  28. GET /itamit.com/admin.php?Page=Cms&ParentId=1 HTTP/1.1
  29. Host: localhost
  30. User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:21.0) Gecko/20100101 Firefox/21.0
  31. Accept: */*
  32. Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
  33. Accept-Encoding: gzip, deflate
  34. Referer: http://localhost/itamit.com/admin.php?Page=Cms&ParentId=1
  35. Cookie: vc=23; __gads=ID=c16c12472f749154:T=1364821015:S=ALNI_MYQL5u94GcrxHyHWDtYaH5AO364gA; PHPSESSID=nhh6klbqttvm4lemjmkupil8r2
  36. Connection: keep-alive
  37.  
  38. HTTP/1.1 200 OK
  39. Date: Sat, 18 May 2013 03:08:19 GMT
  40. Server: Apache/2.2.22 (Win32) mod_ssl/2.2.22 OpenSSL/1.0.1c PHP/5.3.13
  41. X-Powered-By: PHP/5.3.13
  42. Expires: Thu, 19 Nov 1981 08:52:00 GMT
  43. Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
  44. Pragma: no-cache
  45. Keep-Alive: timeout=5, max=99
  46. Connection: Keep-Alive
  47. Transfer-Encoding: chunked
  48. Content-Type: text/html; charset=utf-8
  49.  
  50.  

(Добавление)
в итоге я должен оказаться здесь
PHP:
скопировать код в буфер обмена
  1.  
  2. http://localhost/itamit.com/admin.php?Page=Cms&ParentId=1&SortPosition=pos&PageNav=2
  3.  


а оказываюсь
PHP:
скопировать код в буфер обмена
  1.  
  2. http://localhost/itamit.com/admin.php?Page=Cms&ParentId=1
  3.  

(Отредактировано автором: 18 Мая, 2013 - 06:14:41)

 
 Top
DeepVarvar Супермодератор
Отправлено: 18 Мая, 2013 - 07:33:11
Post Id



Активный участник


Покинул форум
Сообщений всего: 10376
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Ну так тебе ж сказали не 302, а 301 или Location
(Добавление)
И еще не попутай спецификации 1.0 и 1.1, в первой нету редиректов.
 
 Top
muravey
Отправлено: 18 Мая, 2013 - 07:48:37
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Май 2013  


Помог: 0 раз(а)




DeepVarvar пишет:
Ну так тебе ж сказали не 302, а 301 или Location
(Добавление)
И еще не попутай спецификации 1.0 и 1.1, в первой нету редиректов.


Сделал так
PHP:
скопировать код в буфер обмена
  1.  
  2. header('HTTP/1.0 301 Moved Permanently');
  3. header("Location: /".$redirect);
  4.  


не помогло.
(Добавление)
Примерно такая же проблема и тех поддержка FireFox пишет что они такое устранят
https://support[dot]mozilla[dot]org/ru/q[dot][dot][dot]amp;r=1&as=s

Ну почему так?

(Отредактировано автором: 18 Мая, 2013 - 07:59:29)

 
 Top
DeepVarvar Супермодератор
Отправлено: 18 Мая, 2013 - 08:32:06
Post Id



Активный участник


Покинул форум
Сообщений всего: 10376
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Не знаю, у меня все работает как надо.
Перечитай мое сообщение еще раз.
(Добавление)
PHP:
скопировать код в буфер обмена
  1. header("HTTP/1.1 301 Moved Permanently");
  2. header("Location: $destination");
  3. die();
 
 Top
muravey
Отправлено: 18 Мая, 2013 - 08:38:37
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Май 2013  


Помог: 0 раз(а)




DeepVarvar пишет:
Не знаю, у меня все работает как надо.
Перечитай мое сообщение еще раз.
(Добавление)
PHP:
скопировать код в буфер обмена
  1. header("HTTP/1.1 301 Moved Permanently");
  2. header("Location: $destination");
  3. die();


В каком браузере?
(Добавление)
В хроме работает такая
PHP:
скопировать код в буфер обмена
  1.  
  2. header('HTTP/1.1 302 Moved Temporarily');
  3. header("Location: /".$redirect);
  4.  

и такая
PHP:
скопировать код в буфер обмена
  1.  
  2. header('HTTP/1.1 301 Moved Permanently');
  3. header("Location: /".$redirect);
  4.  

и такая
PHP:
скопировать код в буфер обмена
  1.  
  2. header('HTTP/1.0 302 Moved Permanently');
  3. header("Location: /".$redirect);
  4.  

и такая
PHP:
скопировать код в буфер обмена
  1.  
  2. header('HTTP/1.0 301 Moved Permanently');
  3. header("Location: /".$redirect);
  4.  

и такая
PHP:
скопировать код в буфер обмена
  1.  
  2. header('HTTP/1.1 302 Moved Temporarily');
  3. header("Location: /".$redirect);
  4. exit();
  5.  

и такая
PHP:
скопировать код в буфер обмена
  1.  
  2. header('HTTP/1.1 301 Moved Permanently');
  3. header("Location: /".$redirect);
  4. exit();
  5.  

и такая
PHP:
скопировать код в буфер обмена
  1.  
  2. header('HTTP/1.0 302 Moved Temporarily');
  3. header("Location: /".$redirect);
  4. exit();
  5.  

и такая
PHP:
скопировать код в буфер обмена
  1.  
  2. header('HTTP/1.0 301 Moved Permanently');
  3. header("Location: /".$redirect);
  4. exit();
  5.  

и такая
PHP:
скопировать код в буфер обмена
  1.  
  2. header('HTTP/1.1 302 Moved Temporarily');
  3. header("Location: /".$redirect);
  4. die();
  5.  

и такая
PHP:
скопировать код в буфер обмена
  1.  
  2. header('HTTP/1.1 301 Moved Permanently');
  3. header("Location: /".$redirect);
  4. die();
  5.  

и такая
PHP:
скопировать код в буфер обмена
  1.  
  2. header('HTTP/1.0 302 Moved Temporarily');
  3. header("Location: /".$redirect);
  4. die();
  5.  

и такая
PHP:
скопировать код в буфер обмена
  1.  
  2. header('HTTP/1.0 301 Moved Permanently');
  3. header("Location: /".$redirect);
  4. die();
  5.  

и такая
PHP:
скопировать код в буфер обмена
  1.  
  2. header("Location: /".$redirect, true, 301);
  3. exit();//die();
  4.  

и такая
PHP:
скопировать код в буфер обмена
  1.  
  2. header("Location: /".$redirect, true, 301);
  3. exit();//die();
  4.  

и такая
PHP:
скопировать код в буфер обмена
  1.  
  2. header("Location: /".$redirect, true, 302);
  3. exit();//die();
  4.  

и такая
PHP:
скопировать код в буфер обмена
  1.  
  2. header("Location: /".$redirect, true, 302);
  3. exit();//die();
  4.  


А в фоксе вообще ни какая!
 
 Top
DeepVarvar Супермодератор
Отправлено: 18 Мая, 2013 - 08:57:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 10376
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




Брутфорсом пытаешься редирект взять? Закатив глазки
А нука впили в самое начало скрипта:

PHP:
скопировать код в буфер обмена
  1. ini_set("display_errors", "On");
  2. ini_set("html_errors", "On");
  3. error_reporting(E_ALL | E_STRICT);


Какие результаты теперь?
 
 Top
muravey
Отправлено: 18 Мая, 2013 - 09:13:41
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Май 2013  


Помог: 0 раз(а)




DeepVarvar пишет:
Брутфорсом пытаешься редирект взять? Закатив глазки
А нука впили в самое начало скрипта:

PHP:
скопировать код в буфер обмена
  1. ini_set("display_errors", "On");
  2. ini_set("html_errors", "On");
  3. error_reporting(E_ALL | E_STRICT);


Какие результаты теперь?


У меня так стоит
PHP:
скопировать код в буфер обмена
  1.  
  2. //эти значения должны быть равны true на этапе разработки
  3. define('IS_WARNING_FATAL', true);
  4. define('DEBUGGING', true);
  5.  
  6. //типы ошибок, о которых должны составляться сообщения
  7. define('ERROR_TYPES', E_ALL);
  8.  


но я твои тоже проставил, ничего. Ошибок нет!

Протестировал с другими браузерами:
PHP:
скопировать код в буфер обмена
  1.  
  2. Chrome +
  3. Opera +
  4. IE9 +
  5.  
  6. FireFox -
  7. Safari -
  8.  


Ничего не понимаю! Огорчение
 
 Top
DeepVarvar Супермодератор
Отправлено: 18 Мая, 2013 - 09:20:33
Post Id



Активный участник


Покинул форум
Сообщений всего: 10376
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




muravey пишет:
но я твои тоже проставил
Надо проставить только мои. Ну или вписать их уже после определения твоих чтобы они переопределили твои.
 
 Top
muravey
Отправлено: 18 Мая, 2013 - 09:34:57
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Май 2013  


Помог: 0 раз(а)




DeepVarvar пишет:
muravey пишет:
но я твои тоже проставил
Надо проставить только мои. Ну или вписать их уже после определения твоих чтобы они переопределили твои.


Я так и сделал после моих поставил твои переопределил. Ничего, все также.
 
 Top
DelphinPRO
Отправлено: 18 Мая, 2013 - 11:14:12
Post Id



Активный участник


Покинул форум
Сообщений всего: 7190
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Попробуй фокс на другом компьютере.
Попробуй фокс с отключеными расширениями.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« HTTP и PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB