Скрипт php для проверки имени+пароля

327
09 июня 2017, 12:50

Есть форма авторизации, в которую пользователь вводит имя и пароль(данные должны храниться в json файле). Если введен имя и пароль, скрипт php проверяет есть ли такое имя в файле json, если есть то проверяет есть ли такой пароль в файле и если есть то выбить предупреждение что имя занято(не знаю как сделать так что бы проверяемый пароль относился конкретно к введенному имени). Если имя нету в файле то происходит его запись. Запись в файл каждый раз перезаписывается, вместо того что бы дописывать новые данные(имя, пароль). Подскажите пожалуйста как корректно сделать проверку и запись.

<?php
$name = $_POST['user'];
$password = $_POST['pass'];
if (isset($name) && isset($password)) {
    $file = 'users.json';
    $new_name = array('Name' => $name, 'Password' => $password);
    $new_name = json_encode($new_name, JSON_PRETTY_PRINT, FILE_APPEND);
    file_put_contents($file, $new_name );
$fileq = file_get_contents('users.json');         
$taskList = json_decode($fileq,TRUE);
//проверяем есть ли уже такое имя в файле
if (in_array($name, $taskList)) {
    echo "Name is busy";
    //если да, то не записываем
}
else{
    echo "name is empty";
    //если нет-записываем
}
}
?>

$(document).ready(function(){   
$('#submit').click(function(){ 
	var name = $('#username').val(); 
	var password = $('#password').val(); 
	$.ajax({ 
		type : 'POST', 
		url  : 'php/login_script.php', 
		data : {user:name, pass:password} 
	    });	 
    });	  
});
<script  
src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"> 
</script> 
<div  id="register"> 
	<form method="POST" id="form"> 
   		<p >Enter your name</p> 
 
		<input type="text" name="username"id="username"> 
 
		<p >Enter your pasword</p> 
 
		<input type="password" name="password" id="password"> 
		</form> 
 	</div> 
   	<input type="Submit"  id="submit">

Answer 1

Файл с пользователями users.json

{"user1":"pass1","user2":"pass2","user3":"pass3"}

Обработка

if(!isset($_POST['user'])||!isset($_POST['pass'])){
    echo "Username and password required";
    die();
}
$file = "users.json";
$users = json_decode(file_get_contents($file), true);
$name = $_POST['user'];
$password = $_POST['pass'];
if(isset($users[$name]) {
    if($users[$name] === $password){
        echo "OK";
    } else {
        echo "Wrong password"
    }
} else {
    $users[$name] = $password;
    file_put_contents($file, json_encode($users));
    echo "New user created";
}
READ ALSO
Yii2 не работает action

Yii2 не работает action

Приложение на Yii2-advanced в common есть модуль support, в файле mainphp в папке config он был подключен

374
Из за чего эти ошибки и как их исправить mod_fcgid

Из за чего эти ошибки и как их исправить mod_fcgid

Раньше сайт на CMS simpla работал на php 52, после перехода на 5

279
PHP: переменные пути в include

PHP: переменные пути в include

Получаю из БД массив $array, в котором хранятся значения:

244
Обратный вывод данных из таблици

Обратный вывод данных из таблици

Помогите сделать вывод данных из таблицы в обратном порядке, сейчас я их вывожу в прямом порядкеМожно ли сделать кнопку для удаления строки,...

272