PhpMyAdmin – die besten Beiträge

Fehler bei password verify php?

Ich habe ein Testprogramm geschrieben, in dem man ein Passwort eingibt, dass dann gehasht in einer Datenbank gespeichert wird. Wenn ich mit dem Passwort vergleiche kommt aber nicht true sondern false raus. Das ganze habe ich in WebFTP gemacht.

Als Ausgabe bekomme ich:

123456789 $2y$10$4TMgUO3xGJMCy5iZnd6Be.TBRkIO2Z55GGwgQ5oeToD.ryJZAvvte Richtig In Datenbank übertragen $2y$10$4TMgUO3xGJMCy5iZnd6Be.TBRkIO2Z55GGwgQ5oeToD.ryJZAvvte Falsch Richtig übertragen

Bedeutet das gehashte Passwort wurde richtig gespeichert, aber passwort verify hat beim zweiten mal false zurück gegeben.

Hier ist der php Teil dazu:

<?php
if (isset($_POST["start"])) {
    $password = $_POST["password"];
    $email = $_POST["email"];
    echo $password . " ";
    $passwordHash = password_hash($password, PASSWORD_DEFAULT);
    echo $passwordHash . " ";
    if (password_verify($password, $passwordHash)){
        echo "Richtig ";
    }else{
        echo "Falsch ";
    }
    require_once "data.php"; //Hier wird die Datenbankverbindung gespeichert
    $statement = $pdo->prepare("INSERT INTO tab (email, password) VALUES (?, ?)");
    $statement->execute(array($email, $passwordHash));
    if ($statement){
        echo "In Datenbank übertragen ";
        $sql = "SELECT * FROM tab WHERE email='$email'";
        $user = $pdo->query($sql)->fetch();
        $passwordTest = $user["password"];
        echo $passwordTest . " ";
        if (password_verify($password, $passwordTest)){
            echo "Richtig ";
        }else{
            echo "Falsch ";
            if ($passwordHash == $passwordTest){
                echo "Richtig übertragen ";
            }else{
                echo "Falsch übertragen ";
            }
        }
        die();
    }else{
        die("Es ist etwas schief gelaufen");
    }
}
?>
SQL, HTML, Webseite, CSS, JavaScript, HTML5, Code, Datenbank, MySQL, PHP, Programmiersprache, Webdesign, Webentwicklung, phpMyAdmin

Root-Server - Keine Verbindung mehr (PhpMyAdmin, MYSQL)?

Server, Computer, Technik, Minecraft, MySQL, PHP, Root Server, Technologie, Webspace, phpMyAdmin, Spiele und Gaming

PHP: Wie kann ich die Videoladezeit verbessern?

Hallo,

ich habe folgendes Problem:

Ich habe diese PHP-Datei erstellt und bei mir auf meinem iPhone lädt es die Videodatei sehr langsam bis gar nicht. Wenn ich aber auf PC im gleichen Netflix schaue, lädt es sehr schnell.

Ich habe es bei anderen Freunden testen lassen, die auch ein iPhone haben. Bei der einen Person lädt es auch sehr schnell, bei der anderen auch nicht, so wie bei mir. Bei mir lädt es immer nur schnell, wenn ich mobile Daten anhabe.

Die Videodateien sind 2-7 GB groß.

Vielleicht kann jemand eine Lösung für mich finden, das zu beheben. Wichtig ist, dass ich die Größe der Videodateien nicht verkleinern kann. Das heißt, es muss trotzdem schnell die Videodatei laden.

Ich sage schon einmal danke an die Person, die sich die Zeit und Mühe nimmt, mir zu helfen.

Bei einer Verbindung mit dem normalen Heimnetz sieht es auf dem iPhone so aus:

Wenn ich über LTE (mobile Daten) lade:

Der PHP-Code:

