2014-01-03 3 views
0

Я хочу перенаправить на страницу подтверждения после того, как человек зарегистрировался, как только они ввели необходимые им данные, они отправляются в базу данных с использованием сценария PHP, ниже которого все работает. Хотя, когда я пытаюсь добавить перенаправление с использованием заголовка, он не запускает скрипт PHP. Любые идеи, что я делаю неправильно?Перенаправление на другую страницу после PHP-скрипта

PHP

if (isset($_POST['firstname'], $_POST['surname'], $_POST['email'], $_POST['username'], $_POST['password'], $_POST['interest'])){ 

$firstname = ($_POST['firstname']); 
$surname = ($_POST['surname']); 
$username = ($_POST['username']); 
$password1 = ($_POST['password']); 
$email = ($_POST['email']); 
$interest = ($_POST['interest']); 

$result = mysql_query("INSERT INTO user (firstname,surname,username,password,email,interestarea,user_type) VALUES ('$firstname','$surname','$username','$password1','$email','$interest','normal')"); 
} 
+0

Это не меняет местоположение? – Goikiu

+0

Я не показывал здесь код места изменения, поскольку я надеялся, что кто-то может добавить это для меня. Но когда я делаю изменения местоположения, но PHP не запускается, и никакие данные не добавляются в базу данных – asdwal

+0

каких-либо сообщений об ошибках? – MaiKaY

ответ

1

Вы можете добавить header('Location:yourpage.php');

$result = mysql_query("INSERT INTO user (firstname,surname,username,password,email,interestarea,user_type) VALUES ('$firstname','$surname','$username','$password1','$email','$interest','normal')"); 
header('Location:yourpage.php'); 
exit(); 

Вы можете добавить @ob_start(); в верхней части страницы.

+2

Просто примечание и вопрос. Заголовки начинаются с заглавной буквы и имеют пробел после ':'. И url в нем должен быть закодирован url или нет? Поэтому я предлагаю 'header ('Location: your% 20page.php');' – DanFromGermany

+0

URL должен быть закодирован в URL. Он должен (например) не быть закодированным HTML (потому что здесь мы не имеем дело с выходом HTML). – Halcyon

+0

@DanFromGermany, спасибо. Я обновил дело. –

1
$result = mysql_query("INSERT INTO user (firstname,surname,username,password,email,interestarea,user_type) VALUES ('$firstname','$surname','$username','$password1','$email','$interest','normal')"); 

header('Location: page.php'); 

Включить в начале сценария:

<?php 

ob_start(); 

?> 
0

Это догадка о том, что ваша проблема может быть:

Вы говорите, что страница перенаправляет, но PHP не разобран. Итак ... если страница просто отображает ваш php, это означает, что находится вне каталога чтения php ... проверьте, что PLS (см., Если он начинается с localhost/вашего ip/domain и т. Д.).

2

Вы должны использовать MySQLi или PDO с подготовленными операторами, поскольку функции mysql_ устарели. Вы должны, по крайней мере, изучить использование чего-то типа mysql_real_escape_string, поскольку вы можете быть открыты для SQL-инъекций.

В противном случае, как и другие сказали использование:

header("Location: new_page.php"); 
exit(); 
+2

+1 для 'exit'. PHP продолжает обрабатывать скрипт без него, и браузеру не нужно будет следовать за заголовком местоположения либо – DanFromGermany

+1

@DanFromGermany +1 Как я забыл дать объяснение его использования :) – Fredd

Смежные вопросы