对于我的登录页面,目前如果密码不正确,我必须重定向到另一个页面。有什么方法可以让我在使用 PHP 的常规登录页面的错误页面上插入或显示错误消息,从而消除对错误页面的需要?我可以使用 jQuery ( 轻松做到这一点$("#error").css("visibility","visible");
,但我不知道如何使用 PHP 与 DOM 交互,因为它是在服务器上执行的。
3 回答
如果需要在 PHP 中生成错误消息,您可能需要考虑使用 AJAX。它是一种 JavaScript 方法,用于从服务器获取数据并在客户端代码中对其进行处理,而无需更改 Web 浏览器的页面。然而,正确地做会有点复杂,做错只会让一切变得更慢和更麻烦。
这个想法是使用 AJAX 请求(例如jQuery 的 ajax 函数) 将表单数据提交到特制链接,该链接返回可在 JavaScript 中解析的片段,而不是整个网页。该片段将告诉客户端登录是否成功。如果成功,该片段应包含登录凭据,JavaScript 回调应使用该登录凭据设置任何会话 cookie 并重定向到您最终应该访问的任何页面。如果不成功,片段应包含回调应显示给客户端的错误消息。处理 AJAX 请求的 JavaScript 还必须考虑任何传输错误,它应该向用户提供表单实际上已提交的反馈;这些东西是由浏览器通过正常的表单提交而不是 AJAX 请求提供的。
通过简单地回显数据,您可以使用 PHP 使所有 Javascript(包括 Jquery)和 HTML 工作。例如:
<?php
echo "<script>$('#error').css('visibility','visible');</script>
?>
请记住在 Javascript 中使用单引号,以免与 PHP 的 echo 函数的双引号发生冲突。
如果我正确理解您的问题,您真的不必隐藏/显示元素。当出现错误时,您只需回显一条错误消息。就像是:
<?php
$showErr = false;
if ($err == true) {
$showErr = true;
}
//Put this part in code where you want content of the #error to be displayed
if ($showErr == true) {
echo '<div id="error">ERROR MESSAGE HERE</div>';
}
?>