<?php 
  require 'db.php'; // Die Datenbankverbindung einbinden
  require 'is_premium.php'; // Die Datenbankverbindung einbinden

  // Überprüfen, ob eine ID übergeben wurde
  if (!isset($_GET['id']) || !is_numeric($_GET['id'])) {
    die('Ungültige Film-ID.');
  }

  $movie_id = intval($_GET['id']);
  // Film aus der Datenbank abfragen
  $stmt = $db->prepare('SELECT * FROM movies WHERE id = ?');
  $stmt->bind_param('i', $movie_id);
  $stmt->execute();
  $result = $stmt->get_result();

  if ($result->num_rows === 0) {
    die('Film nicht gefunden.');
  }

  $movie = $result->fetch_assoc();
  $stmt->close();
  $db->close();

  // Erkennen, ob die URL ein lokales Video ist oder über HTTPS geladen werden soll
  $is_local_video = strpos($movie['video'], 'uploads/videos/') === 0;
  $is_https = strpos($movie['video'], 'https://') === 0;
  $thumbnail = htmlspecialchars($movie['thumbnail']); // Thumbnail aus der Datenbank
?>
<!DOCTYPE html>
<html lang="de">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title><?php echo htmlspecialchars($movie['name']); ?> - MovieVel</title>
  <style>
   #css code
  </style>
</head>
<body>
  <div class="container">
    <div class="movie-detail">
      <h1><?php echo htmlspecialchars($movie['name']); ?></h1>
      <!-- Movie Video -->
      <div class="<?php echo $is_local_video ? 'video-container' : 'iframe-container'; ?>">
        <div class="play-btn">
          &#9654; <!-- Play-Symbol -->
        </div>
        <?php if ($is_local_video): ?>
          <!-- Video für progressive Web-Optimierung mit Bild-in-Bild-Unterstützung -->
          <video id="video-player" controls autoplay preload="auto" poster="<?php echo $thumbnail; ?>"
              onclick="this.requestPictureInPicture()" muted playsinline>
            <source src="<?php echo htmlspecialchars($movie['video']); ?>" type="video/mp4">
            Ihr Browser unterstützt dieses Videoformat nicht.
          </video>
        <?php elseif ($is_https): ?>
          <iframe 
            src="<?php echo htmlspecialchars($movie['video']); ?>" 
            allowfullscreen>
          </iframe>
        <?php else: ?>
          <p>Video konnte nicht geladen werden. Überprüfen Sie die URL oder die Serverkonfiguration.</p>
        <?php endif; ?>
      </div>
      <!-- Movie Description -->
      <div class="description-box">
        <h2>Über den Film</h2>
        <p><?php echo htmlspecialchars($movie['description']); ?></p>
      </div>
      <!-- Back Button -->
      <a href="index.php" class="back-btn">Zurück zur Übersicht</a>
    </div>
  </div>
  <script>
    const video = document.getElementById('video-player');
     
    // Überprüfen, ob Picture-in-Picture unterstützt wird
    if ('pictureInPictureEnabled' in document) {
      video.addEventListener('click', async () => {
        try {
          // Versuchen, Bild-in-Bild zu aktivieren
          if (document.pictureInPictureElement !== video) {
            await video.requestPictureInPicture();
          } else {
            // Wenn das Video schon im Bild-in-Bild-Modus ist, es wieder schließen
            await document.exitPictureInPicture();
          }
        } catch (err) {
          console.error('Fehler beim Wechseln in den Bild-in-Bild-Modus:', err);
        }
      });
    }
  </script>
</body>
</html>
Bild zum Beitrag
Homepage, SQL, HTML, Webseite, CSS, JavaScript, HTML5, Code, Datenbank, MySQL, PHP, Webdesign, Webentwicklung, phpMyAdmin

Alle Tabellen bei phpMyAdmin anzeigen?

Hallo, geht es vielleicht einfacher? Mit weniger Code?

