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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Почему header работает не везде?

 PHP.SU

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


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

> Без описания
qtk
Отправлено: 11 Мая, 2012 - 09:29:16
Post Id


Частый гость


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


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




Столкнулся с такой проблемой heаder на моем сервере не работает, а на хостинге все нормально. Почему так, что то где то надо настроить? За ранее спасибо
 
 Top
avtor.fox
Отправлено: 11 Мая, 2012 - 09:30:10
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


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




В какой части скрипта Вы пытаетесь отправить header?
 
 Top
qtk
Отправлено: 11 Мая, 2012 - 09:40:53
Post Id


Частый гость


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


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




В середине кода, ну а если смотреть работу скрипта, то в конце его завершения, то есть скрипт сделал свое дело и вазвращается на нужную страницу.
 
 Top
avtor.fox
Отправлено: 11 Мая, 2012 - 09:48:54
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


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




До отправки header у Вас выводится текст?
 
 Top
qtk
Отправлено: 11 Мая, 2012 - 09:51:17
Post Id


Частый гость


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


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




PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $email=htmlspecialchars($_POST["email"]);
  3.  
  4. if($email!=""){$mail="Эл. почта: $email";}
  5.  
  6. $submit=$_POST["submit"];
  7.  
  8. $list=$_POST["list"];
  9.  
  10. $date="[".date("d.m.y")."]";
  11.  
  12. $name=htmlspecialchars($_POST["name"]);
  13.  
  14. $phone=htmlspecialchars($_POST["phone"]);
  15.  
  16. if($phone!=""){$phones="Телефон: $phone";}
  17.  
  18. $message=htmlspecialchars($_POST["message"]);
  19.  
  20. $text="<div class=\"name\">Имя: ".$name."</div>".
  21. "<div class=\"phone_email\">".$phones."   ".$mail."</div>".
  22. "<div class=\"message\">Сообщение:<br>".$message."</div>".
  23. "<div class=\"date\">Добавлено: ".$date."</div><br>"."
  24.  
  25. ";
  26.  
  27.  
  28. if($submit=="Добавить")
  29. if($name!=""){
  30. if($phone!="" or $email!=""){
  31. if(preg_match("/^([0-9+-\s]+)$/",trim($phone)) xor $phone==""){
  32. if($list=="estate" xor $list=="avto" xor $list=="computer" xor $list=="tech" xor $list=="service" xor $list=="furniture" xor $list=="pets" xor $list=="wear" xor $list=="work" xor $list=="other"){
  33. if($message!=""){ $open=fopen("ads/$list.dat","a");fwrite($open,$text);chmod("ads/$list.dat",0644);fclose($open);/*echo "<meta http-equiv=\"refresh\" content=\"0; url=/$list.php\">";*/ob_start();header("Location: http://mysite.ru/index.html");}
  34. else
  35. {$no[3]="<span class=\"red\">Введите сообщение</span>";}
  36. ;}
  37. else
  38. {echo "ERROR";}
  39. ;}
  40. else
  41. {$no[2]="<span class=\"red\">Доступны только цифры</span>";}
  42. ;}
  43. else
  44. {$no[1]="<span class=\"red\">Введите телефон или e-mail</span>";}
  45. ;}
  46. else
  47. {$no[0]="<span class=\"red\">Введите имя</span>";}
  48. ?>


Отредактировано модератором: Мелкий, 11 Мая, 2012 - 10:12:26
 
 Top
avtor.fox
Отправлено: 11 Мая, 2012 - 10:06:08
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


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




Ммм. А Вы уверены что проблема в хедере? Я на 20 строк кода нашёл мильён ошибок.

И что за оператор xor? Однако Я о нём впервые слышу. И мануала по нему нет в интернете.

Зачем вот это? -
CODE (html):
скопировать код в буфер обмена
  1. $text="<div class=\"name\">Имя: ".$name."</div>".
  2.  "<div class=\"phone_email\">".$phones." ".$mail."</div>".
  3.  "<div class=\"message\">Сообщение:<br>".$message."</div>".
  4.  "<div class=\"date\">Добавлено: ".$date."</div><br>"."
  5.  
  6.  ";


Вот так же удобней и приятней на вид -

CODE (html):
скопировать код в буфер обмена
  1. $text="
  2.         <div class='name'>Имя: ".$name."</div>
  3.         <div class='phone_email'>".$phones." ".$mail."</div>
  4.         <div class='message'>Сообщение:<br>".$message."</div>
  5.         <div class='date'>Добавлено: ".$date."</div><br>
  6. ";
 
 Top
qtk
Отправлено: 11 Мая, 2012 - 10:11:36
Post Id


Частый гость


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


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




XOR это вроде оператор исключения типо а=1 ИЛИ b=1,но не оба. Это есть на этом сайте
(Добавление)
А какие ошибки,вы не моглибы подсказать?
(Добавление)
$a and $b Логическое 'и' TRUE если и $a, и $b TRUE .
$a or $b Логическое 'или' TRUE если или $a, или $b TRUE .
$a xor $b Исключающее 'или' TRUE если $a, или $b TRUE , но не оба.
 
 Top
vitaliy_mad
Отправлено: 11 Мая, 2012 - 10:37:15
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


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




