В настоящее время я работаю над системой входа (которая отлично работает, используя два текстовых поля, и затем пользователь перенаправляется). Однако, поскольку я разрабатываю мобильное приложение, в JSON было бы намного проще сделать это, и я не совсем уверен, с чего начать. В основном я хочу использовать запрос https post (из моего приложения), чтобы он запрашивал: https://www.example.com/login.php?username=username&password=passwordPHP MySQL JSON Login System
Я создал базовый образец, но это не то, что я хочу сделать в отношении прохождения в параметре через URL, так как мой код только что ищет пользователей в базе данных MySQL и выводит пользователей в JSON. То, что я хочу сделать, - это указать имя пользователя & параметров пароля через URL-адрес, а затем вывести ответ «Успех» или «Ошибка» JSON, если имя пользователя/пароль находится в базе данных или нет.
<?php
$host = "localhost";
$username = "root";
$password = "password";
$db_name = "test";
$con = mysql_connect("$host", "$username", "$password") or die("cannot connect");
mysql_select_db("$db_name") or die("cannot select DB");
$sql = "select * from test_table";
$result = mysql_query($sql);
$json = array();
if (mysql_num_rows($result))
{
while ($row = mysql_fetch_row($result))
{
$json['items'] = $row;
}
}
mysql_close($db_name);
echo json_encode($json, JSON_PRETTY_PRINT);
?>
Редактировать
Я теперь начал работать в другой системе, которая в значительной степени то, что я ищу, чтобы сделать (после того, как я нашел пример здесь: http://www.dreamincode.net/forums/topic/235556-how-to-create-a-php-login-with-data-from-mysql-database/), за исключением каждый раз, когда я заказываю что-то как https://www.example.com/login.php?username=root&password=password - я получаю JSON ошибки 1 код
<?php
$host = "localhost"; // Host name
$db_username = "root"; // Mysql username
$db_password = "password"; // Mysql password
$db_name = "test"; // Database name
$tbl_name = "test_table"; // Table name
// Connect to server
mysql_connect("$host", "$db_username", "$db_password") or die("cannot connect");
// Select the database
mysql_select_db("$db_name") or die("cannot select DB");
// Get the login credentials from user
$username = $_POST['username'];
$userpassword = $_POST['password'];
// Secure the credentials
$username = mysql_real_escape_string($_POST['username']);
$userpassword = mysql_real_escape_string($_POST['password']);
// Check the users input against the DB.
$query = "SELECT * FROM test_table WHERE user = '$username' AND password = '$userpassword'";
$result = mysql_query($query) or die("Unable to verify user because " . mysql_error());
$row = mysql_fetch_assoc($result);
if ($row['total'] == 1) {
// success
$response["success"] = 1;
// echoing JSON response
echo json_encode($response);
}
else {
// username and password not found
// failed
$response["failed"] = 1;
// echoing JSON response
echo json_encode($response);
}
?>
Обратите внимание, что для POST HTTP, один, как правило, используйте параметры формы, а не параметры строки запроса. – J0e3gan
@maytham Теперь я изменил свой исходный код для улучшения функциональности и безопасности, но в настоящее время получаю ошибку –
@maytham вот форма: http://codeshare.io/ETRcX & вот приведенный выше код для генерации ответа JSON: http://codeshare.io/SERMM - то, что я, по сути, хочу сделать, - это как-то безопасно передать имя пользователя и пароль (как параметры) в URL> сделать проверку MySQL, чтобы узнать, находится ли имя пользователя/пароль в базе данных> если оно находится в db то строка «успех» JSON должна быть эхом, а если она не находится в db, то строка «failed» JSON должна быть эхом. –