Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.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
使用ajax时,php标头会在登录表单中加载并打开重定向页面_Php_Ajax - Fatal编程技术网

使用ajax时,php标头会在登录表单中加载并打开重定向页面

使用ajax时,php标头会在登录表单中加载并打开重定向页面,php,ajax,Php,Ajax,谢谢,代码可能不太好,但这是我的php: 此外,我还使用了会话销毁,因为它可能无法正常工作,即使用户名、密码错误,它也只是登录,但留下了相关错误: <?php if($_POST){ $_SESSION['name'] = $_POST['name']; $_SESSION['password'] = md5($_POST['password']); if( $_SESSION['name'] && $_SESSION

谢谢,代码可能不太好,但这是我的php:

此外,我还使用了会话销毁,因为它可能无法正常工作,即使用户名、密码错误,它也只是登录,但留下了相关错误:

<?php
    if($_POST){
        $_SESSION['name'] = $_POST['name'];
        $_SESSION['password'] = md5($_POST['password']);
        if( $_SESSION['name'] && $_SESSION['password']){
            mysql_connect("localhost", "root", "") or die("problem with        connection...");
            mysql_select_db("testdb");
            $query = mysql_query("SELECT * FROM registered WHERE name='".$_SESSION['name']."'");
            $numrows = mysql_num_rows($query);
                if($numrows != 0){
                    while($row = mysql_fetch_assoc($query)){
                        $dbname = $row['name'];
                        $dbpassword = ($row['password']);
                    }
                    if($_SESSION['name']==$dbname){
                        if($_SESSION['password']==$dbpassword){
                            header("location:loggedinuser.php");
                            die();
                        }else {
                            echo "password is not correct";
                            session_destroy();
                        }
                    }else{
                        echo "name is not correct";
                        session_destroy();
                    }
                }else{
                    echo"This name is not registered";
                    session_destroy();
                }
        }else{
            echo"You have to complete the form";
            session_destroy();
        }
    }else{
        echo"Access Denied!";
        exit;
    }?>

也许您的登录表单位于(i)框架(或fancybox)内。然后,任何响应头都将修改此iframe。如果这是您的情况,您不能直接从PHP进行重定向(当用户提交此表单时),但您必须在ajax代码中传播此事件,并在javascript中进行重新加载/刷新或任何您想要的操作。

发布代码,如果您发布代码,我们将帮助您ajax可以与您的登录名通信。PHP。。。从login.php返回json编码的响应,ajax将读取该响应并执行必要的操作。如果你至少能发布你的ajax代码,那就太好了。Clayton&JTheDev,请看我上面的代码:Dominik,不,我不使用任何iFrame,但我的表单是一个模式,有什么建议吗?很可能与我描述的情况相同。模态通常是通过iframes创建的——只需在chrome中的这个登录表单上单击鼠标右键,然后单击inspect元素;然后看看你的表单上面的层次结构中是否有iframe。Dominik,我在那里没有找到iframe,这是个好主意,尽管登录的结果看起来像是iframe。是否有其他重定向方法?请尝试在JS端执行此操作。尝试更改应用程序JS部分中的window.locaiton(以便从客户端重定向)。
<script type="text/javascript">
        function testing(){
            var xmlhttp;
            if(window.XMLHttpRequest){
                xmlhttp = new XMLHttpRequest();
            }else{
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            var uname = document.getElementById('name').value;
            var upassword = document.getElementById('password').value;
            xmlhttp.onreadystatechange = function(){
                if(xmlhttp.readyState==4){
                    document.getElementById('result').innerHTML = xmlhttp.responseText;
                }
            }
            url = "login.php?name="+uname+"&password="+upassword;
            xmlhttp.open("POST",url,true);
            xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            xmlhttp.send("name="+uname+"&password="+upassword);
        }
    </script>