Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SimpleModal PHP登录表单:如何在成功/失败时重定向_Php_Jquery_Simplemodal - Fatal编程技术网

SimpleModal PHP登录表单:如何在成功/失败时重定向

SimpleModal PHP登录表单:如何在成功/失败时重定向,php,jquery,simplemodal,Php,Jquery,Simplemodal,希望你能帮忙。这里有点像jQuery/AJAX新手 我有一个基本的SimpleModel登录表单,可以从我网站的主页调用它 login.js调用login.php脚本,该脚本检查我的数据库中的用户凭据 如果登录成功,我会设置一些会话变量,并且通常使用header命令将用户发送到他们的个人页面(或登录失败时的错误页面) 例如,标题(“位置:restricted/index.php”) 我无法关闭模式登录表单,也无法将父主页重定向到成员页面。我通常留着空白的方格,上面写着“谢谢”< 如果我试图用 s

希望你能帮忙。这里有点像jQuery/AJAX新手

我有一个基本的SimpleModel登录表单,可以从我网站的主页调用它

login.js调用login.php脚本,该脚本检查我的数据库中的用户凭据

如果登录成功,我会设置一些会话变量,并且通常使用header命令将用户发送到他们的个人页面(或登录失败时的错误页面)

例如,标题(“位置:restricted/index.php”)

我无法关闭模式登录表单,也无法将父主页重定向到成员页面。我通常留着空白的方格,上面写着“谢谢”< 如果我试图用

success: function (data) {
 $('#login-container .login-loading').fadeOut(200, function () {
  $('#login-container .login-title').html('Thank you!');
  msg.html(data).fadeIn(200);
  $.modal.close(); //have inserted this line
 });
},
模态关闭,但我留在主页上。(用户在此阶段已登录,但未发生重定向)


这件事我已经讨论了一两天了。我看过wordpress的登录插件,但我一点也不知道。有什么想法吗

实际上重定向可能确实发生了,它只是发生在AJAX请求内部。在执行重定向时,ajax函数使用的XmlHttpRequest透明地跟随它,因此返回到客户端的页面是
restricted/index.php
。我倾向于在该页面上添加标题,如下所示:

header("Redirect:restricted/index.php");
然后使用以下命令查找标题:


这样(除非您覆盖
complete
,否则它会将此选项保留为打开状态)当请求返回到
restricted/index.php
(请记住XmlHttpRequest实际到达的位置)时,它会得到一个头,让客户端知道它需要重定向。

感谢您的回复。是的,重定向确实发生在幕后。AJAX新手-很难看到发生了什么。现在我有了>标题(“Redirect:restricted/index.php”);在目标页面restricted/index.php上,我和我现在有了重定向HTTP头。我应该将ajaxSetup函数放置在何处以及如何调用它。抱歉问了这么愚蠢的问题。我在页面代码中有一个>如果(重定向)警报(重定向);调试脚本标记内的行,但它未运行。谢谢@user438858-不重定向,而是向客户端发送一个不同的头,这样他们就可以重定向,就像我上面所说的那样…如果登录成功,您只需添加该头?@user438858-它可以在任何地方调用,在您发出任何ajax请求之前,只需调用一次即可。如果ajax请求有自己的
complete
,那么您需要稍微改变一下方法,是这样吗?
$.ajaxSetup({
  complete: function (xhr) {
    var redirect = xhr.getResponseHeader('Redirect');
    if(redirect) window.location.href = redirect;
  }
});