PHP – die besten Beiträge

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

wie übergebe ich Daten mit Input?

Die Anwendung von Input ist eigentlich klar. Die gestellte Frage soll aber auf mein Problem hinweisen denn im dargestellten Fall habe ich Probleme.

if ($sichern == true){
        for($i=1; $i<4; $i++){
            echo "<input type='hidden' name='vonMod[$i]' value='$vonMod[$i]'>";
            echo "<input type='hidden' name='bisMod[$i]' value='$bisMod[$i]'>";
        }
        echo "<p align='center'><br><input class='backa' type='button' value='nein, zur&uuml;ck' onclick='history.back()'>&nbsp;&nbsp;";
        echo "<input class='speichern' type='submit' name='speichern' formaction='speichern.php' value='ja, speichern'><p>&nbsp;</p>";
    }else{
        echo "<p align='center'><br><input class='backa' type='button' value='nein, zur&uuml;ck' onclick='history.back()'>&nbsp;&nbsp;";
        echo "<input class='speichern' type='submit' name='kontrolle' formaction='termine_change.php?sichern' value='ja, speichern'><p>&nbsp;</p>";
    }

Mit der Datenweitergabe via Input name='kontrolle' gibt es keine Probleme!

Die Datenweitergabe mit name='speichern' funktioniert nicht! Die if-Abfrage nach "$sichern == true" wurde überprüft und wird ausgeführt.

Verschiebe ich den Input name='speichern' ausserhalb der Abfrage "$sichern == true" wird der Befehl ausgeführt.

Was kann ich machen, damit ich nach der Abfrage "$sichern == true" den Input-Befehl ausführen kann. Bei der Probiererei hatte ich zu dem Input noch ein onclick mit einem Alert-fenster angehängt. Alert funktionierte, nur input nicht!

Webseite, PHP, Programmiersprache

Website lädt Datei nicht hoch, warum?

Moin, kennt sich vielleicht jemand mit PHP und Html aus und weiß warum beim Upload der Datei nicht das Script "upload.php" ausgeführt wird? Versuche mich gerade beim Scripten, stehe allerdings gerade voll auf dem Schlauch... Danke!

<?php include 'header.php'; ?>
<?php
if(!isset($_SESSION['email'])){
  header('location:login.php');
  $target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
}
 ?>
      <div class="breadcrumb">
        <div class="container">
            <a class="breadcrumb-item" href="index.php">Home</a>
            <span class="breadcrumb-item active">Welecome <?php echo $_SESSION['email'] ?></span>
            <span class="breadcrumb-item active">Upload Video</span>
        </div>
    </div>
    <section class="static about-sec">
        <div class="container">
            <h1>Upload Video</h1>
            <div class="form">
                <form class="" action="videoUpload.php" method="post">
                    <div class="row">
                        <div class="col-md-6">
                            <input type="hidden" name="id" value="">
                            <label for="name">Name of Video:</label>
                            <input type="text" name="name" value="" placeholder="Fantasy World" required>
                            <label for="video_url">Video URL</label>
                            <input type="file" name="video_url" required>
                            <label for="description">Description</label>
                            <input type="text" name="description" value="" placeholder="">
                            <label for="category">Category</label>
                            <select name="category">
                              <option value="Classic">Classic</option>
                              <option value="Adventerous">Adventerous</option>
                              <option value="Nature">Nature</option>
                              <option value="Others">Others</option>
                            </select>
                          </div>
                        </div>
							<div class="col-lg-8 col-md-12">
							<form action="upload.php" method="post" enctype="multipart/form-data">
							<input type="submit" class="btn black" value="Upload Image" name="submit">
							</form>
                        </div>
                    </div>
                </form>
            </div>
        </div>
    </section>


    <?php include 'footer.php';?>
HTML, Webseite, HTML5, Code, Datenbank, MySQL, PHP, Programmiersprache, Webdesign, Webentwicklung

Problem mit falscher Darstellung des Euro-Zeichens (€) in FPDF (erscheint als "â")?

