abdou_31 Ответов: 1

Php логин с id_user и паролем для таблицы пользователей в базе данных mysql


Я кодирую CRUD-функции с php (веб-сервис) для подключения моего android-приложения к базе данных Mysql , я получаю сообщение об ошибке, означающее, что имя пользователя и пароль неверны, когда я пытаюсь выполнить код моей функции php login .

DbOperation.php
function createUser($id_user, $nom, $prenom, $email, $password){
	//	$password = md5($password);
		$stmt = $this->con->prepare("INSERT INTO users (id_user, nom, prenom, email, password) VALUES (?, ?, ?, ?, ?)");
		$stmt->bind_param("issss", $id_user, $nom, $prenom, $email, $password);
		if($stmt->execute())
			return true; 
		return false; 
	}
			public function userLogin($id_user, $password){
			$password = md5($password);
			$stmt = $this->con->prepare("SELECT id_user FROM users WHERE id_user = ? AND password = ?");
			$stmt->bind_param("is",$id_user,$password);
			$stmt->execute();
			$stmt->store_result(); 
			return $stmt->num_rows > 0; 
		}
	public function getUserById($id_user){
			$stmt = $this->con->prepare("SELECT * FROM users WHERE id_user = ?");
			$stmt->bind_param("i",$id_user);
			$stmt->execute();
			return $stmt->get_result()->fetch_assoc();
		}



UserLogin.php

 <?php 

require_once '../includes/DbOperation.php';

$response = array(); 

if($_SERVER['REQUEST_METHOD']=='POST'){
	if(isset($_POST['id_user']) and isset($_POST['password'])){
		$db = new DbOperation(); 

		if($db->userLogin($_POST['id_user'], $_POST['password'])){
			$user = $db->getUserById($_POST['id_user']);
			$response['error'] = false; 
			$response['id_user'] = $user['id_user'];
			$response['password'] = $user['password'];
		}else{
			$response['error'] = true; 
			$response['message'] = "Invalid Id or Password";			
		}

	}else{
		$response['error'] = true; 
		$response['message'] = "Required fields are missing";
	}
}

echo json_encode($response);


Api.php

case 'getuserbyid':
				isTheseParametersAvailable(array('id_user'));
				$db = new DbOperation();
				$response['error'] = false; 
				$response['message'] = 'Request successfully completed';
				$response['users'] = $db->getUserById($_POST['id_user']);
			break;


Что я уже пробовал:

Я пытаюсь выполнить код UserLogin.php на postman я ввожу значения , но получаю это сообщение :

Неверный идентификатор или пароль

Но мой id_user и пароль верны

1 Ответов

Рейтинг:
0

Richard MacCutchan

Не используйте MD5, используйте правильное хэширование паролей, как это предусмотрено PHP. Видеть php password hash - поиск в Google[^]