Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Не работает header в firefox.
Форумы портала PHP.SU » » HTTP и PHP » Не работает header в firefox.

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

1. muravey - 17 Мая, 2013 - 19:31:22 - перейти к сообщению
Есть функция которая делает переадресацию между страницами
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.
Почему так?
2. OrmaJever - 17 Мая, 2013 - 19:51:42 - перейти к сообщению
а циклического редиректа точно нет? В хроме может работать потому что он видя циклический редирект останавливает его, а фф видимо нет.
И ещё кстате подсказка, после редиректа вызывайте exit() или die().
3. DelphinPRO - 17 Мая, 2013 - 20:00:44 - перейти к сообщению
muravey пишет:
header('HTTP/1.1 302 Moved Temporarily'); // или 'HTTP/1.1 301 Moved Permanently'    header("Location: /".$redirect);  


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


Улыбка
короче, и текст заголовка вспоминать не надо
4. muravey - 17 Мая, 2013 - 20:03:51 - перейти к сообщению
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.  
5. OrmaJever - 17 Мая, 2013 - 20:21:36 - перейти к сообщению
muravey пишет:
Такая ошибка уже была фокс сразу заругался я ее исправил.

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

Да это не для этой проблемы, это я просто сказал что после редиректа нужно завершать скрипт что бы небыло ошибок
(Добавление)
пошарьтесь в панели разработчика в хроме и фф, посмотрите какие имено там заголовки приходят.
6. muravey - 18 Мая, 2013 - 06:07:09 - перейти к сообщению
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.  
7. DeepVarvar - 18 Мая, 2013 - 07:33:11 - перейти к сообщению
Ну так тебе ж сказали не 302, а 301 или Location
(Добавление)
И еще не попутай спецификации 1.0 и 1.1, в первой нету редиректов.
8. muravey - 18 Мая, 2013 - 07:48:37 - перейти к сообщению
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

Ну почему так?
9. DeepVarvar - 18 Мая, 2013 - 08:32:06 - перейти к сообщению
Не знаю, у меня все работает как надо.
Перечитай мое сообщение еще раз.
(Добавление)
PHP:
скопировать код в буфер обмена
  1. header("HTTP/1.1 301 Moved Permanently");
  2. header("Location: $destination");
  3. die();
10. muravey - 18 Мая, 2013 - 08:38:37 - перейти к сообщению
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.  


А в фоксе вообще ни какая!
11. DeepVarvar - 18 Мая, 2013 - 08:57:26 - перейти к сообщению
Брутфорсом пытаешься редирект взять? Закатив глазки
А нука впили в самое начало скрипта:

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


Какие результаты теперь?
12. muravey - 18 Мая, 2013 - 09:13:41 - перейти к сообщению
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.  


Ничего не понимаю! Огорчение
13. DeepVarvar - 18 Мая, 2013 - 09:20:33 - перейти к сообщению
muravey пишет:
но я твои тоже проставил
Надо проставить только мои. Ну или вписать их уже после определения твоих чтобы они переопределили твои.
14. muravey - 18 Мая, 2013 - 09:34:57 - перейти к сообщению
DeepVarvar пишет:
muravey пишет:
но я твои тоже проставил
Надо проставить только мои. Ну или вписать их уже после определения твоих чтобы они переопределили твои.


Я так и сделал после моих поставил твои переопределил. Ничего, все также.
15. DelphinPRO - 18 Мая, 2013 - 11:14:12 - перейти к сообщению
Попробуй фокс на другом компьютере.
Попробуй фокс с отключеными расширениями.

 

Powered by ExBB FM 1.0 RC1