Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

280
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!