У меня есть форма регистрации здесь, я дурак в PHP (это php для приложения для Android), она работала, но я обнаружил, что могу зарегистрироваться с тем же именем пользователя и адресом электронной почты, поэтому я добавил функции для проверки базы данных на то же имя пользователяи предотвратите это, так как я глупый, я получаю эту ошибку при попытке зарегистрироваться -
Примечание: неопределенная переменная: con в /storage/ssd1/448/5907448/public_html/Register.php в строке 27
Предупреждение: mysqli_prepare () ожидает, что параметром 1 будет mysqli, значение NULL указано в /storage/ssd1/448/5907448/public_html/Register.php в строке 27
Предупреждение: mysqli_stmt_bind_param () ожидает параметр 1быть mysqli_stmt, ноль указан в /storage/ssd1/448/5907448/public_html/Register.php в строке 28
Предупреждение: mysqli_stmt_execute () ожидает, что параметр 1 будет mysqli_stmt, ноль указан в / storage / ssd1 /448/5907448 / public_html / Register.php в строке 29 {"success": true}
Мой PHP
<?php
$response = array();
if (!isset($_POST["username"], $_POST["email"], $_POST["password"])) {
$response['success'] = false;
$response['Error'] = "No needed data";
echo json_encode($response);
exit(0);
}
ob_start();
$con = mysqli_connect("host", "username", "password", "database");
ob_end_clean();
if (!$con) {
$response['success'] = false;
$response['Error'] = "Error Connecting" . PHP_EOL;
$response['Error'] .= "Error Code: " . mysqli_connect_errno() . PHP_EOL;
$response['Error'] .= "Error: " . mysqli_connect_error() . PHP_EOL;
echo json_encode($response);
exit(0);
}
function registerUser() {
$username = $_POST["username"];
$email = $_POST["email"];
$password = $_POST["password"];
$statement = mysqli_prepare($con, "INSERT INTO user (username, email, password) VALUES (?, ?, ?)");
mysqli_stmt_bind_param($statement, "sss", $username, $email, $password);
mysqli_stmt_execute($statement);
}
function usernameAvailable() {
global $con, $username;
$statement = mysqli_prepare($con, "SELECT * FROM user WHERE username = ?");
mysqli_stmt_bind_param($statement, "s", $username);
mysqli_stmt_execute($statement);
mysqli_stmt_store_result($statement);
$count = mysqli_stmt_num_rows($statement);
mysqli_stmt_close($statement);
if ($count < 1){
return true;
}else {
return false;
}
}
$response["success"] = false;
if (usernameAvailable()){
registerUser();
$response["success"] = true;
}
echo json_encode($response);
?>
PS - данные подключения изменены по умолчанию.