PHP Warning: Undefined array key "status"?

Hey,

Ich habe ein Array in PHP programmiert, welches per MySQL alle Sachen selektiert.

Nun werden aber die Arrays nicht gefunden.

Code:

$stmt = $link->prepare('SELECT * FROM tickets ORDER BY created DESC');
$stmt->execute();
$resultSet = $stmt->get_result();

// pull all results as an associative array
$tickets = $resultSet->fetch_all();

<?php foreach ($tickets as $ticket): ?>
  <a href="view.php?id=<?= $ticket['id'] ?>" class="ticket">
    <span class="con">
      <?php if ($ticket['status'] == 'open'): ?>
        <i class="far fa-clock fa-2x"></i>
      <?php elseif ($ticket['status'] == 'resolved'): ?>
        <i class="fas fa-check fa-2x"></i>
      <?php elseif ($ticket['status'] == 'closed'): ?>
        <i class="fas fa-times fa-2x"></i>
      <?php endif; ?>
    </span>
    <span class="con">
      <span class="title"><?= htmlspecialchars($ticket['title'], ENT_QUOTES) ?></span>
      <span class="msg"><?= htmlspecialchars($ticket['msg'], ENT_QUOTES) ?></span>
    </span>
    <span class="con created"><? date('F dS, G:ia', strtotime($ticket['created'])) ?></span>
  </a>

Fehler:

C:\xampp\htdocs\ticket.php on line 271
" class="ticket">
Warning: Undefined array key "status" in C:\xampp\htdocs\ticket.php on line 273

Warning: Undefined array key "status" in C:\xampp\htdocs\ticket.php on line 275

Warning: Undefined array key "status" in C:\xampp\htdocs\ticket.php on line 277

Warning: Undefined array key "title" in C:\xampp\htdocs\ticket.php on line 282

Warning: Undefined array key "msg" in C:\xampp\htdocs\ticket.php on line 283

Kann mir jemand sagen, ob ich etwas übersehen habe?

Computer, Website, Programmieren, MySQL, PHP, Website programmieren
Php Hashen mit "Salz" / PASSWORD_DEFAULT?
$password = "passwort";
$hashed = password_hash($password, PASSWORD_DEFAULT);
if(password_verify($password, $hashed)){
    echo $hashed;
}

Also so würde ich jetzt den string "passwort" hashen mit etwas vollkommen zufälligem / salz und es zb auf meiner datenbank speicher, alles schön und gut.

Jetzt kommt das große aber, wenn ich die Seite von irgendwo anders aufrufe. Dann mich einloggen will wird das eingegebene wieder gehasht mit einem salz um es mit der sql datenbank abzugleichen.

Das geht aber garnicht weil dieses Salz doch immer ein anderer ist wenn ihr versteht was ich meine.

Hashes ohne salz vergleichen kriege ich schonmal ohne probleme hin.

zum beispiel so würde mein login/abgleich mit der datenbank aussehen :

if(isset($_POST["username"]) && isset($_POST["password"])){

$hash = hash("sha512", $_POST["password"]);

$mysqli1 = new mysqli($servername, $user, $pw, $db);
$result = $mysqli1->query('SELECT id FROM user WHERE username = "'. $_POST["username"]. '"  ');
$result1 = $mysqli1->query('SELECT id FROM user WHERE password = "'. $hash. '"  ');

if($result->num_rows == 1 and $result1->num_rows == 1 ) {
  echo "Login erfolreich"; 
} else {
    echo "Falsches Passwort oder Nutzername";
}
$mysqli1->close();
}

Hab jetzt mysqli benutzt weil es irgendwie übersichtlicher ist, und ob das anfällig für Sql Injections oder so ist spielt eigentlich keine rolle erstmal. Manche stört das

PC, Server, Computer, Website, Technik, Web, Programmieren, Passwort, Programmierung, Hash, Informatik, it-security, Kryptografie, Kryptographie, MySQL, PHP, Programmiersprache, Technologie, web-development, Web Developer
Wo ist das Problem mit dem PHP Code?