<?php
  $servername = "localhost";
  $username = "root";
  $password = "";

  // Funktion um Verbindung zu prüfen und eine Nachricht auszugeben
  function checkConnection($conn) {
    if ($conn->connect_error) {
      die("Connection failed: " . $conn->connect_error);
    }
  }

  // Verbindung herstellen
  $conn = new mysqli($servername, $username, $password);
  checkConnection($conn);

  // Alle Datenbanken abrufen
  $sql = "SHOW DATABASES";
  $result = $conn->query($sql);
  echo "<h1>Datenbanken</h1>";

  if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
      $dbname = $row['Database'];
      echo "<a href='?database=$dbname'>$dbname</a><br>";
    }
  }
  else {
    echo "Keine Datenbanken gefunden.";
  }

  $conn->close();

  // Tabellen in der gewählten Datenbank anzeigen
  if (isset($_GET['database'])) {
    $dbname = $_GET['database'];
    $conn = new mysqli($servername, $username, $password, $dbname);
    checkConnection($conn);
    $sql = "SHOW TABLES";
    $result = $conn->query($sql);
    echo "<h1>Tabellen in $dbname</h1>";

    if ($result->num_rows > 0) {
      while ($row = $result->fetch_assoc()) {
        $tablename = $row["Tables_in_$dbname"];
        echo "<a href='?database=$dbname&table=$tablename'>$tablename</a><br>";
      }
    }
    else {
      echo "Keine Tabellen gefunden.";
    }

    $conn->close();
  }

  // Einträge in der gewählten Tabelle anzeigen und Eingabefelder generieren
  if (isset($_GET['database']) && isset($_GET['table'])) {
    $dbname = $_GET['database'];
    $tablename = $_GET['table'];
    $conn = new mysqli($servername, $username, $password, $dbname);
    checkConnection($conn);
    $sql = "SELECT * FROM $tablename";
    $result = $conn->query($sql);
    echo "<h1>Einträge in $tablename bearbeiten</h1>";

    if ($result->num_rows > 0) {
      echo "<form method='POST' action='save_changes.php'>";
      echo "<table border='1'><tr>";

      // Spaltenüberschriften
      $fieldinfo = $result->fetch_fields();

      foreach ($fieldinfo as $val) {
        echo "<th>{$val->name}</th>";
      }

      echo "</tr>";

      // Daten
      while ($row = $result->fetch_assoc()) {
        echo "<tr>";

        foreach ($row as $key => $data) {
          echo "<td><input type='text' name='{$key}[]' value='$data'></td>";
        }

        echo "</tr>";
      }

      // Leeres Eingabefeld für neue Einträge hinzufügen
      echo "<tr>";

      foreach ($fieldinfo as $val) {
        echo "<td><input type='text' name='{$val->name}[]' value=''></td>";
      }

      echo "</tr>";
      echo "</table>";
      echo "<input type='hidden' name='database' value='$dbname'>";
      echo "<input type='hidden' name='table' value='$tablename'>";
      echo "<input type='submit' value='Änderungen speichern'>";
      echo "</form>";
    }
    else {
      echo "Keine Einträge gefunden.";

      // Leere Tabelle mit Eingabefeldern für neuen Eintrag anzeigen
      echo "<form method='POST' action='save_changes.php'>";
      echo "<table border='1'><tr>";

      foreach ($fieldinfo as $val) {
        echo "<th>{$val->name}</th>";
      }

      echo "</tr><tr>";

      foreach ($fieldinfo as $val) {
        echo "<td><input type='text' name='{$val->name}[]' value=''></td>";
      }

      echo "</tr></table>";
      echo "<input type='hidden' name='database' value='$dbname'>";
      echo "<input type='hidden' name='table' value='$tablename'>";
      echo "<input type='submit' value='Änderungen speichern'>";
      echo "</form>";
    }

    $conn->close();
  }
?>
Datenbank, MySQL, PHP, phpMyAdmin

Sort/Tabellen/QR-Code altmodisch gelöst? Verbesserungsvorschläge?

Mehrere Formularfunktionen in PHP:

Sort:

  $sort_by = "kunden_id";
  $order = "ASC";

  if (isset($_GET['sort'])) {
    // Überprüfen, ob die Sortierparameter gültig sind
    if ($_GET['sort'] == 'kunden_id' || $_GET['sort'] == 'vname' || $_GET['sort'] == 'nname' || $_GET['sort'] == 'age') {
      $sort_by = $_GET['sort'];
      $order = ($_GET['order'] == 'asc') ? 'ASC' : 'DESC';
    }
  }

  $sql = "SELECT kunden_id, vname, nname, age FROM kunden ORDER BY $sort_by $order";
  $result = $conn->query($sql);

  if ($result->num_rows > 0) {
    echo "<table border='1'>
      <tr>
        <th><a href='?sort=kunden_id&order=". ($sort_by == 'kunden_id' && $order == 'ASC' ? 'desc' : 'asc') ."'>Kunden ID</a></th>
        <th><a href='?sort=vname&order=". ($sort_by == 'vname' && $order == 'ASC' ? 'desc' : 'asc') ."'>Vorname</a></th>
        <th><a href='?sort=nname&order=". ($sort_by == 'nname' && $order == 'ASC' ? 'desc' : 'asc') ."'>Nachname</a></th>
        <th><a href='?sort=age&order=". ($sort_by == 'age' && $order == 'ASC' ? 'desc' : 'asc') ."'>Alter</a></th>
      </tr>";

    while($row = $result->fetch_assoc()) {
      echo "<tr>
        <td>" . $row["kunden_id"]. "</td>
        <td>" . $row["vname"]. " </td>
        <td>" . $row["nname"]. "</td>
        <td>" . $row["age"]. "</td>
      </tr>";
    }

    echo "</table>";
  }
  else {
    echo "0 Ergebnisse";
  }

  $conn->close();
