Login PHP Ajax

Résolu
firpic Messages postés 101 Statut Membre -  
firpic Messages postés 101 Statut Membre -
Bonjour,

Je n'arrive pas a faire de connexion avec php ajax. Meme en regardant des tuto sur internet.

voici le code php:
<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

date_default_timezone_set('Europe/Paris');
require('config.php');
session_start();

function get_ip(){
	if ( isset ( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ){
		$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
	}elseif ( isset ( $_SERVER['HTTP_CLIENT_IP'] ) ){
		   $ip  = $_SERVER['HTTP_CLIENT_IP'];
	}else{
		$ip = $_SERVER['REMOTE_ADDR'];
	}
	return $ip;
}
$IP=get_ip();
$message='';
$username=$_REQUEST["username"];
echo '<br> username requiest = ' + $username;

$username=mysqli_real_escape_string($conn, $username);
echo '<br> username mysqli real escape string = ' + $username;

$password=$_REQUEST["password"];
echo '<br> password request = ' + $password;

$password=mysqli_real_escape_string($conn, $password);
echo '<br> password mysqli real escape string = ' + $password;

$password=hash('sha256', $password);
echo '<br> password hash = ' + $password;

	



function login($username, $password, $conn, $IP){

	$rlt = mysqli_query($conn, "SELECT * FROM `user` WHERE username='$username' and password='$password");
	$row = mysqli_num_rows($rlt);
	var_dump($row);
	if($row==1){
			
		$last = "UPDATE `user` SET last_login = NOW() , last_ip = '$IP' WHERE username='$username'LIMIT 1";
		$query = mysqli_query($conn, $last);
		$_SESSION['username'] = $username;
	}

}

if(login($username, $password, $conn, $IP)){
	$message = "Connection reussi";
	echo json_encode(array("statusCode"=>200));
}else{
	$message = "Erreur connection ";
	echo json_encode(array("statusCode"=>201));
}
setcookie('lgn-msg', $message , time()+3600*24);

?>


et voici la requete :
page.php?username=user&password=passwd


J'utilise le même fonctionnement pour s'inscrire et cela fonctionne tres bien

1 réponse

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour
    Tu parles d'Ajax...
    Il faudrait donc également nous montrer ton code JavaScript
    0
    1. firpic Messages postés 101 Statut Membre 1
       
      Oui je pense que cela sera mieux. J'utilise le meme code pour s'inscrire et cela fonctionne.

      Voici le code javascript :
      const username_lgn = document.getElementById('username-lgn');
      const password_lgn = document.getElementById('password-lgn');
      usernameLGN = username_lgn.value;
      passwordLGN = password_lgn.value;
      
      function login(usernameLGN, passwordLGN){
          var xmlhttplgn = new XMLHttpRequest();
      
          xmlhttplgn.open("GET", "user/login.php?username=" + usernameLGN + '&password=' + passwordLGN, true);
          xmlhttplgn.send();
      }
      0
    2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > firpic Messages postés 101 Statut Membre
       
      question bête ... si tu ouvres l'url directement dans ton navigateur .. tu obtiens quoi ?
      Un message d'erreur peut-être ..
      0
    3. firpic Messages postés 101 Statut Membre 1 > jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention  
       
      J'obtient cette erreur :



      Warning: A non-numeric value encountered in F:\XAMPP\htdocs\disc\user\login.php on line 23

      Warning: A non-numeric value encountered in F:\XAMPP\htdocs\disc\user\login.php on line 23
      0
      Warning: A non-numeric value encountered in F:\XAMPP\htdocs\disc\user\login.php on line 26

      Warning: A non-numeric value encountered in F:\XAMPP\htdocs\disc\user\login.php on line 26
      0
      Warning: A non-numeric value encountered in F:\XAMPP\htdocs\disc\user\login.php on line 29

      Warning: A non-numeric value encountered in F:\XAMPP\htdocs\disc\user\login.php on line 29
      0
      Warning: A non-numeric value encountered in F:\XAMPP\htdocs\disc\user\login.php on line 32

      Warning: A non-numeric value encountered in F:\XAMPP\htdocs\disc\user\login.php on line 32
      0
      Warning: A non-numeric value encountered in F:\XAMPP\htdocs\disc\user\login.php on line 35

      Warning: A non-numeric value encountered in F:\XAMPP\htdocs\disc\user\login.php on line 35
      0
      Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, bool given in F:\XAMPP\htdocs\disc\user\login.php on line 44
      NULL {"statusCode":201}


      de ce que j'ai compris moi, il n'arrive a récupère password et ussername dans url
      0
    4. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > firpic Messages postés 101 Statut Membre
       
      La concaténation en php .. c'est avec un point .. pas un plus..
      echo '<br> username requiest = ' + $username;
      

      A corriger par
      echo '<br> username requiest = ' . $username;
      


      idem sur les autres lignes
      0
    5. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830 > jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention  
       
      Ensuite, il manque une quote dans ta requête
      A corriger par
      
      	$rlt = mysqli_query($conn, "SELECT * FROM `user` WHERE username='$username' and password='$password' ");
      	
      
      0