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 :: Версия для печати :: если условие выполняется то редирект
Форумы портала PHP.SU » PHP » Программирование на PHP » если условие выполняется то редирект

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

1. Pirat - 30 Июля, 2009 - 12:41:53 - перейти к сообщению
столкнулся с такой проблемой... сделал передачу переменных методом POST (спасибо кто помог) ... а теперь яндекс присылает на эти страницы...естественно не зная этих переменных...
так вот в чем вопрос....

CODE (text):
скопировать код в буфер обмена
  1.  
  2. if (isset ($_POST['name']) == '') { редирект к примеру на главную}
  3. else {$name = $_POST['name'];}
  4.  


облазил весь форум... ответа не нашел....

и еще вопросик... со временем яндекс переиндексирует с учетом этих переменных ???
2. Мелкий - 30 Июля, 2009 - 12:47:21 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. if (isset ($_POST['name']) == '') {
  2.                 header ("Location: index.php"); //или куда там надо
  3.                 die;
  4.                 }
  5. else {$name = $_POST['name'];}


Pirat пишет:
и еще вопросик... со временем яндекс переиндексирует с учетом этих переменных ???

Не думаю... Робот вроде по URL'ам работает...
3. Neirol - 30 Июля, 2009 - 12:48:28 - перейти к сообщению
Я так понял, ты не знаешь как сделать редирект?
Если правильно я тебя понял, то редирект можно сделать с помощью html и javascript
HTML:
<meta http-equiv='refresh' content='{1}; URL={2}'>
Вместо {1} пиши время в секундах, а вместо {2} адрес.
JavaScript:
<script type="text/javascript" language="javascript">
document.href.location = "{1}";
</script>
Вместо {1} пиши адрес.

Кстати, у тебя ошибка в скрипте.
isset возвращает булевое значение, поэтому == '' не нужно.
4. Pirat - 30 Июля, 2009 - 12:51:59 - перейти к сообщению
Neirol пишет:
Кстати, у тебя ошибка в скрипте.
isset возвращает булевое значение, поэтому == '' не нужно.


т.е. if (isset ($_POST['name'])) {}

еще вопросик....
а почему у меня так не получается ?
CODE (text):
скопировать код в буфер обмена
  1. {header ('location: http://my_site/index.php'); exit;}

(Добавление)
как обычно не получается вставить яву в пхп

