Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.01.2013, 15:19   #1
m@tem@tik
 
Регистрация: 21.12.2012
Сообщений: 7
По умолчанию Как сделать редирект?

Как сделать редирект после ввода данных?
<html>
<body>
<?php
$db = mysql_connect('localhost','photol8' ,'c3e4HrzS');
mysql_select_db('photol8',$db);
$user = $_POST['user'];
$usname = $_POST['usname'];
$sql = "INSERT INTO people (user,usname) VALUES ('$user','$usname')";
$result = mysql_query($sql);
?>
<form method="post" action="<?php echo $PHP_SELF?>">
First name:<input type="Text" name="user"><br>
Last name:<input type="Text" name="usname"><br>
<input type="Submit" name="submit"Ввести">
</form>
</body>
</html>

Пробовал так: header('Location: http://******'); , не получилось.
m@tem@tik вне форума Ответить с цитированием
Старый 17.01.2013, 15:56   #2
LZero
Форумчанин
 
Регистрация: 20.07.2012
Сообщений: 129
По умолчанию

header('Location: http://******'); в самое начало и будет работать.
LZero вне форума Ответить с цитированием
Старый 17.01.2013, 15:59   #3
m@tem@tik
 
Регистрация: 21.12.2012
Сообщений: 7
По умолчанию

Цитата:
Сообщение от LZero Посмотреть сообщение
header('Location: http://******'); в самое начало и будет работать.
Прописал в начале, всё равно выводится такое сообщение:
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\test\WWW\index.php:3) in Z:\home\test\WWW\index.php on line 4
m@tem@tik вне форума Ответить с цитированием
Старый 17.01.2013, 16:13   #4
LZero
Форумчанин
 
Регистрация: 20.07.2012
Сообщений: 129
По умолчанию

Значит не в самое начало прописал. Тут написано, что заголовки уже отправлены и пошла отправка самого документа. Нужно добавить функцию header до любого вывода.
Цитата:
header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP.
LZero вне форума Ответить с цитированием
Старый 17.01.2013, 16:20   #5
m@tem@tik
 
Регистрация: 21.12.2012
Сообщений: 7
По умолчанию

Разве не так надо было сделать?

<?php
header('Location: http://');
$db = mysql_connect('test','sasha007','00 00');
mysql_select_db('db',$db);
$log = $_POST['log'];
$pass = $_POST['pass'];
$sql = "INSERT INTO people (user,usname) VALUES ('$log','$pass')";
$result = mysql_query($sql);
?>
m@tem@tik вне форума Ответить с цитированием
Старый 17.01.2013, 16:29   #6
LZero
Форумчанин
 
Регистрация: 20.07.2012
Сообщений: 129
По умолчанию

Если это все содержимое файла, то да.
LZero вне форума Ответить с цитированием
Старый 17.01.2013, 16:31   #7
m@tem@tik
 
Регистрация: 21.12.2012
Сообщений: 7
По умолчанию

Цитата:
Сообщение от LZero Посмотреть сообщение
Если это все содержимое файла, то да.
Но редирект происходит сразу после того как открывается документ. А мне надо чтобы после нажатия на кнопку данные сначала записывались в БД, а только потом происходил редирект,
m@tem@tik вне форума Ответить с цитированием
Старый 17.01.2013, 16:43   #8
LZero
Форумчанин
 
Регистрация: 20.07.2012
Сообщений: 129
По умолчанию

Нужно добавить проверку были ли отправлены данные и только тогда делать редирект.
Код:
<?php
if (isset($_POST['user'], $_POST['usname']))
{
	$db = mysql_connect('localhost','photol8' ,'c3e4HrzS');
	mysql_select_db('photol8',$db);
	$user = $_POST['user'];
	$usname = $_POST['usname'];
	$sql = "INSERT INTO people (user,usname) VALUES ('$user','$usname')";
	$result = mysql_query($sql);
	header('Location: http://example.com/');
	exit;
}
?>
<html>
<body>
<form method="post" action="<?php echo $PHP_SELF?>">
First name:<input type="Text" name="user"><br>
Last name:<input type="Text" name="usname"><br>
<input type="Submit" name="submit"Ввести">
</form>
</body>
</html>
LZero вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сделать видеочат на сайте. Хочу сделать но не знаю как.. Shaman-King Свободное общение 12 14.01.2013 00:22
Я создал игру типо марио и хочу сделать её по сети как это сделать? rbkmz Работа с сетью в Delphi 7 14.05.2012 15:58
Как сделать отступы в ворде?(сделать шпаргалку) clack Microsoft Office Word 2 23.01.2012 08:09
Как обработать редирект top.location в delphi inconnect Работа с сетью в Delphi 12 22.06.2011 00:18
Как сделать графики в excel и сделать задачи Anna Molchanova Microsoft Office Excel 1 17.06.2011 06:14