Die restlichen Inhalte werden korrekt dargestellt, aber das Euro-Zeichen scheint nicht richtig kodiert zu werden. Meine Vermutung ist, dass es an der Zeichenkodierung (UTF-8 oder ISO-8859-1) oder an der verwendeten Schriftart liegt.

Hat jemand eine Idee, wie ich dieses Problem beheben kann?

Vielen Dank im Voraus für eure Hilfe!


<?php


session_start();
include "db.php";


// Holen der Bestelldaten
$query = "SELECT 
            u.vorname, 
            u.nachname, 
            b.bestelldatum, 
            b.bestelladresse, 
            bp.anzahl, 
            bp.preis, 
            p.produktname 
          FROM 
            user u
          JOIN 
            bestellungen b ON u.id_user = b.id_user
          JOIN 
            bestellungen_products bp ON b.id_bestellung = bp.id_bestellung
          JOIN 
            products p ON bp.id_product = p.id_product 
          WHERE 
            b.id_bestellung = ?";


$id_order = $_GET["order_id"];
$stmt = $conn->prepare($query);
$stmt->bind_param("i", $id_order);
$stmt->execute();
$result = $stmt->get_result();


$order = $result->fetch_assoc();
$rechnungs_nummer = $id_order;
$rechnungs_datum = $order["bestelldatum"];
$lieferdatum = date("Y-m-d", strtotime($rechnungs_datum . " +2 weeks"));


// Neues PDF erstellen
require_once('fpdf/fpdf.php');
$pdf = new FPDF();
$pdf->AddPage();


// Titel und Rechnungsinformationen
$pdf->SetFont('Helvetica', 'B', 16);
$pdf->Cell(190, 10, 'Rechnung', 0, 1, 'C');
$pdf->SetFont('Helvetica', '', 12);
$pdf->Cell(100, 10, 'Rechnungsnummer: ' . $rechnungs_nummer);
$pdf->Cell(90, 10, 'Rechnungsdatum: ' . $rechnungs_datum, 0, 1);
$pdf->Cell(100, 10, 'Lieferdatum: ' . $lieferdatum, 0, 1);


// Empfängerinformationen
$pdf->Ln(10);
$pdf->Cell(100, 10, 'Kunde:');
$pdf->Ln(5);
$pdf->Cell(100, 10, $order["vorname"] . " " . $order["nachname"]);
$pdf->Ln(5);
$pdf->Cell(100, 10, $order["bestelladresse"]);


// Postenübersicht
$pdf->Ln(15);
$pdf->SetFont('Helvetica', 'B', 12);
$pdf->Cell(90, 10, 'Produkt', 1);
$pdf->Cell(30, 10, 'Menge', 1);
$pdf->Cell(30, 10, 'Preis', 1);
$pdf->Cell(40, 10, 'Gesamt', 1, 1);
$pdf->SetFont('Helvetica', '', 12);


$gesamtpreis = 0;
do {
    $produktname = $order["produktname"];
    $anzahl = $order["anzahl"];
    $preis = $order["preis"];
    $gesamt = $anzahl * $preis;
    $gesamtpreis += $gesamt;


    $pdf->Cell(90, 10, $produktname, 1);
    $pdf->Cell(30, 10, $anzahl, 1, 0, 'C');
    $pdf->Cell(30, 10, number_format($preis, 2, ',', '') . ' €', 1, 0, 'R');
    $pdf->Cell(40, 10, number_format($gesamt, 2, ',', '') . ' €', 1, 1, 'R');
} while ($order = $result->fetch_assoc());


// Gesamtsumme
$pdf->SetFont('Helvetica', 'B', 12);
$pdf->Ln(5);
$pdf->Cell(150, 10, 'Gesamtsumme:', 0, 0, 'R');
$pdf->Cell(40, 10, number_format($gesamtpreis, 2, ',', '') . ' €', 0, 1, 'R');


// Ausgabe des PDFs
$pdf->Output('F', 'Rechnung_' . $rechnungs_nummer . '.pdf');


//header("location:mail.php?order_id=$id_order")
header("location:confirmation.php?order_id=$id_order")
?>


Webseite, PHP

Meistgelesene Beiträge zum Thema PHP