CODE (text):
скопировать код в буфер обмена
  1. {'<script type="text/javascript" language="javascript">
  2. document.href.location = "1.php";
  3. </script>';}


Не понял
(Добавление)
собственно HTML тоже не получается

CODE (text):
скопировать код в буфер обмена
  1. {'<meta http-equiv='refresh' content='{3}; URL={1.php}'>';}
5. Мелкий - 30 Июля, 2009 - 13:09:00 - перейти к сообщению
Pirat пишет:
а почему у меня так не получается ?
CODE (text):
скопировать код в буфер обмена
  1. {header ('location: http://my_site/index.php'); exit;}

Не сказал, header'ы работают только если перед ними не выводился никакой текст.

По остальным двум - вставляться-то должно как обычный текст, т.е. между "?>" и "<?php" или в функции echo либо print. А у вас скобочки с кавычками странные какие-то...
6. Neirol - 30 Июля, 2009 - 13:11:17 - перейти к сообщению
Нужно выводить их, а не просто писать в кавычках.
Т.е. print "<meta и т.д.
7. Pirat - 30 Июля, 2009 - 13:19:20 - перейти к сообщению
все равно не получается Не понял

CODE (text):
скопировать код в буфер обмена
  1. {echo '<meta http-equiv="refresh" content="3; URL=1.php">';}

(Добавление)
Не сказал, header'ы работают только если перед ними не выводился никакой текст.

поподробнее можно ???,.. у меня не выводится перед ним никакой текст
8. Мелкий - 30 Июля, 2009 - 13:30:01 - перейти к сообщению
А что в итоге пишите? PHP ни на что не ругается? Куда в HTML виде вставляется тэг meta? Должен вставляться в шапку <head>.

Pirat пишет:
поподробнее можно ???,.. у меня не выводится перед ним никакой текст

header
9. Pirat - 30 Июля, 2009 - 13:33:55 - перейти к сообщению
еще и как ругается.....

я бы хотел на яве сделать....
но почему то не могу вставить в пхп ((

CODE (text):
скопировать код в буфер обмена
  1.  
  2. {echo '<script type="text/javascript" language="javascript">
  3. document.href.location = "1.php";
  4. </script>';}
  5.  

(Добавление)
Мелкий пишет:

CODE (text):
скопировать код в буфер обмена
  1. if (isset ($_POST['name']) == '') {
  2.         header ("Location: index.php"); //или куда там надо
  3.         die;
  4.         }
  5. else {$name = $_POST['name'];}




вот что получается: Warning: Cannot modify header information - headers already sent by
10. Мелкий - 30 Июля, 2009 - 13:53:43 - перейти к сообщению
Pirat пишет:

Мелкий пишет:

CODE (text):
скопировать код в буфер обмена
  1. if (isset ($_POST['name']) == '') {
  2.         header ("Location: index.php"); //или куда там надо
  3.         die;
  4.         }
  5. else {$name = $_POST['name'];}




вот что получается: Warning: Cannot modify header information - headers already sent by

То и чувствую, какая-то текстовая информация к данному моменту скриптом уже отправлена. Заметьте, пробел, табуляция, переход на новую строку - уже передача информации.
Смотрите код перед этим текстом на предмет всяких выводов и открытия/закрытия тегов пхп. "?> <?php" - уже header'ы работать небудут.

Pirat пишет:
я бы хотел на яве сделать....

лучше не надо. А если отключён JS?

Pirat пишет:
но почему то не могу вставить в пхп ((

Внимание: не вставляет в результирующий документ или не перенаправляет?

Neirol пишет:
<script type="text/javascript" language="javascript">
document.href.location = "{1}";
</script>

интереса ради проверил: document.href - Null, document.location = "адрес" перенаправляет. У меня использовался window.location для перезагрузки страницы.
11. Viper - 30 Июля, 2009 - 13:55:51 - перейти к сообщению
ну а что на жабаскрипте мешает ?

echo '<script type="text/javascript">window.location=(\'URL\');</script>';
вместо URL ваш адрес
12. JustUserR - 30 Июля, 2009 - 14:14:29 - перейти к сообщению
Вы все запутали Улыбка
PHP:
скопировать код в буфер обмена
  1. <?PHP $your_url="/abc.php"; $your_time=100; // В миллисекундах - 100 в самый раз
  2. echo "<script>
  3. window.reloc=function() {window.location.href=\"".$your_url."\"}
  4. window.setTimeout(\"reoc()\",".$your_time.")
  5. </script>"; ?>
13. Viper - 30 Июля, 2009 - 14:52:21 - перейти к сообщению
JustUserR зато правильное решение вы отписали Улыбка)
14. Pirat - 31 Июля, 2009 - 11:02:21 - перейти к сообщению
Viper пишет:


CODE (text):
скопировать код в буфер обмена
  1. echo '<script type="text/javascript">window.location=(\'URL\');</script>';





Так работает.... так... и только так )))

Спасибо огромное.....


CODE (text):
скопировать код в буфер обмена
  1. <?PHP  $your_url="/abc.php"; $your_time=100; // В миллисекундах - 100 в самый раз
  2. echo "<script>
  3. window.reloc=function() {window.location.href=\"".$your_url."\"}
  4. window.setTimeout(\"reoc()\",".$your_time.")
  5. </script>"; ?>


так не заработало... да и честно говря задержка не особо нужна....

а скажите мне еще пожалуйста.....
со временем яндекс переиндексирует сайт... так вот он уже учтет переменные передаваемые методом ПОСТ ???.... это просто важно... я минимум одной переменной указываю какой include делать...
(Добавление)
Мелкий пишет:
То и чувствую, какая-то текстовая информация к данному моменту скриптом уже отправлена. Заметьте, пробел, табуляция, переход на новую строку - уже передача информации.


вот самое начало кода

CODE (text):
скопировать код в буфер обмена
  1.  
  2. <html>
  3. <head>
  4.  
  5. <?
  6. $id = $_GET['id'];
  7.         if (isset ($_POST['name']) == '') {
  8.  


так что вроде ничего еще нет до header
15. Мелкий - 31 Июля, 2009 - 11:14:26 - перейти к сообщению
Pirat пишет:

вот самое начало кода
так что вроде ничего еще нет до header

А это что по вашему?

Самое что ни на есть отправка текста клиенту. Header'ы должны отправляться до любой отсылки данных клиенту.

 

Powered by ExBB FM 1.0 RC1