?>

Tabellen anzeigen lassen:

<?php
  $servername = "localhost";
  $username = "root";
  $password = "";
  $dbname = "lap";

  // Create connection
  $conn = new mysqli($servername, $username, $password, $dbname);
  // Check connection
  if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
  }

  $sql = "SELECT kunden_id, vname, nname, age FROM kunden Order by kunden_id";
  $result = $conn->query($sql);

  if ($result->num_rows > 0) {
    echo "<table border='1'>
      <tr>
        <th>Kunden ID</th>
        <th>Vorname</th>
        <th>Nachname</th>
        <th>Alter</th>
      </tr>";

    // output data of each row
    while($row = $result->fetch_assoc()) {
      echo "<tr>
        <td>" . $row["kunden_id"]. "</td>
        <td>" . $row["vname"]. " </td>
        <td>" . $row["nname"]. "</td>
        <td>" . $row["age"]. "</td>
      </tr>";
    }

    echo "</table>";
  }
  else {
    echo "0 results";
  }

  $conn->close();
?>

QR-Code:

<!DOCTYPE html>
<html lang="de">
<head>
  <meta charset="UTF-8">
  <title>QR-Code Generator</title>
  <script src="https://cdn.jsdelivr.net/npm/qr-code-styling@1.5.0/lib/qr-code-styling.js"></script>
  <style>
    body {
      font-family: Arial, sans-serif;
      display: flex;
      flex-direction: column;
      align-items: center;
      margin-top: 50px;
    }

    #qrcode {
      margin-top: 20px;
    }
    button {
      margin-top: 10px;
    }
  </style>
</head>
<body>
  <h1>QR-Code Generator</h1>
  <form id="qrForm">
    <label for="url">Gib eine URL ein:</label>
    <input type="text" id="url" name="url" required>
    <button type="submit">Generiere QR-Code</button>
  </form>
  <div id="qrcode"></div>
  <button id="downloadBtn" style="display:none;">QR-Code herunterladen</button>
  <script>
    const qrCode = new QRCodeStyling({
      width: 300,
      height: 300,
      type: "png",
      data: "",
      image: "",
      dotsOptions: {
        color: "#000",
        type: "rounded"
      },
      backgroundOptions: {
        color: "#fff",
      }
    });
    document.getElementById("qrForm").addEventListener("submit", function(event) {
      event.preventDefault();
      const url = document.getElementById("url").value;
      qrCode.update({
        data: url
      });
      document.getElementById("qrcode").innerHTML = "";
      qrCode.append(document.getElementById("qrcode"));
      document.getElementById("downloadBtn").style.display = "block";
    });
    document.getElementById("downloadBtn").addEventListener("click", function() {
      qrCode.download({ name: "qrcode", extension: "png" });
    });
  </script>
</body>
</html>
Datenbank, MySQL, PHP, phpMyAdmin

Delete/Insert/Update/Search, altmodisch gelöst? Verbesserungsvorschläge?

Mehrere Formularfunktionen in PHP:

Delete:

  if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["kunden_id"])) {
    $kunden_id = $_POST["kunden_id"];
    $sql = "DELETE FROM kunden WHERE kunden_id=$kunden_id";

    if ($conn->query($sql) === TRUE) {
      echo "Record deleted successfully";
    }
    else {
      echo "Error deleting record: " . $conn->error;
    }
  }

  $conn->close();
?>

