私はAJAXを使ってユーザーをサービスに登録しています。 送信ボタンのマークアップは次のとおりです。phpのheader()がうまくいかないのはなぜですか?
<input type="button" id="register" name="register" class="btn btn-success" onclick="registration();" value="Register"/>
、次の
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のスニペットは、今の問題も私のphpかかわらことを登録()関数およびその他の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");
}
}
}
次のようになりされますスクリプトがotp.php にリダイレクトされていない、すなわちヘッダー機能が動作していない、データベースに書き込むことができます。 ここから私のPHPスクリプトからotp.phpにリダイレクトする方法を教えてください。
P.S. - ボタンはブートストラップモーダルにあります。
あなたはajaxコールを行っています。これは、呼び出し元のページではなく、ajax呼び出し自体だけがリダイレクトされることを意味します。それは、店に誰かを送って何かを拾うことと、店に行って同じことをすることの違いです。店舗が出て別の場所に行くよう指示された場合、あなたと「誰か」の両方がリダイレクトされますが、家に帰ってきてあなたに伝えるまで、誰かがリダイレクトされたことはわかりません。 –
エラーについて質問をすると、**常にエラーログがポストされます。あなたのPHPコードへのエラー報告を有効にするには、 'error_reporting(E_ALL);を追加します。 ini_set( 'display_errors'、 '1'); 'スクリプトの先頭には何が返されますか? –