2

最近我换掉了一个 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;
}
4

1 回答 1

1

您可能需要联系您的提供商来解决这个问题,因为它直接/间接地在他们的控制之下。

于 2013-10-16T13:49:07.343 回答