警告:mysqli_connect():(HY000/3159):當 --require_secure_transport=ON 時,禁止使用不安全傳輸的連接
P粉237647645
P粉237647645 2023-12-20 21:54:37
0
1
599

對於一個項目,我正在嘗試製作一個應用程序,其中用戶可以輸入他們的值,但是當我在本地主機上測試它時,我不斷收到此錯誤:警告:mysqli_connect():(HY000/ 3159):使用不安全的連線--require_secure_transport=ON 時禁止傳輸。這是我的 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);

是否有一種安全的方法來修復此錯誤,因為該專案必鬚髮布,據我了解,關閉 secure_transport 是不安全的。

我嘗試使用另一個外部資料庫,這導致另一個錯誤,連線被主動拒絕。該程式碼確實有效,因為我嘗試在本地主機上運行它並且它確實有效

P粉237647645
P粉237647645

全部回覆(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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板