0

私のウェブサイトに簡単な注文フォームがあります。送信ボタンをクリックすると、フォームからデータベースにデータが送信されます。これは機能します。ただし、success.phpは表示されません。start.phpが再度表示されるだけです。ですから間違いがあるに違いありません。私の以前のホスティング業者では、それは機能しました。しかし今、私は新しいものを持っています。

これが私のphpスクリプト(start.php)です:

<?php
$con = mysql_connect("localhost", "user", "pw") or die ("No connection to db possible"); 
mysql_select_db("db", $con) or die ("No connection to db possible");
mysql_query("SET NAMES 'utf8'");

if (isset($_POST['button']))
{
foreach ($_POST AS $key => $postvar)
    $_POST[$key] = stripslashes($postvar);

$_POST['name'] = mysql_real_escape_string($_POST['name']);
$_POST['strasse'] = mysql_real_escape_string($_POST['strasse']);
$_POST['plz'] = mysql_real_escape_string($_POST['plz']);
$_POST['ort'] = mysql_real_escape_string($_POST['ort']);
$_POST['mail'] = mysql_real_escape_string($_POST['mail']);
$_POST['anzahl'] = mysql_real_escape_string($_POST['anzahl']);



$sql = "INSERT INTO `bestellungen` (`name`,`strasse`,`plz`,`ort`,`mail`,`anzahl`,`datetime`)
                VALUES ('".$_POST['name']."', '".$_POST['strasse']."', '".$_POST['plz']."', '".$_POST['ort']."', '".$_POST['mail']."', '".$_POST['anzahl']."', '".date("Y-m-d H:i:s")."');";

$result = mysql_query($sql,$con);
if (!$result) echo mysql_error();
mysql_close($con);

?> 

<?php Header("Location: success.php");
exit();
?>

<?php

} else { ?>
4

4 に答える 4

2

header('Location: success.php')ブラウザに何かを出力する前に発生する必要があるため、これは機能しません。それが呼び出される前にギャップがあるようです。

$result = mysql_query($sql,$con);
if (!$result) echo mysql_error();
mysql_close($con);

// Now its time for the header!
header("Location: success.php");
exit();
于 2012-10-23T16:16:41.087 に答える
1

これまでのところ、この種の問題を見つけたときはいつでも。私がよくする理由は 2 つあります。ヘッダー関数の前に html コードを印刷するか、success.php も start.php にリダイレクトすることに気づいていません。

おそらく、これら 2 つのいずれかがコードに存在することを確認できます。

于 2012-10-23T16:26:44.497 に答える
1

header() リダイレクトの前に出力を行うことはできません。

考えられるエラー、警告、または通知がないかスクリプトを確認してください。これらのいずれかがテキストを出力し、リダイレクトは発生しません。

于 2012-10-23T16:19:42.253 に答える
0

このようにフォーマットします。

$result = mysql_query($sql,$con);
if (!$result) { 

    echo mysql_error();

} else {

   Header("Location: success.php");
}

mysql_close($con);

?> 
于 2012-10-23T16:24:43.923 に答える