我用自定义登录表单远程登录到我的webmail,这绝对很好,我的问题是如果输入了不正确的用户/通行证。
如果详细信息是正确的,你按下登录按钮,它会直接带你到你的webmail收件箱,而如果详细信息不正确,它仍然会重定向到原始的webmail登录表单(我不希望用户能够看到/到达)。
我的问题是,是否有可能在重定向之前检查事情是否会正确登录,以便我可以显示不正确的用户/通行证输入而不是重定向,并且只有在登录详细信息良好的情况下才重定向。
我认为这可能通过旋度,但我的旋度能力是有限的。这是我的重定向代码(这是表单提交后触发的)
$u = urlencode($_POST['webmail_user']);
$pw = urlencode($_POST['webmail_pass']);
$gu = urlencode("/3rdparty/roundcube/index.php");
$port = 2095;
$protocol = "http://";
$domain = "domain.com";
$redirect_to = $protocol.$domain.":".$port."/login/?user=".$u."&pass=".$pw."&goto_uri=".$gu."&dest_uri=".$gu;
header("Location: ".$redirect_to);
您想要实现的是需要额外的步骤来检查输入值的有效性。
在不向最终用户透露其过程的情况下,可以使用以下方法完成:
1) AJAX:制作AJAX页面,向服务器执行curl请求,检查帐户的登录过程并返回是否工作正常
为了供你参考,我将详细解释这件事。
假设有如下两个文件:index.php, auth_check.php。
index . php
- 使用AJAX调用auth_check.php。使用jQUERY实现AJAX,请参考以下链接:http://api.jquery.com/jquery.ajax/
- 通过auth_check.php的结果,我们将知道帐户信息是否有效。
- 向用户显示错误信息或尝试移动下一步
auth_step.php
- 获取有效和无效帐户信息的HTTP结果(HTML)
- 解析HTML源,并制定决策函数,将这两种情况分类。
- 使用curl实现HTTP请求部分(登录)
- 打印#2函数的结果。(index.php将捕获此结果)
2) IFrame:将IFrame嵌入到原始页面中,并与之通信以验证如上所述的登录。