PHP Error durch require()?

Hi, ich raff grad gar nix mehr, ich hab eine PHP Klasse dbConnection, in der ich mit require ein php File (settings.php) einbinde. Das einbinden funktioniert auch, nur binde ich innerhalb von settings.php ein weiteres php File ein, functions.php. Das wiederrum funktioniert nicht. Ich weiß, meine Erklärung ist bissle kompliziert, daher hier der Code:

dbConnection.php

<?php

try {
    require dirname($_SERVER["DOCUMENT_ROOT"]) . "/php/settings/settings.php";
} catch (Throwable|mysqli_sql_exception $exception) {
    error_log(date("d.m.Y, H:m:s") . " | " . $exception . "\n\n", 3, "/hp/cz/aa/gf/www/domains/domain.com/php/logs/php-errors.log");
    header("location: /error/?error=500");
    exit();
}

class dbConnection
{
...
}

settings.php

<?php

try {
    date_default_timezone_set("Europe/Berlin");
    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
    require dirname($_SERVER["DOCUMENT_ROOT"]) . "/php/functions/functions.php";
} catch (Throwable|mysqli_sql_exception $exception) {
    error_log(date("d.m.Y, H:m:s") . " | " . $exception . "\n\n", 3, "/hp/cz/aa/gf/www/domains/domain.com/php/logs/php-errors.log");
    header("location: /error/?error=500");
    exit();
}

hier die relevanten Pfade:

domain.com/php/classes/dbConnection.php

domain.com/php/settings/settings.php

domain.com/php/functions/functions.php

Der Fehler muss an der in settings.php Datei liegen, da ich schon einmal vor und nach dem require in settings.php ein die("hier"); gemacht habe und dabei als das die("hier"); VOR dem

require dirname($_SERVER["DOCUMENT_ROOT"]) . "/php/functions/functions.php";

"hier" ausgegeben hat, und NACH dem

require dirname($_SERVER["DOCUMENT_ROOT"]) . "/php/functions/functions.php";

mir angezeigt wurde, dass diese Seite nicht funktionieren würde. Komisch ist auch, dass der Fehler nicht aufgefangen wird, daher bin ich gerade etwas ratlos. Hoffe meine Frage ist verständlich, ansonsten gerne einfach nachfragen :)

Computer, Internet, HTML, Webseite, programmieren, MySQL, PHP
Verbindung zur Datenbank checken - PHP?

Hi, ich hab folgende Funktion in einer Klasse dbConenction:

private mixed $connection;

public function __construct()
{
    return $this->connect();
}

private function connect()
{
    try {
        $host = "localhost";
        $username = "USER_NAME";
        $pwd = "PWD";
        $database = "DB_NAME";
        $this->connection = new mysqli($host, $username, $pwd, $database);

        if ($this->connection->connect_error) {
            throw new Exception("Connection to database failed. | " . $this->connection->connect_error);
        }
        return $this->connection;
    } catch (Exception $exception) {
        $this->connection = null;
        databaseErrorHandling($exception);
        return null;
    }
}

Die Verbindung zur Datenbank funktioniert auch, ich kann Queries ausführen. Doch mein Problem, wenn ich zum Beispiel den Username für die Datenbank ändere, soll eigentlich durch

if ($this->connection->connect_error)

eine Exception geworfen werden, weil die Verbindung ja nicht aufgebaut werden kann, da der Username falsch ist. Das Gleiche funktioniert auch nicht, wenn ich zum Beispiel das Passwort ändere. Hab in den Docs von PHP nachgelesen und dort haben die das genauso gemacht...

$servername = "localhost";
$username = "username";
$password = "password";

// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}

Jemand eine Idee, warum das nicht funktioniert, so wie es funktionieren sollte :D, oder Verbesserungsvorschläge?

Danke für jede Hilfe!!!

Computer, SQL, HTML, Webseite, programmieren, Datenbank, MySQL, PHP
Warum ist $_POST hier leer?

Hi, arbeite gerade an nem Kontaktformular, welches mit JQuery und Ajax gesendet werden soll. Hier der Code:

let form = $(this);
let actionUrl = "assets/php/contact.php";

$.ajax({
    type: "POST",
    url: actionUrl,
    contentType: "application/json",
    data: form.serialize(),
    success: function (backendError) {
        console.log(backendError);
        errorHandler(backendError);
    },
    error: function () {
        console.log("failure");
        alert("Internal Error occured. Please try again later");
    }
});

hier der PHP Code zum senden:

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    try {
        $errors = array();
        $name = "";
        $email = "";
        $human = "";
        $message = "";

        if (empty($_POST["name"])) {
            $errors[] = "name";
        } else {
            $name = $_POST["name"];
        }

        if (empty($_POST["email"])) {
            $errors[] = "email";
        } else {
            $email = $_POST["email"];
        }

        if (empty($_POST["human"])) {
            $errors[] = "human";
        }

        if (empty($_POST["message"])) {
            $errors[] = "message";
        } else {
            $message = $_POST["message"];
        }

        if (count($errors) === 0) {
            $to = "my@email.de";
            $subject = "Kontaktformular - " . $name;
            $message = "";
            $additional_headers = array(
                "From" => $email,
                "Reply-To" => $email,
                "X-Mailer" => phpversion()
            );

            mail($to, $subject, $message, $additional_headers);
            $response["error"] = false;
            echo json_encode($response);
            exit;
        } else {
            $response["error"] = $errors;
            echo json_encode($response);
            exit;
        }
    } catch (Exception $exception) {
        // in Log File Time + Error + IP
        exit;
    }
}