qtk, не вижу ob_end_flush();.
далее, условия как то страшно выглядят, можно упростить...
далее, зачем там ob_start() вообще?
и в начале скрипта укажите error_reporting(E_ALL); посмотрите есть ли ошибки...
 
 Top
avtor.fox
Отправлено: 11 Мая, 2012 - 10:38:56
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


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




PHP:
скопировать код в буфер обмена
  1. $name="asd";
  2. $list = 'avto';
  3. $phone = '7854';
  4. $message = '78asd3asdasd54';
  5. if($name){
  6.         if($phone){
  7.                 if(preg_match("/^([0-9+-\s]+)$/",trim($phone)) or $phone){
  8.                         if($list=='avto'){
  9.                                 if($message){
  10.                                         echo "asd";
  11.                                         $open=fopen("ads/$list.dat","a");
  12.                                         fwrite($open,$text);
  13.                                         chmod("ads/$list.dat",0644);
  14.                                         fclose($open);
  15.                                         ob_start();
  16.                                         header("Location: http://mysite.ru/index.html");
  17.                                 }
  18.                                 else{
  19.                                         echo "ERROR";
  20.                                 }
  21.                         }
  22.                         else{
  23.                                 echo "ERROR";
  24.                         }
  25.                 }
  26.                 else{
  27.                         echo "ERROR";
  28.                 }
  29.         }
  30.         else{
  31.                 echo "ERROR";
  32.         }
  33. }
  34. else{
  35.         echo "ERROR";
  36. }


Всё отлично перенаправляет. Правда это гкхмм..код.
 
 Top
qtk
Отправлено: 11 Мая, 2012 - 12:24:40
Post Id


Частый гость


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


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




А у меня не работает. Видать надо или php.ini настраивать или конфиг апача
 
 Top
vitaliy_mad
Отправлено: 11 Мая, 2012 - 12:28:45
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


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




логи апача посмотрите?
 
 Top
sKaa
Отправлено: 11 Мая, 2012 - 12:39:38
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011  
Откуда: Россия г. Нижний Новгород


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

[+]


qtk пишет:
А у меня не работает. Видать надо или php.ini настраивать или конфиг апача

Причем тут вообще апач или пхп.ини если вы оба говнокодите ?
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $name="asd";
  4. $list = 'avto';
  5. $phone = '7854';
  6. $message = '78asd3asdasd54';
  7.  
  8. if($_POST){
  9.   if(!empty($name) && !empty($phone) && !empty($message)){
  10.      // хз зачем тут права для линуксов у вас, но пусть будут раз уж есть.
  11.      chmod("ads/$list.dat",0644);
  12.      // Тут важный аргумент a+ - если файла нету - он его создаст!
  13.      $handler = fopen('ads/'.$list.'.dat','a+');
  14.      fwrite($handler, $message );
  15.      fclose($handler );
  16.      // Вот объясните мне зачем тут стартует буфер если следом идет выдача заголовка?
  17.      // ob_start();
  18.      
  19.      // Проверяем что у нас с заголовками, этому коду сложно доверять :)
  20.      if (!headers_sent()) {
  21.         header("Location: http://mysite.ru/index.html");
  22.         exit();
  23.      }
  24.      else{
  25.         echo 'Error, headers already sent!';  
  26.      }
  27.   }
  28.   else{
  29.     echo 'Error, empty name or phone number, or message text!';
  30.   }
  31. }
  32.  
  33.  

(Добавление)
Можно даже как-нибудь извратиться дабы выяснить где этот заголовок который все нам портит :

PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. if (!headers_sent($filename, $linenum)) {
  4.     header('Location: http://www.example.com/');
  5.     exit;
  6.  
  7. // You would most likely trigger an error here.
  8. } else {
  9.  
  10.     echo "Headers already sent in $filename on line $linenum\n" .
  11.           "Cannot redirect, for now please click this <a " .
  12.           "href=\"http://www.example.com\">link</a> instead\n";
  13.     exit;
  14. }
  15.  

(Отредактировано автором: 11 Мая, 2012 - 12:53:55)

 
 Top
avtor.fox
Отправлено: 11 Мая, 2012 - 12:45:01
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


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




Не кричи Огорчение )) Я просто поправил некоторые ошибки для банального редиректа при этом "почти" оставив структуру кода ТС.
 
 Top
qtk
Отправлено: 11 Мая, 2012 - 12:46:09
Post Id


Частый гость


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


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




Вот
127.0.0.1 - - [11/May/2012:11:40:25 0400] "POST /board.php HTTP/1.1" 200 1649
127.0.0.1 - - [11/May/2012:11:40:25 0400] "GET /css/board.css HTTP/1.1" 404 211
и вот
[Fri May 11 11:40:25 2012] [error] [client 127.0.0.1] File does not exist: E:/data/apache/htdocs/css, referer: http://127[dot]0[dot]0[dot]1/board.php
но это мне не очем не говнрит
 
 Top
sKaa
Отправлено: 11 Мая, 2012 - 12:46:28
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 979
Дата рег-ции: Окт. 2011  
Откуда: Россия г. Нижний Новгород


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

[+]


avtor.fox, ну да, сорри, погорячился я Улыбка не трезвый слегка да и код на форуме прямо тут вам писал без всяких IDE Улыбка
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB