У меня есть повторяющаяся проблема в приложении для Android.PHP 500 Внутренний сервер Ошибка при вызове Volley
В основном я использую PHP и базу данных MYSQL для регистрации и входа пользователей в мое приложение.
Регистрация работает нормально. Я могу подключиться к базе данных и вставить нового пользователя в таблицу без каких-либо проблем.
Проблема, с которой я столкнулся, - это войти в приложение. Всякий раз, когда я называю URL входа, я получаю следующее сообщение об ошибке:
BasicNetwork.performRequest: Unexpected response code 500 for URL.
Я попытался с помощью других инструментов, открыть URL и размещая параметры вручную, чтобы устранить проблему, что ошибка может быть исходя из моего приложения кода. На самом деле я получил Generic 500 Internal Server Error
. Протестировал URL-адрес регистра с помощью этого инструмента, и он отлично работал.
Мои классы PHP все называют один и тот же скрипт для получения сведений о соединении, поэтому с этим не возникает никаких проблем либо с момента регистрации.
Вот мой код ниже:
Войти Класс:
<?php
require_once 'UserFunctions.php';
$db = new UserFunctions();
$response = array("error" => FALSE);
if (isset($_POST['email']) && isset($_POST['password'])) {
$email = $_POST['email'];
$password = $_POST['password'];
$user = $db->getUserByEmailAndPassword($email, $password);
$count = $db->getUserCount();
if ($user != false) {
$response["error"] = FALSE;
$response["uid"] = $user["unique_id"];
$response["user"]["name"] = $user["name"];
$response["user"]["email"] = $user["email"];
echo json_encode($response);
} else {
$response["error"] = TRUE;
$response["error_msg"] = "Login credentials are wrong. Please try again!";
echo json_encode($response);
}
} else {
$response["error"] = TRUE;
$response["error_msg"] = "One of the required parameters is missing!";
echo json_encode($response);
}
?>
UserFunctions класс:
<?php
class UserFunctions {
private $conn;
function __construct() {
require_once 'include/DbConnect.php';
$db = new DbConnect();
$this->conn = $db->connect();
}
function __destruct() {
}
public function storeUser($name, $email, $password) {
$uuid = uniqid('', true);
$hash = $this->hashSSHA($password);
$password = $hash["encrypted"];
$salt = $hash["salt"];
$stmt = $this->conn->prepare("INSERT INTO users(unique_id, UserName, UserEmail, UserPassword, salt) VALUES(?, ?, ?, ?, ?)");
$stmt->bind_param("sssss", $uuid, $name, $email, $password, $salt);
$result = $stmt->execute();
$stmt->close();
if ($result) {
$stmt = $this->conn->prepare("SELECT * FROM users WHERE UserEmail = ?");
$stmt->bind_param("s", $email);
$stmt->execute();
$user = $stmt->get_result()->fetch_assoc();
$stmt->close();
return $user;
} else {
return false;
}
}
public function getUserByEmailAndPassword($email, $password) {
$stmt = $this->conn->prepare("SELECT * FROM users WHERE UserEmail = ?");
$stmt->bind_param("s", $email);
if ($stmt->execute()) {
$user = $stmt->get_result()->fetch_assoc();
$stmt->close();
return $user;
} else {
return NULL;
}
}
public function isUserExisted($email) {
$stmt = $this->conn->prepare("SELECT UserEmail FROM users WHERE UserEmail = ?");
$stmt->bind_param("s", $email);
$stmt->execute();
$stmt->store_result();
if ($stmt->num_rows > 0) {
$stmt->close();
return true;
} else {
$stmt->close();
return false;
}
}
public function hashSSHA($password) {
$salt = sha1(rand());
$salt = substr($salt, 0, 10);
$encrypted = base64_encode(sha1($password . $salt, true) . $salt);
$hash = array("salt" => $salt, "encrypted" => $encrypted);
return $hash;
}
public function checkhashSSHA($salt, $password) {
$hash = base64_encode(sha1($password . $salt, true) . $salt);
return $hash;
}
}
?>
500 означает внутреннюю ошибку сервера. Проверьте конфигурацию вашего сервера. –
Внутренняя ошибка сервера также означает «Некоторая ошибка или предупреждение в ваших кодах». У U проверили ваши запросы правильно или файл подключения «require_once» include/DbConnect.php '; «нет ошибки? –
@riazhasan - В сервере нет ничего плохого. Если бы это было так, то функция регистрации определенно не сработала. Прежде чем комментировать, прочитайте весь вопрос. –