最近我换掉了一个 GoDaddy 主机并将请求的 DNS 服务器定向到另一个我的服务器。方向指向一个文件夹。
发生的情况是,我试图在提交表单以实际登录之前通过 ajax 登录进行验证。
AJAX 调用并执行一个 php,但数据没有通过 POST 传递,就好像它们在请求中丢失一样。然而,PHP 是在 AJAX 请求中运行,甚至按我的意愿返回一条消息,但数据是通过 ajax 发送的,就好像他们得到了什么一样。
我试图通过邮寄直接发送表格并导致同样的错误。我相信 POST 在引导 DNS 时可能会迷失方向。可能吗?
无论如何,我要离开 HTML、AJAX 和 PHP: 注意:我正在使用 CodeIgniter。HTML:
<?php echo form_open('usuarios/login', array('method' => 'post', 'id' => 'form-login')) ?>
<div class="boxform">
<label for="loginnome">Usuário ou E-mail:</label>
<input type="text" name="loginnome" required id="loginnome" placeholder="Usuário ou E-mail" title="Usuário ou E-mail">
</div>
<div class="boxform">
<label for="loginsenha">Senha:</label>
<input type="password" name="loginsenha" required id="loginsenha" placeholder="Senha" title="Senha">
</div>
<div class="boxform">
<input type="submit" class="button submit-claro" value="Logar" title="Logar">
</div>
<?php echo form_close(); ?>
阿贾克斯:
$('#form-login').validate({
rules: {
loginnome: {
required:true,
maxlength:100
},
loginsenha:{
required:true,
maxlength:30
}
},
submitHandler: function( form ){
$.ajax({
type : "POST",
url : get_url()+"usuarios/validar_login",
dataType : 'json',
data : {
'usuario' : $('#loginnome').val(),
'senha' : $('#loginsenha').val()
},
success : function(data){
console.log(data);
if (data.usuario === false) {
$('.msg_error p').show();
$('.msg_error p').html('');
$('.msg_error p').html('Usuario inválido');
$('#loginnome').val('').focus();
}
else {
if (data.senha === false) {
$('.msg_error p').show();
$('.msg_error p').html('');
$('.msg_error p').html('Senha incorreta');
$('#loginnome p').val('').focus();
}
else {
inicia_sessao(data.url);
}
}
}
});
//return false;
}
});
PHP:
public function validar_login()
{
$usuario = $this->input->post('usuario');
$senha = $this->input->post('senha');
$return = $this->usuario->valida_login($usuario,$senha);
$return['url'] = site_url();
echo json_encode($return); die;
}