2

重複エントリが作成されたときにユーザーをカスタムエラーページ(例:error.php)にリダイレクトしようとしています。これは挿入ステートメントのサンプルですが、リダイレクトの方法がわかりません。

$values = $_POST;
foreach ($values as &$value) {
    $value = mysql_real_escape_string($value);
}

$sql1="INSERT INTO loan (loan_id)
VALUES ('$values[loan_id]')";

$result = mysql_query($sql1);
if (!$result) {
    die('Invalid query: ' . mysql_error());
}
4

3 に答える 3

2

フォーム入力をリダイレクトする適切な方法は、HTTP303リダイレクトを使用することです。

現在の行にリダイレクトするには、PHPで次のようにします。

// Tell the browser to redirect
header('Location: /error.php', TRUE, 303);

// This ensures that the script doesn't continue
// Also, it shows the error on the off chance their browser doesn't redirect
die('Input error.');

出力の前にヘッダー関数が含まれていることを確認する必要があります。

これがあなたのコードにあります:

if (!$result) {
    header('Location: /error.php', TRUE, 303);
    die('Invalid query: ' . mysql_error());
} else {
    header('Location: /success.php', TRUE, 303);
    die('Success');
}
于 2012-04-15T15:14:55.250 に答える
1

を使用してリダイレクトできますheader()

$url = "error.php";
header("Location: " . $url);

HTMLヘッダーが送信される前に、これが実行されていることを確認してください。

于 2012-04-15T14:55:33.667 に答える
0

単に挿入するのではなく、挿入する前に既存のデータを確認したいと思います。

$query = "SELECT * FROM myDB WHERE loan_id = " . $values["loan_id"];
$result = mysql_query($query);
if (!$result) {
   echo "Wrong input";
} else {
   echo "right input";
}

文字列エコーの代わりに、必要に応じてページ全体をロードするか、まだ何も出力していない場合はリダイレクトを使用できます

于 2012-04-15T15:05:40.730 に答える