繁体   English   中英

如何将用户重定向到同一HTML页面,但显示错误消息[php]?

[英]How to redirect user to the same HTML page, but with an error message [php]?

我有一个具有两个输入的表单。 用户填写表单并单击Submit之后,会将这些输入与MySQL表数据进行比较。

我想做的是:当用户单击表单中的Submit时,它将用户重定向到THE SAME PAGE ,但带有一条消息。

如果用户的输入与表中的数据匹配,则消息应为

“您的输入与数据库匹配”

如果用户输入不匹配,则消息应相反。

到目前为止,这是我的代码。 同样,我需要知道的是,在按下提交按钮之后,如何保持在同一页面中。

$sql1 = " SELECT `Numero Cedula` FROM Teste WHERE `Numero Cedula`=$numero_cedula
and `Id`=$integer "   ;

$objGet = mysqli_query($con, $sql1);


if( mysqli_num_rows($objGet) > 0 ) {
    echo "Your input matches the database";
} else {
    echo "Your input does not match the database";` 
}

或者,您可以针对这种情况设计(某种)闪存会话行为。 提交后,在会话中设置一条消息。 然后在重定向后回显它,然后只需取消设置即可。

粗略的例子:

session_start();
$current_url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

if(isset($_POST['submit'])) { // upon submission
    $sql1 = "SELECT `Numero Cedula` FROM Teste WHERE `Numero Cedula` = $numero_cedula and Id = $integer";
    $objGet = mysqli_query($con, $sql1);
    if( mysqli_num_rows($objGet) > 0 ) {
        $_SESSION['msg'] = "Your input matches the database";
    } else {  
         $_SESSION['msg'] = "Your input does not match the database";  
    }

    header('Location: ' . $current_url);
     exit;
}


if(isset($_SESSION['msg'])) {
    echo '<div class="message">' . $_SESSION['msg'] . '</div>';
    unset($_SESSION['msg']);
}

旁注:也使用准备好的陈述。

不要重定向使用AJAX。 这是一个示例,您可以将其扩展为包含错误的字段(不建议使用)或包含剩余尝试次数等。

AJAX;

$.post('yourUrl', $('yourForm').serialize(), function (data) {
$result = parseJSON(data);
//append your message somewhere
$('body').append($result.message);
$('body').append('You have ' + $result.numberOfTries + ' Left');   
}

PHP;

if (//your validation is good!)
{  
 //redirect to your stuffs
}
else
{ 
  echo json_encode(array(
                         'successful'=>false, 
                         'message'=>'Sorry, Those Details Are Incorrect',
                         'numberOfTries'=>$triesLeft,
                         )
                   ); 
};
if( mysqli_num_rows($objGet) > 0 ) {
    echo "<script>alert('Your input matches the database')</script>";
}
else {
    echo "<script>alert('Your input does not match the database')</script>";` 
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM