我使用AJAX将用户注册到服务。 以下是提交按钮的标记。为什么php的header()不工作?
<input type="button" id="register" name="register" class="btn btn-success" onclick="registration();" value="Register"/>
和以下是注册()函数和其他Javascript成为
function registration()
{
var name = document.getElementById("regname").value;
var email = document.getElementById("regemail").value;
var pass = document.getElementById("regpassword").value;
var pass2 = document.getElementById("regreenterpassword").value;
var tagline = document.getElementById("tagline").value;
registerOnDB();
};
var xmlHttpReg = createXmlHttpRequestObject(); //Calling the function to vaidate input credentials
function createXmlHttpRequestObject()
{
var xmlHttpReg;
if(window.ActiveXObject) //If user is using internet Explorer
{
try
{
xmlHttpReg = new ActiveXObject("Microsoft.xmlHttp");
}
catch(e)
{
xmlHttpReg=false;
}
}
else //If user is NOT using internet Explorer but any other browser
{
try
{
xmlHttpReg = new XMLHttpRequest();
}
catch(e)
{
xmlHttpReg=false;
}
}
if(!xmlHttpReg) //If Object can not be initialized.
{
alert("Can not create object");
}
else
{
return xmlHttpReg;
}
}
function registerOnDB()
{
if(xmlHttpReg.readyState==0 || xmlHttpReg.readyState==4) //If object state is either 0 OR 4 i.e. object not engaged otherwise.
{
var name = encodeURIComponent(document.getElementById("regname").value);
var email = encodeURIComponent(document.getElementById("regemail").value);
var pass = encodeURIComponent(document.getElementById("regpassword").value);
var tagline = encodeURIComponent(document.getElementById("tagline").value);
var parameters="name="+name+"&email="+email+"&pass="+pass+"&tagline="+tagline+"&loggedin=true";
var url = "http://localhost/dashboard/x/php/register.php?"+parameters; //Sending Data to php script for validation
xmlHttpReg.open("GET",url,true); //Preparing to send request
xmlHttpReg.onreadystatechange = handleServerResponseReg; //Handling response that will come from php script
xmlHttpReg.send(); //sending values to php script
}
else
{
setTimeout('registerOnDB()', 1000); //If reasyState is NOT 0 or 4 then repeat then wait and check again after 1 second.
}
}
function handleServerResponseReg()
{
if(xmlHttpReg.readyState==4||xmlHttpReg.readyState==0) //If object state is either 0 OR 4 i.e. object not engaged otherwise.
{
if(xmlHttpReg.status==200) //status 200 means everything went OK
{
document.getElementById("errorpromptregister").innerHTML = xmlHttpReg.responseText; //Putting out message received from XML on the screen at a div whose ID is errorprompt.
}
else
{
alert("xmlHttp.status!=200");
}
}
}
以下是我的PHP的片段文件 -
if(mysql_query("INSERT INTO user_tbl(name, tagline, email, password, salt, otp) VALUES ('$name','$tagline','$email','$password','$salt', '$otp')"))
{
session_start();
$_SESSION['email']=$email;
header("Location : otp.php");
exit();
}
现在的问题是,即使我的PHP脚本能够写入数据库,它不会重定向到otp.php 即头功能不起作用。 请帮我在这里,我怎么可以从我的PHP脚本重定向到otp.php
附: - 该按钮位于引导模式上。
你正在做一个ajax调用。这意味着只有ajax调用本身,而不是调用来自的页面,将被重定向。把某人送到商店去挑选某些东西,然后你去商店拿起同样的东西,这是区别的。如果商店外出,并告诉你去其他地方,你和“某人”将被重定向,但你不会知道这个人被重新定向,直到他们回到家并告诉你。 –
当您提出有关错误的问题时,**总是**发布错误日志。要启用错误报告给你的php代码,追加'error_reporting(E_ALL); ini_set('display_errors','1');'在脚本的顶部,它返回什么? –