Сначала немного о вашем коде, если я могу
Я вижу, что вы импортируете Ax ios, но никогда не используете его, вместо этого используете jQuery для отправки вашего ajax запроса. Если это все, что вы используете jQuery, я настоятельно рекомендую сбросить его и придерживаться Ax ios. Замечательно в том, что он делает.
Во-вторых, когда это возможно, избегайте множественных запросов SQL, если вы можете избежать неприятностей с меньшим количеством или, что еще лучше, с одним. Эти два запроса:
$email = "SELECT * FROM signup WHERE email='$myemail' ";
$pass = "SELECT * FROM signup WHERE password='$mypassword' ";
Должны быть объединены в один:
$user_info = "SELECT * FROM signup WHERE email='$myemail' AND password='$mypassword'";
Вы также должны проверить содержимое $myemail
и $mypassword
. stripslashes()
недостаточно для предотвращения mysql инъекций. Подробнее об этом здесь .
Никогда не доверяйте вводу пользователя. Всегда проверяйте, что вы получаете то, что ожидаете, в вашем случае, что $myemail
действительно адрес электронной почты и password
действительно строка. PHP предоставляет две функции для этой цели, filter_var($myemail, FILTER_VALIDATE_EMAIL)
и is_string($mypassword)
.
Наконец, и, возможно, самый важный момент: не хранить нехэшированные пароли . PHP предоставляет password_hash($mypassword)
для хранения паролей и password_verify($mypassword)
для проверки ваших пользовательских данных в базе данных.
Теперь, чтобы ответить на ваш вопрос
Ответ заключается в вашем JS коде:
$.post("http://localhost/php-react-rest-api-crud/login_check.php", function(data) {
// ...
});
И в Ax ios и jQuery вторым параметром функции post()
должны быть ваши данные, то есть адрес электронной почты и пароль пользователя. , Но здесь вы не отправляете никаких данных, вы сразу переходите к обработке ответа на ваш запрос AJAX. Следовательно, почему PHP возвращает "0".