Insert:

  if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $vname = $conn->real_escape_string($_POST['vname']);
    $nname = $conn->real_escape_string($_POST['nname']);
    $age = $conn->real_escape_string($_POST['age']);
    $sql = "INSERT INTO kunden (vname, nname, age) VALUES ('$vname', '$nname', '$age')";

    if ($conn->query($sql) === TRUE) {
      echo "Neuer Kunde erfolgreich hinzugefügt";
    }
    else {
      echo "Fehler: " . $sql . "<br>" . $conn->error;
    }
  }

  $conn->close();
?>

Update:

  if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST["kunden_id"]) && isset($_POST["vname"]) && isset($_POST["nname"]) && isset($_POST["age"])) {
    // Kunden-ID und neue Daten aus dem Formular abrufen
    $kunden_id = $_POST["kunden_id"];
    $vname = $_POST["vname"];
    $nname = $_POST["nname"];
    $age = $_POST["age"];

    // SQL-Update-Statement vorbereiten
    $sql = "UPDATE kunden SET vname='$vname', nname='$nname', age='$age' WHERE kunden_id=$kunden_id";

    if ($conn->query($sql) === TRUE) {
      echo "Record updated successfully";
    }
    else {
      echo "Error updating record: " . $conn->error;
    }
  }

  $conn->close();
?>

Search:

  if (isset($_POST['search'])) {
    $search = $_POST['search'];
    $sql = "SELECT kunden_id, vname, nname, age FROM kunden WHERE nname LIKE '%$search%' ORDER BY kunden_id";
  }
  else {
    $sql = "SELECT kunden_id, vname, nname, age FROM kunden ORDER BY kunden_id";
  }

  $result = $conn->query($sql);

  if ($result->num_rows > 0) {
    echo "<table border='1'>
      <tr>
        <th>Kunden ID</th>
        <th>Vorname</th>
        <th>Nachname</th>
        <th>Alter</th>
      </tr>";

    while ($row = $result->fetch_assoc()) {
      echo "<tr>
        <td>" . $row["kunden_id"]. "</td>
        <td>" . $row["vname"]. " </td>
        <td>" . $row["nname"]. "</td>
        <td>" . $row["age"]. "</td>
      </tr>";
    }

    echo "</table>";
  }
  else {
    echo "0 Ergebnisse";
  }

  $conn->close();
?>
<form method="post">
  <input type="text" name="search" placeholder="Nachname eingeben...">
  <button type="submit">Suchen</button>
</form>
Datenbank, MySQL, PHP, phpMyAdmin

php-Zugriff auf mysql funktioniert nicht?

Ich habe folgende Funktion in PHP geschrieben:

function getName($id) {
                global $conn;
                $sql = "SELECT Vorname, Nachname FROM mitglieder WHERE ID = `$id`";
                $result = $conn->query($sql);
                if ($result->num_rows > 0) {
                    $row = $result->fetch_assoc();
                    return $row['Vorname'] . " " . $row['Nachname'];
                } else {
                    return "";
                }
            }

Aber aus irgendeinem Grund kommt immer folgende Fehlermeldung:

Warning: Attempt to read property "num_rows" on bool in C:\xampp\htdocs\***********.php on line 35

Diese Variable $conn funktioniert aber an anderer Stelle im globalen Code außerhalb dieser Funktion einwandfrei wie gewünscht und ich sehe vom Code her keinen nennenswerten Unterschied.

Was ich bereits versucht habe:

  • $conn als Parameter an die Funktion zu übergeben
  • $conn in der Funktion selber zu definieren
  • $conn in der Funktion selber definieren und dass $conn im globalen Code entfernen
  • ChatGPT nach dem Fehler fragen
  • Folgende Fehlerabfrage einzubauen (dabei war $conn auch in der Funktion selber und NUR in der Funktion selber definiert):
if ($conn->connect_error) {
                die("Serverfehler: " . $conn->connect_error);
            }

Das führte aber nur zu folgender Fehlermeldung:

Warning: Attempt to read property "connect_error" on null in C:\xampp\htdocs\*********.php on line 26

Hat alles nichts geholfen. Wisst ihr wo der Fehler liegt?

Computer, Technik, SQL, HTML, Webseite, programmieren, JavaScript, Code, Datenbank, MySQL, PHP, Programmiersprache, Webentwicklung, phpMyAdmin, Programmierfehler

Meistgelesene Beiträge zum Thema PhpMyAdmin