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

jordane45 Messages postés 40052 Date d'inscription   Statut Modérateur Dernière intervention   4 761
 
Bonjour
Tu parles d'Ajax...
Il faudrait donc également nous montrer ton code JavaScript
0
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
jordane45 Messages postés 40052 Date d'inscription   Statut Modérateur Dernière intervention   4 761 > 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
firpic Messages postés 101 Statut Membre 1 > jordane45 Messages postés 40052 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
jordane45 Messages postés 40052 Date d'inscription   Statut Modérateur Dernière intervention   4 761 > 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
jordane45 Messages postés 40052 Date d'inscription   Statut Modérateur Dernière intervention   4 761 > jordane45 Messages postés 40052 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