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

287
Views
Ajax post does not give value to php file, post becomes get

I have this ajax function for login.

Edit: I just noticed that this server runs php7 while other server where the login does work uses php5. What has changed in php that this script doesn't work anymore?

Edit 2: Looks like the server request method isn't post but changed to get, why?

Solution: needed to remove the .php from url: "./ajaxcall/login.php", because I use pretty 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);
                }
            }
        });

On the alert(InName); I get the correct value of the username. But when I check in my php file $_POST['InName'] it is empty.

Part of php file

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;
}

In the return message, $showerror I only get, Username not found, without the posted values. So the login is not working because of empty values? User is also present in the database of course. I also don't get the empty $_POST errors. So to cap up, in javascript I get the correct value for InName but not in php.

over 4 years ago ยท Santiago Trujillo
1 answers
Answer question

0

You are close but your error catch is not correct ... try this (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");
  });

on your php file just do print_r($_POST); and you will receive this in your console...:

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

Basically you were trying to print the error where you should have consoled log the request.responeText...

A good trick to know if posts arrived to the php even if the console.log won't show is doing this in the php file:

<?php
print_r($_POST) ;

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

This will print and also store on a local file the post data....

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!