Как средиректить на другую страницу через php
Имеется следующий код:
Код:...
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>";не срабатывает. Помогите разобраться почему и как тут правильно сделать.
Код: И обязательно нужно учесть, что никакого вывода на страницу до этого кода не должно быть.
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
<?Header( "HTTP/1.1 301 Moved Permanently" );Header( "Location: http://www.web-star.org.ua/akcii/akcii.html" );?>
Будет вам постраничный редирект 301, который признают все поисковые системы.
function redirect($url) { header('HTTP/1.1 301 Moved Permanently'); header('location: '.$url); exit; }
Вы сначала перенаправляете пользователя, а потом пытаетесь что-то вывести..
P.S. Я бы вам настоятельно советовал отделить логику от представления и не генерировать html и js через php без лишней нужды. В Smarty есть прекрасные средства для этого.