Das Programm sollte eigentlich die Daten in die Datenbank inserieren, jedoch kommt nur diese Fehlermeldung. Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in C:\xampp\htdocs\Website\registrieren.php:82 Stack trace: #0 C:\xampp\htdocs\Website\registrieren.php(82): PDOStatement->execute() #1 {main} thrown in C:\xampp\htdocs\Website\registrieren.php on line 82

Ich habe sehr lang auf den Code geschaut, jedoch kein Fehler gefunden.

Danke im vorraus!

Hier ist mein Code(nur der php Part, da die Frage sonst zu lange ist).

Das mit $_Esel und :Datum habe ich geändert, trotzdem funktioniert es irgendwie nicht.

      <?php 
session_start();
?>
<?php
if (!empty($_POST["submit"])){
    require("mysql.php");


    $_user = $_POST["Benutzername"];
    $_passwort = $_POST["Passwort"];
    $_email = $_POST["E-Mail"];
    $_straße = $_POST["Straße"];
    $_hausnummer = $_POST["Hausnummer"];
    $_plz = $_POST["PLZ"];
    $_ort = $_POST["Ort"];



    $stmt = $mysql->prepare("INSERT INTO accounts (USERNAME, PASSWORT, EMAIL, STRAßE, HAUSNUMMER, PLZ, ORT) VALUES (:user, :passwort, :email, :straße, :hausnummer, :plz, :ort)");
    $stmt->bindParam(":user", $_user);
    $stmt->bindParam(":passwort", $_passwort);
    $stmt->bindParam(":email", $_email);
    $stmt->bindParam(":straße", $_straße);
    $stmt->bindParam(":hausnummer", $_hausnummer);
    $stmt->bindParam(":plz", $_plz);
    $stmt->bindParam(":Datum", $_Esel);
    $stmt->execute();



}
?>
Website, HTML, Programmieren, PHP
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, Website, 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, Website, sql, HTML, Webseite, Programmieren, Datenbank, MySQL, PHP
Vertrag mit Website-Anbieter?

Ich habe einen Vertrag mit einem Website Anbieter im Dezember '21 abgeschlossen und eine Website erstellen lassen.

Die Schwierigkeiten fingen schon bei der Erstellung an. Rechtschreibfehler, doppelte Sätze, Wortverdrehungen usw.

Meine vertragliche Pflicht ist es eine monatliche Grundgebühr zu entrichten, was ich bisher mittels Lastschrift pünktlich gemacht habe. Dafür ist deren vertragliche Verpflichtung, monatliche eine "größere" Änderung umzusetzen. Die sind aber im Gegensatz zu meinen Zahlungen weder pünktlich noch reibungslos., und auch oft fehlerhaft. Kürzlich, ein halbes Jahr nach Vertragsabschluss, rief mich sogar ein Seniorchef an, und sagte mir, dass meine monatlichen Änderungswünsche (obwohl teilweise auch einfach Verbesserungen von deren Fehlern) den Rahmen sprengen würden, und schlug mir vor, zu einem teureren Tarif zu wechseln, wo ich dann unbegrenzt Änderungen vornehmen kann. Ich finde das eine Unverschämtheit, zumal ich den momentanen monatlichen Änderungen immer hinterher laufen muss und drängeln, dass die umgesetzt werden. Im April hat es sogar bis zum 20. gedauert, was eigentlich schon am 01. schon erledigt sein müsste. Ok, ein paar Tage lass ich mir noch gefallen -aber drei Wochen?

Der Vertrag läuft bis zum 09.12.22. Komme ich vorher raus? Muss ich meine Vertragspflicht erfüllen, wenn die die ihre nicht erfüllen?

Der Ausdruck "größere" Änderung ist sowieso ein Gummibegriff. Genau wie "zeitnah" oder "viele".

Internetseite, Internet, Website, Recht, Vertrag

Meistgelesene Fragen zum Thema Website