Javascript PHP AJAX重定向。[帮助]
我有一个表单,它以一种模式的方式进行注册/登录。寄存器的部分工作正常。但是登录部分有重定向问题 我将下面的代码用于AJAX。我对我读到的关于windows.location的所有内容都做了大量的研究,但我不知道如何准确地做到这一点 阿贾克斯: PHP:我在尝试通过用户键入的银行/数据中的结果创建会话之前和之后进行我认为必要的检查Javascript PHP AJAX重定向。[帮助],javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我有一个表单,它以一种模式的方式进行注册/登录。寄存器的部分工作正常。但是登录部分有重定向问题 我将下面的代码用于AJAX。我对我读到的关于windows.location的所有内容都做了大量的研究,但我不知道如何准确地做到这一点 阿贾克斯: PHP:我在尝试通过用户键入的银行/数据中的结果创建会话之前和之后进行我认为必要的检查 if ($result >1) { session_name('nacional'); session_start(); $_SESSIO
if ($result >1) {
session_name('nacional');
session_start();
$_SESSION['cpf']=$cpf;
$_SESSION['senha']=$senha;
header("Location: my_folder/index.php");
}
- 注意:标题标记不是目标。我是否必须按照服务器返回ajax“ok”并更改目标的方式来做一些事情?如果是,如何进行
谢谢收听。您应该向JavaScript发送JSON响应,而不是返回标题。标题在幕后重定向。在PHP中执行以下操作:
return json_encode(['success' => true]);
然后,在AJAX的成功方法中捕捉它。您还需要告诉AJAX使用JSON。将其放在方法和url参数之后,如下所示:
function logar() {
$.ajax({
method: "post",
url: "validalogin.php",
data: $("#login-form").serialize(),
dataType: 'json'
})
.success(function(data){
if (data.success == true) {
alert(data);
window.location.href = "folder/index.php";
}
});
}
我还没能使表格正常工作。我将在下面发布如何获得代码 表格: AJAX(与表单在同一页上): PHP:(我跳过了上面代码的一部分,但它不会影响这里的操作)
$sql=“从aluno\u登录中选择*,其中cpf='$cpf'和senha='$senha';
$result=mysql\u查询($sql,$conexao);
而($linha=mysql\u fetch\u row($result)){
如果($结果为假);
}
如果($result>1){
会议名称(“国家”);
会话_start();
$\会话['cpf']=$cpf;
$\会话['senha']=$senha;
返回json_encode('success'=>true);
}
这是否可行?在使用ajax时,不能使用header重定向。如果要立即重定向,为什么要在此处使用ajax而不仅仅是发布到登录脚本?如果要这样做,可以使用window.location重定向javascript,前提是它从PHP传递了某个responseText语句。例如,在PHP中,如果结果大于1,则echo为1,在javascript中,如果responseText==1,则重定向。如果可能的话,我对我发送的第二个代码有点困惑,您的帮助将非常有效。谢谢你,你快到了。你忘记在你的“成功”电话前关闭括号了。看看我编辑的logar函数。我还修复了json_编码部分。它需要一个数组。虽然听起来不可思议,“返回”不起作用,但我切换到“回声”,它起作用了。无论如何,谢谢你。他们是像你这样的人,他们能带来不同。我也为英语感到抱歉,我不是英语母语……这是有道理的。如果您在函数中,则返回有效。如果您只是调用一个php文件,则需要回显您的结果。您可能需要研究MVC框架,例如Laravel。他们让很多事情变得非常简单,包括身份验证。我听说过,我通常把所有的项目都放在手上,一行一行的哈哈,我会在内容上做一个研究。因为它似乎让我的生活更轻松
function logar() {
$.ajax({
method: "post",
url: "validalogin.php",
data: $("#login-form").serialize(),
dataType: 'json'
})
.success(function(data){
if (data.success == true) {
alert(data);
window.location.href = "folder/index.php";
}
});
}
function logar(){
$.ajax({
method: "post",
url: "validalogin.php",
data: $("#login-form").serialize(),
dataType: 'json',
success: function(data){
if (data.success == true) {
alert(data);
window.location.href = "folder/index.php";
}
}
});
}
$sql = "SELECT * FROM aluno_login WHERE cpf = '$cpf' and senha ='$senha' ";
$result = mysql_query($sql, $conexao);
while($linha = mysql_fetch_row($result)) {
if ($result <1){
unset ($_SESSION['cpf']);
unset ($_SESSION['senha']);
session_destroy();
//echo "Algo deu errado, tente novamente !";
//return json_encode('Error' => false);
}
if ($result >1) {
session_name('nacional');
session_start();
$_SESSION['cpf']=$cpf;
$_SESSION['senha']=$senha;
return json_encode('success' => true);
}