WARNUNG: mysqli_connect(): (HY000/3159): Verbindungen mit unsicherem Transport werden nicht zugelassen, wenn --require_secure_transport=ON
P粉237647645
P粉237647645 2023-12-20 21:54:37
0
1
604

Für ein Projekt versuche ich, eine Anwendung zu erstellen, in der Benutzer ihre Werte eingeben können, aber wenn ich sie auf localhost teste, erhalte ich immer wieder diese Fehlermeldung: Warnung: mysqli_connect(): (HY000/3159): Deaktivieren Sie die Übertragung, wenn Sie eine unsichere Verbindung verwenden Verbindung --require_secure_transport=ON. Das ist mein PHP-Code:

$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);

Gibt es eine sichere Möglichkeit, diesen Fehler zu beheben, da das Projekt veröffentlicht werden muss und es meines Wissens nicht sicher ist, secure_transport zu deaktivieren?

Ich habe versucht, eine andere externe Datenbank zu verwenden, was zu einem weiteren Fehler führte, die Verbindung wurde aktiv abgelehnt. Dieser Code funktioniert, weil ich versucht habe, ihn auf localhost auszuführen, und er funktioniert

P粉237647645
P粉237647645

Antworte allen(1)
P粉946437474

您需要调用 [mysqli_real_connect][1] 并传入 $mysqli 实例作为参数

$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');
        }

然后传递给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
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage