Heim  >  Fragen und Antworten  >  Hauptteil

WARNUNG: mysqli_connect(): (HY000/3159): Verbindungen mit unsicherem Transport werden nicht zugelassen, wenn --require_secure_transport=ON

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粉237647645P粉237647645278 Tage vor504

Antworte allen(1)Ich werde antworten

  • P粉946437474

    P粉9464374742023-12-21 17:42:37

    您需要调用 [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

    Antwort
    0
  • StornierenAntwort