Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

286
Vistas
La publicación Ajax no le da valor al archivo php, la publicación se convierte en get

Tengo esta función ajax para iniciar sesión.

Editar: acabo de notar que este servidor ejecuta php7 mientras que otro servidor donde el inicio de sesión funciona usa php5. ¿Qué ha cambiado en php que este script ya no funciona?

Edición 2: parece que el método de solicitud del servidor no se publica, sino que se cambia para obtener, ¿por qué?

Solución: necesitaba eliminar el .php de la url: "./ajaxcall/login.php", porque uso bastante url htaccess.😅

 var InName = $('#InName').val(); var InPass = $('#InPass').val(); alert(InName); $.ajax({ type: "POST", url: "./ajaxcall/login.php", dataType: "json", data: {InName:InName, InPass:InPass}, error: function (request, error) { console.log(arguments); alert("Inlog Can't do because: " + error); }, success : function(data){ if (data.code == "200"){ $("#InErEr").html(data.msg); //window.location.reload(true); } else { $("#InErEr").html(data.msg); $('.lds-dual-ring').animate({opacity: 0}, 300); } } });

En la alert(InName); Obtengo el valor correcto del nombre de usuario. Pero cuando reviso mi archivo php $_POST['InName'] está vacío.

Parte del archivo php

 include('../config.php'); if(empty($_POST['InName'])) { $Ierror = 'Username is required.'; } if($_POST['InPass'] == '') { $Ierror = 'Password is required.'; } $username = $_POST['InName']; $passwordL = $_POST['InPass']; // count user in between // if($Inlognumber_of_rows == 0) { $Ierror = 'Username not found.'; } else { // password check // if(password_verify($salty_pass, $hashed_password)) { } else { $Ierror = 'Password incorrect.'; } } if ($Ierror == '') { // do login // } else { $showerror = '<span style="color:#F00;">'.$Ierror.$username.$passwordL.$_POST['InName'].$_POST['InPass'].'</span>'; echo json_encode(['code'=>404, 'msg'=>$showerror]); exit; }

En el mensaje de respuesta, $showerror solo obtengo, Nombre de usuario no encontrado, sin los valores publicados. Entonces, ¿el inicio de sesión no funciona debido a valores vacíos? El usuario también está presente en la base de datos, por supuesto. Tampoco obtengo los errores de $_POST vacíos. Entonces, para colmo, en javascript obtengo el valor correcto para InName pero no en php.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Estás cerca pero tu captura de error no es correcta... prueba esto (Jquery):

 var InName = 'something'; var InPass = 'morething'; $.post("./ajaxcall/login.php", { InName: InName, InPass: InPass }, function(data, status) { console.log(data, status); }).done(function() { alert("second success"); }) .fail(function() { alert("error"); }) .always(function() { alert("finished"); });

en su archivo php simplemente haga print_r($_POST); y recibirás esto en tu consola...:

 Array ( [InName] => something [InPass] => morething ) success

Básicamente, estaba tratando de imprimir el error donde debería haber consolado el registro de request.responeText ...

Un buen truco para saber si las publicaciones llegaron al php, incluso si no se muestra el archivo console.log, es hacer esto en el archivo php:

 <?php print_r($_POST) ; $newfile = fopen('newfile.txt','a'); fwrite($newfile,json_encode($_POST)); fclose($newfile);

Esto imprimirá y también almacenará en un archivo local los datos de la publicación....

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda