SEO Сообщество: Спрашивайте и помогайте

Присоединяйтесь к сообществу профессиональных веб-мастеров PR-CY, отвечайте на вопросы коллег и задавайте свои.

Q&A SEO

Как средиректить на другую страницу через php

redalert redalert  
1
  22.11.2013 14:54       1 800    
Имеется следующий код:
Код:...


switch($sel){


case "save_1":

$data = $_POST;

$err = SavePersonalRegistrationForm($data);


if($err){ // Если ошибка есть

$form["err"] = $err;

$smarty->assign("form", $form);

} else { // Если ошибки нет

header("location: ./registration.php?sel=2");

echo "<script>location.href="https://pr-cy.ru/jump/?url=.%2Fregistration.php%3Fsel%3D2"</script>";

}

break;

}



$smarty->display(TrimSlash($config["index_theme_path"])."/index_home_page".$config["theme_postfix"].".tpl");


exit;


?>

Это страница index.php с формой регистрации, если все прошло успешно после сабмита формы и ошибок нет - то нужно средиректить юзера на registration.php?sel=2. Но проблема в том, что в случае, если ошибки нет, редеректа не происходит, вместо этого получаю ошибку 500 Internal Server Error
т.е. код
Код:else { // Если ошибки нет


header("location: ./registration.php?sel=2");


echo "<script>location.href="https://pr-cy.ru/jump/?url=.%2Fregistration.php%3Fsel%3D2"</script>";не срабатывает. Помогите разобраться почему и как тут правильно сделать.

Ответы на пост (5) Написать ответ
xxxXXXxxx xxxXXXxxx
0
22.11.2013 15:02
Делай просто один раз
Код:
header("Location: http://....ru/newdir/newpage.htm");
exit();
И обязательно нужно учесть, что никакого вывода на страницу до этого кода не должно быть.
0
redalert redalert
1
22.11.2013 15:05
А если добавлять Header 301, так гугл рекомендует.
PHP:header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.newdomain.com/somepage.html");
exit();
http://support.google.com/webmasters/bin/answer.py?hl=ru&hlrm=en&answer=93633
0
webstarorgua webstarorgua
2
22.11.2013 15:11
До начала всех строк вставьте:
<?Header( "HTTP/1.1 301 Moved Permanently" );Header( "Location: http://www.web-star.org.ua/akcii/akcii.html" );?>
Будет вам постраничный редирект 301, который признают все поисковые системы.
0
EwgenyUs EwgenyUs
32
22.11.2013 16:55
Вот функция для редиректа, рекомендую.
function redirect($url) { header('HTTP/1.1 301 Moved Permanently'); header('location: '.$url); exit; }
Вы сначала перенаправляете пользователя, а потом пытаетесь что-то вывести..
0
EwgenyUs EwgenyUs
32
22.11.2013 17:06
Можете, к примеру, перед редиректом создать переменную в сессии и уже на другой странице проверять.. если переменная существует, выводите то, что нужно...
P.S. Я бы вам настоятельно советовал отделить логику от представления и не генерировать html и js через php без лишней нужды. В Smarty есть прекрасные средства для этого.
0