Rumah  >  Soal Jawab  >  teks badan

AMARAN: mysqli_connect(): (HY000/3159): Tidak membenarkan sambungan menggunakan pengangkutan tidak selamat apabila --require_secure_transport=ON

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粉237647645P粉237647645327 hari yang lalu559

membalas semua(1)saya akan balas

  • P粉946437474

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

    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

    balas
    0
  • Batalbalas