使用ajax时,php标头会在登录表单中加载并打开重定向页面
谢谢,代码可能不太好,但这是我的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
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>