AVERTISSEMENT : mysqli_connect() : (HY000/3159) : interdiction des connexions utilisant un transport non sécurisé lorsque --require_secure_transport=ON
P粉237647645
P粉237647645 2023-12-20 21:54:37
0
1
601

Pour un projet, j'essaie de créer une application dans laquelle les utilisateurs peuvent saisir leurs valeurs, mais lorsque je la teste sur localhost, j'obtiens toujours cette erreur : Attention : mysqli_connect() : (HY000/3159) : Désactiver la transmission lors de l'utilisation d'un connexion --require_secure_transport=ON. Voici mon code php :

$bedrijfsnaam = $_POST['bedrijfsnaam'];
    $dag = $_POST['dag'];
    $caption = $_POST['caption'];

    var_dump($bedrijfsnaam, 
             $dag, 
             $caption);

    $dbh = mysqli_connect(hostname: $host, 
                          username: $username, 
                          password: $password,
                          database: $dbname);

    if (mysqli_connect_errno()) {
        die("Connection error: " . mysqli_connect_errno());
    }

    $sql = "INSERT INTO file_upload (bedrijfsnaam, dag, caption)
    VALUES (?, ?, ?)"; 
    $stmt = mysqli_stmt_init($conn);

Existe-t-il un moyen sécurisé de corriger cette erreur puisque le projet doit être publié et d'après ce que j'ai compris, il n'est pas sûr de désactiver secure_transport.

J'ai essayé d'utiliser une autre base de données externe, ce qui a entraîné une autre erreur, la connexion a été activement refusée. Ce code fonctionne parce que j'ai essayé de l'exécuter sur localhost et il fonctionne

P粉237647645
P粉237647645

répondre à tous(1)
P粉946437474

Vous devez appeler [mysqli_real_connect][1] et transmettre l'instance $mysqli en paramètre

$mysqli = mysqli_init();
        if (!$mysqli) {
            die('mysqli_init failed');
        }

        $mysqli->ssl_set(
            '/path/to/client-key.pem',
            '/path/to/client-cert.pem',
            '/path/to/ca-cert.pem',
            NULL,
            NULL
        ); //any paths here will work

        if (!$mysqli->options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) {
            die('Setting MYSQLI_INIT_COMMAND failed');
        }

        if (!$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5)) {
            die('Setting MYSQLI_OPT_CONNECT_TIMEOUT failed');
        }

Puis transmis à mysqli_real_connect

$dbh = mysqli_real_connect(mysql:$mysqli, hostname: $host, 
                          username: $username, 
                          password: $password,
                          database: $dbname);


  [1]: https://www.w3schools.com/Php/func_mysqli_real_connect.asp
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal