База данных не соединяется с php - PullRequest
0 голосов
/ 19 февраля 2019

Я пытаюсь сделать систему регистрации с php и mysql.Я пытаюсь подключить базу данных к системе и получаю ошибки, которых я не понимаю.

Я не уверен на 100%, что в stackoverflow добавлено мое изображение, поэтому я опишу его как лучшийЯ могу.Сообщение об ошибке: Предупреждение: mysqli_connect (): сервер запросил неизвестный клиенту метод аутентификации [caching_sha2_password] в C: \ wamp \ www \ registration \ server.php в строке 5

Я относительноплохо знакомый с php и моим sql, таким образом, любой совет был бы большим.

1 Ответ

0 голосов
/ 19 февраля 2019

Например:

generatesalt.php (необязательно, для безопасности)

function generateSalt()
    {
        $salt = '';
        $saltLength = 8;
        for($i=0; $i<$saltLength; $i++) {
            $salt .= chr(mt_rand(33,126)); //character from ASCII-table
        }
        return $salt;
    }

db.php

$dbname = 'test';
$localhost = 'localhost';
$login = 'root';
$pass = '';

$link = @mysqli_connect($localhost, $login, $pass, $dbname);

if (!$link) {
    echo "Problem, error code: " . mysqli_connect_errno();
    exit;
}

reg.php (Этот пример неочень безопасно. Я советую вам использовать PDO. Это простой пример для понимания.)

require_once 'db.php';
require_once 'generateSalt.php';

if ( !empty($_POST['login']) and !empty($_POST['password']) and !empty($_POST['password_confirm']) ) {
        $login = $_POST['login'];
        $password = $_POST['password'];
        $password_confirm = $_POST['password_confirm']; 


if ($password == $password_confirm) {

    $query = 'SELECT*FROM user WHERE login="'.$login.'"';
            $is_login_free = mysqli_query($link, $query);
            $login_free = mysqli_fetch_assoc($is_login_free);

    if (empty( $login_free)) {

        $salt = generateSalt();
        $saltedpassword = md5($password.$salt);  

        $query = "INSERT INTO `user` (`login`, `password`, `salt`) VALUES ('$login', '$saltedpassword', '$salt')";
        $result = mysqli_query($link, $query);

        echo 'You have successfully registered';
        echo '<br>';
        echo 'Sign in: <a href="/login.php">Click</a>';
        echo '<br>';
        echo 'Home: <a href="/">Click</a>';
    } else {
        echo 'The login is busy';
    }

} else {
    echo 'Passwords do not match';
}
} else {
    header("Location: /");
    exit();
}

Форма

<h1>Sign up</h1>
<form action="/reg.php" method="post">
    <input type="text" name="login" required><br>
    <input type="password" name="password" required><br>
    <input type="password" name="password_confirm" required><br><br>
    <input type="submit" value="Create an account">
</form>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...