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

重定向表单输入的正确方法是使用HTTP 303重定向。

要在当前行重定向,请在 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 回答