mein Problem: das POST Array is leer. Habs mir mal ganz oben ausgeben lassen, und stand nix drin, obwohl jquery die inputfelder per POST an das PHP File sendet. Ich denke, dass ich irgendwas bei der $ajax methode falsch gemacht habe, und es deshalb net funktioniert. bin am verzweifeln :) danke für jede Hilfe!

Computer, HTML, Webseite, programmieren, JavaScript, AJAX, JQuery, PHP
PHP User verifizieren?

Hi, ich bin grad dabei ne Website für ein kleines Startup zu programmieren und hänge grad am Login System. Ich hab dabei kein wirkliches Problem sondern eher ne allgemeine Frage:

Wie kann man sicher und sinnvoll einen User verifizieren

Momentan mache ich das so:
Ein User registriert sich, woraufhin in der Datenbank für diesen User ein einzigartiger "Verifizierungscode" generiert wird. Dieser wird dann, wenn er sich einloggt, auf dem PC des Users per Cookie gespeichert. Wenn der User jetzt auf sein Dashboard zugreifen will, wird einfach, wenn vorhanden, der Inhalt des Cookies mit allen Verifizierungscodes in der Datenbank abgeglichen und bei der Zeile, in der die Codes übereinstimmen, wird daraus dann der User geladen. Hoffe das ist verständlich, ansonsten einfach nachfragen.

Den Inhalt des Cookies kann man auch nicht durch irgendwelches rumprobieren herausfinden, da ich diesen mit password_hash() gehashed habe.

Mein Problem jetzt: Ich habe mir einige Docs und Sicherheitsberichte durchgelesen in denen häufig gesagt wird, man solle den User nicht nur anhand eines Cookies automatisch einloggen. Nur leider wird nirgends erwähnt, was man sonst noch so machen könnte, da die Gefahr, dass der Cookie geklaut wird oder ähnliches ja schon besteht. (Cookie Hijacking).

Hat jemand ne sinnvolle Antwort auf mein Problem oder andere Lösungsvorschläge?

Computer, Internet, HTML, Webseite, JavaScript, Cookies, Datenbank, MySQL, PHP
Warum kommt da dieser Fehler?

Hi, ich habe bereits eine Frage zu dem Thema gestellt, und möchte bei dieser hier nur mehr ins Detail gehen. Ich bin gerade dabei ein Discord Login auf einer Seite zu implementieren. Dabei kommt aber die ganze Zeit ein Fehler und ich weiß nicht, wie ich diesen beheben kann... Die Konsole sagt, dass dieser Fehler in Zeile 49 ist, und in dieser Zeile befindet sich folgendes:

fetch('https://discord.com/api/oauth2/token', {
        method: "POST", body: data_1
    })
        .then(response => response.json())
        .then(data => { // Make a request to the Discord API with the form data, convert the response to JSON, then take it and run the following code.
            axios.get("https://discord.com/api/users/@me", make_config(data.access_token)).then(response => { // Make a request yet again to the Discord API with the token from previously.
                res.status(200).send(response.data.username); // Send the username with a status code 200.
            }).catch(err => { // Handle any errors in the request (such as 401 errors).
                console.log(err); // Log the error in the console
                res.sendStatus(500); // Send a 500 error.
            });
        });

Fehleranzeige in der Konsole:

TypeError: fetch is not a function
    at C:\Users\Dominik\Documents\Development\Websites\Norvex\ucp.norvex.eu\oauth.js:49:5
    at Layer.handle [as handle_request] (C:\Users\Dominik\Documents\Development\Websites\Norvex\ucp.norvex.eu\node_modules\express\lib\router\layer.js:95:5)
    at next (C:\Users\Dominik\Documents\Development\Websites\Norvex\ucp.norvex.eu\node_modules\express\lib\router\route.js:137:13)
    at Route.dispatch (C:\Users\Dominik\Documents\Development\Websites\Norvex\ucp.norvex.eu\node_modules\express\lib\router\route.js:112:3)
    at Layer.handle [as handle_request] (C:\Users\Dominik\Documents\Development\Websites\Norvex\ucp.norvex.eu\node_modules\express\lib\router\layer.js:95:5)
    at C:\Users\Dominik\Documents\Development\Websites\Norvex\ucp.norvex.eu\node_modules\express\lib\router\index.js:281:22
    at Function.process_params (C:\Users\Dominik\Documents\Development\Websites\Norvex\ucp.norvex.eu\node_modules\express\lib\router\index.js:335:12)
    at next (C:\Users\Dominik\Documents\Development\Websites\Norvex\ucp.norvex.eu\node_modules\express\lib\router\index.js:275:10)
    at C:\Users\Dominik\Documents\Development\Websites\Norvex\ucp.norvex.eu\node_modules\body-parser\lib\read.js:130:5
    at invokeCallback (C:\Users\Dominik\Documents\Development\Websites\Norvex\ucp.norvex.eu\node_modules\raw-body\index.js:224:16)

Wie man aus dem Fehler erkennen kann, bemengelt die Konsole, dass "fetch" keine Funktion ist. Ich habe aber den Syntax von fetch gegoogelt und es nochmal überprüft aber keinen Fehler gefunden. Vielleicht sieht einer von euch einen Fehler im Code.

Ganzer Code:

https://jsfiddle.net/Atrapfare/zLedj3pf/

Danke für jede Antwort!

HTML, Webseite, JavaScript, node.js, Discord, npm