Да ме прехвърля на друга страница

stefan122

Registered
<?
include \"conn.php\";
$button=$_POST[\'button\'];
if($button){
$ot=htmlspecialchars($_POST[\'ot\']);
$url=htmlspecialchars($_POST[\'url\']);
$vic=htmlspecialchars($_POST[\'vic\']);
$ime=htmlspecialchars($_POST[\'ime\']);
$email=htmlspecialchars($_POST[\'email\']);
$date = date(\"m.d.y\");
$cat=htmlspecialchars($_POST[\'cat\']);
if($ot == NULL || ($cat == \'0\') || $cat == NULL || $vic == NULL || $url == NULL || $ime == NULL || $email == NULL){
echo \"<div class=\'unsuccess\'>Моля, попълнете нужните полета.</div>\"; }
else {
$sql=mysql_query(\"INSERT INTO `vicove` (id, ot, url, vic, ime, email, date, cat) VALUES (\'\',\'$ot\', \'$url\', \'$vic\', \'$ime\', \'$email\', \'$date\', \'$cat\')\") or die(mysql_error());
echo \"<div class=\'success\'>Вицът е добавен успешно!</div>\";
}
}
?>


Как да направя вместо да показва Вицът е добавен успешно!
да ме препраща към друга страница ?
 
PHP:
<?
ob_start();
include \"conn.php\";
$button=$_POST[\'button\'];
if($button){
$ot=htmlspecialchars($_POST[\'ot\']);
$url=htmlspecialchars($_POST[\'url\']);
$vic=htmlspecialchars($_POST[\'vic\']);
$ime=htmlspecialchars($_POST[\'ime\']);
$email=htmlspecialchars($_POST[\'email\']);
$date = date(\"m.d.y\"); 
$cat=htmlspecialchars($_POST[\'cat\']);
if($ot == NULL || ($cat == \'0\') || $cat == NULL || $vic == NULL || $url == NULL || $ime == NULL || $email == NULL){
echo \"<div class=\'unsuccess\'>Моля, попълнете нужните полета.</div>\"; }
else {
$sql=mysql_query(\"INSERT INTO `vicove` (id, ot, url, vic, ime, email, date, cat) VALUES (\'\',\'$ot\', \'$url\', \'$vic\', \'$ime\', \'$email\', \'$date\', \'$cat\')\") or die(mysql_error());
header('Location: index.php');
}
}
?
 
Warning: Cannot modify header information - headers already sent by (output started at /home/s/public_html/vic/index.php:15) in /home/socialn/public_html/vic/add.php on line 92
 
PHP:
<?
include \"conn.php\";
ob_start();
$button=$_POST[\'button\'];
if($button){
$ot=htmlspecialchars($_POST[\'ot\']);
$url=htmlspecialchars($_POST[\'url\']);
$vic=htmlspecialchars($_POST[\'vic\']);
$ime=htmlspecialchars($_POST[\'ime\']);
$email=htmlspecialchars($_POST[\'email\']);
$date = date(\"m.d.y\"); 
$cat=htmlspecialchars($_POST[\'cat\']);
if($ot == NULL || ($cat == \'0\') || $cat == NULL || $vic == NULL || $url == NULL || $ime == NULL || $email == NULL){
echo \"<div class=\'unsuccess\'>Моля, попълнете нужните полета.</div>\"; }
else {
$sql=mysql_query(\"INSERT INTO `vicove` (id, ot, url, vic, ime, email, date, cat) VALUES (\'\',\'$ot\', \'$url\', \'$vic\', \'$ime\', \'$email\', \'$date\', \'$cat\')\") or die(mysql_error());
header("Location: index.php");
}
}
?>

А така?
 
В такъв случай ти нямаш и session_start();

Ето последен код, ако и този не стане се предавам наистина:

PHP:
<?
session_start();
ob_start();
include \"conn.php\";
ob_start();
$button=$_POST[\'button\'];
if($button){
$ot=htmlspecialchars($_POST[\'ot\']);
$url=htmlspecialchars($_POST[\'url\']);
$vic=htmlspecialchars($_POST[\'vic\']);
$ime=htmlspecialchars($_POST[\'ime\']);
$email=htmlspecialchars($_POST[\'email\']);
$date = date(\"m.d.y\"); 
$cat=htmlspecialchars($_POST[\'cat\']);
if($ot == NULL || ($cat == \'0\') || $cat == NULL || $vic == NULL || $url == NULL || $ime == NULL || $email == NULL){
echo \"<div class=\'unsuccess\'>Моля, попълнете нужните полета.</div>\"; }
else {
$sql=mysql_query(\"INSERT INTO `vicove` (id, ot, url, vic, ime, email, date, cat) VALUES (\'\',\'$ot\', \'$url\', \'$vic\', \'$ime\', \'$email\', \'$date\', \'$cat\')\") or die(mysql_error());
header("Location: index.php");
}
}
?>
 
сега дава грешка още преди да съм натиснал бутона
на реда - session_start();

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/s/public_html/vic/index.php:15) in

а след като го натисна:

Warning: Cannot modify header information - headers already sent by (output started at /home/s/public_html/vic/index.php:15) in
 
Тази грешка я дава, защото имаш HTML преди header(). За да препращаш към друга страница ползвай например javascript:

echo '<script type="text/javascript">
setTimeout(\'window.location="http://google.bg"\', 6000);
</script>';

Само смени страницата в червено и милисекундите в зелено. 1000 милисекунди = 1 секунда :)
 
Проблема е че използваш ECHO и затова не те редиректва махни го и всичко ще е ок и няма нужда от тези обратно наклонени черти може и така $_POST['name_promenliva']
 

Back
Горе