AMARAN: mysqli_connect(): (HY000/3159): Tidak membenarkan sambungan menggunakan pengangkutan tidak selamat apabila --require_secure_transport=ON
P粉237647645
P粉237647645 2023-12-20 21:54:37
0
1
589

Untuk projek saya cuba membuat aplikasi di mana pengguna boleh memasukkan nilai mereka, tetapi apabila saya mengujinya pada localhost saya terus mendapat ralat ini: Amaran: mysqli_connect(): (HY000/3159): Lumpuhkan penghantaran apabila menggunakan yang tidak selamat sambungan --require_secure_transport=ON. Ini kod php saya:

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

Adakah terdapat cara selamat untuk membetulkan ralat ini kerana projek itu perlu dikeluarkan dan daripada apa yang saya faham adalah tidak selamat untuk mematikan secure_transport.

Saya cuba menggunakan pangkalan data luaran lain, yang mengakibatkan ralat lain, sambungan telah ditolak secara aktif. Kod ini berfungsi kerana saya cuba menjalankannya pada localhost dan ia berfungsi

P粉237647645
P粉237647645

membalas semua(1)
P粉946437474

Anda perlu memanggil [mysqli_real_connect][1] dan masukkan instance $mysqli sebagai parameter

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

Kemudian dihantar ke 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
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan