2025. február 2., vasárnap

Adatbázis kapcsolat létrehozás és tesztelése

 Adatbázis kapcsolat létrehozása, .env fájlban tárolva az érzéskeny adatokat:

connect.php egyik lehetséges megoldása:

<?php

//telepítsük: composer require vlucas/phpdotenv ez létre hoz egy vendor mappát

//majd hozzuk létre a .env fájlt a gyökér könyvtárban

//.gitignore létrehozása .env tartalommal

/**a .env fájlt a .gitignore fájlhoz. Ez megakadályozza, hogy a .env fájl a Git verziókezelésébe kerüljön.  */

// Load Composer's autoloader

require_once __DIR__ . '/vendor/autoload.php';

 

// Load environment variables from the .env file

$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);

$dotenv->load();

 

// HTTP fejléc beállítása a megfelelő tartalomtípussal és karakterkódolással

header("Content-Type: text/html; charset=utf-8");

 

// Adatbázis kapcsolódáshoz szükséges adatok definíciója

define("DBHOST", $_ENV['DBHOST']);

define("DBUSER", $_ENV['DBUSER']);

define("DBPASS", $_ENV['DBPASS']);

define("DBNAME", $_ENV['DBNAME']);

 

// Adatbázis kapcsolat létrehozása, és az esetleges hibák kezelése

$dbconn = @mysqli_connect(DBHOST, DBUSER, DBPASS, DBNAME) or die("Hiba az adatbázis csatlakozásakor!");

 

// Karakterkódolás beállítása az adatbáziskapcsolaton keresztül

mysqli_query($dbconn, "SET NAMES utf8");


.env fájl tartalma: 

DBHOST=localhost

DBUSER=root

DBPASS=

DBNAME=gazdanaplo

connect_test.php vagyis az adatábzis kapcsolat tesztelése

<?php

// Betöltjük a tesztelendő fájlt

require_once __DIR__ . '/connect.php';

 

/**

 * Teszteli az adatbázis-kapcsolatot

 * @param mysqli $dbconn Az adatbázis-kapcsolat

 */

function testDatabaseConnection($dbconn)

{

    if ($dbconn) {

        echo "Az adatbázis-kapcsolat sikeres!<br>";

    } else {

        echo "Az adatbázis-kapcsolat sikertelen: " . mysqli_connect_error() . "<br>";

    }

}

 

/**

 * Teszteli a karakterkódolás beállítását az adatbázis-kapcsolaton

 * @param mysqli $dbconn Az adatbázis-kapcsolat

 */

function testCharacterEncoding($dbconn)

{

    $result = mysqli_query($dbconn, "SHOW VARIABLES LIKE 'character_set_connection';");

    $row = mysqli_fetch_assoc($result);

    if ($row['Value'] === 'utf8') {

        echo "A karakterkódolás UTF-8-ra van állítva.<br>";

    } else {

        echo "A karakterkódolás nem UTF-8. Jelenlegi beállítás: " . htmlspecialchars($row['Value']) . "<br>";

    }

}

 

/**

 * Teszteli, hogy a környezeti változók megfelelően betöltődtek-e

 */

function testEnvVariables()

{

    $requiredKeys = ['DBHOST', 'DBUSER', 'DBPASS', 'DBNAME'];

    $missingKeys = [];

 

    foreach ($requiredKeys as $key) {

        if (empty($_ENV[$key])) {

            $missingKeys[] = $key;

        }

    }

 

    if (empty($missingKeys)) {

        echo "Minden szükséges környezeti változó be van állítva.<br>";

    } else {

        echo "Hiányzó környezeti változók: " . implode(', ', $missingKeys) . "<br>";

    }

}

 

// Tesztek futtatása

echo "<h2>Adatbázis-kapcsolat tesztelése</h2>";

testDatabaseConnection($dbconn);

 

echo "<h2>Karakterkódolás tesztelése</h2>";

testCharacterEncoding($dbconn);

 

echo "<h2>Környezeti változók tesztelése</h2>";

testEnvVariables();

 

// Az adatbázis-kapcsolat lezárása

mysqli_close($dbconn);



Nincsenek megjegyzések:

Megjegyzés küldése

12 B gyakorló feladatsor

Nyiss egy word dokumentumot, ahová írd fel a neved, és a feladat számát, és mellette a jó megoldás betűjelét írd be, sorold fel egymás alá a...