ajouter une video dans une base de données

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : ajouter une video dans une base de données

Re: ajouter une video dans une base de données

par two3d » 24 mai 2023, 09:13

Re: ajouter une video dans une base de données

par Marie_7 » 24 mai 2023, 00:49

Bonsoir,
J'ai remarqué que dans ce code, en remplaçant accept="video/*" par accept="image/*", les données sont bien sauvegardées dans la base de données. Comment je peux filtrer seuls les fichiers vidéos
<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
include '../components/connect.php';

if(isset($_COOKIE['tutor_id'])){
   $tutor_id = $_COOKIE['tutor_id'];
}else{
   $tutor_id = '';
   header('location:login.php');
}

if(isset($_POST['submit'])){

   $id = unique_id();
   $title = $_POST['title'];
   $title = filter_var($title, FILTER_SANITIZE_STRING);
   $description = $_POST['description'];
   $description = filter_var($description, FILTER_SANITIZE_STRING);
   $status = $_POST['status'];
   $status = filter_var($status, FILTER_SANITIZE_STRING);
   $playlist_id = $_POST['playlist'];
   $playlist_id = filter_var($playlist_id, FILTER_SANITIZE_STRING);

   $image = $_FILES['image']['name'];
   $image = filter_var($image, FILTER_SANITIZE_STRING);
   $ext = pathinfo($image, PATHINFO_EXTENSION);
   $rename = unique_id().'.'.$ext;
   $image_size = $_FILES['image']['size'];
   $image_tmp_name = $_FILES['image']['tmp_name'];
   $image_folder = '../uploaded_files/'.$rename;

   $video = $_FILES['video']['name'];
   $video = filter_var($video, FILTER_SANITIZE_STRING);
   $ext2 = pathinfo($video, PATHINFO_EXTENSION);
   $rename_video = unique_id().'.'.$ext2;
   $video_size = $_FILES['video']['size'];
   $video_tmp_name = $_FILES['video']['tmp_name'];
   $video_folder = '../uploaded_files/'.$rename_video;

   $verify_content=$conn->prepare("select *  from  `content` where tutor_id= ?  and title=? and description=? ");
   $verify_content->execute([$tutor_id,$title,$description]);
 
 
   if($verify_content->rowCount()>0){
      $message[] = 'content already created!';
   }else{
   $add_playlist = $conn->prepare("INSERT INTO `content`(id, tutor_id, playlist_id, title, description, video, thumb, status) VALUES(?,?,?,?,?,?,?,?)");
   $add_playlist->execute([$id, $tutor_id, $playlist_id, $title, $description, $rename_video, $rename, $status]);
   move_uploaded_file($image_tmp_name, $image_folder);
   move_uploaded_file($video_tmp_name, $video_folder);

   $message[] = 'new content created!';  
   }
}

?>

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>Add Playlist</title>

   <!-- custom css file link  -->
   <link rel="stylesheet" href="../css/admin_style.css">

</head>
<body>

<?php include '../components/admin_header.php'; ?>
   
<section class="playlist-form">

   <h1 class="heading">create playlist</h1>

   <form action="" method="post" enctype="multipart/form-data">
      <p>video status <span>*</span></p>
      <select name="status" class="box" required>
         <option value="" selected disabled>-- select status</option>
         <option value="active">active</option>
         <option value="deactive">deactive</option>
      </select>
      <p>video title <span>*</span></p>
      <input type="text" name="title" maxlength="100" required placeholder="enter playlist title" class="box">
      <p>video description <span>*</span></p>
      <textarea name="description" class="box" required placeholder="write description" maxlength="1000" cols="30" rows="10"></textarea>
      <p>video playlist <span>*</span></p>
      <select name="playlist" class="box" required>
         <option value="" disabled selected>--select playlist</option>
         <?php
         $select_playlists = $conn->prepare("SELECT * FROM `playlist` WHERE tutor_id = ?");
         $select_playlists->execute([$tutor_id]);
         if($select_playlists->rowCount() > 0){
            while($fetch_playlist = $select_playlists->fetch(PDO::FETCH_ASSOC)){
         ?>
         <option value="<?= $fetch_playlist['id']; ?>"><?= $fetch_playlist['title']; ?></option>
         <?php
            }
         ?>
         <?php
         }else{
            echo '<option value="" disabled>no playlist created yet!</option>';
         }
         ?>
      </select>
      <p>video thumbnail <span>*</span></p>
      <input type="file" name="image" accept="image/*" required class="box">
      <p>Select video<span>*</span></p>
      <input type="file" name="video" accept="video/*" required class="box">
      <input type="submit" value="create playlist" name="submit" class="btn">
   </form>

</section>


<?php include '../components/footer.php'; ?>

<script src="../js/admin_script.js"></script>

</body>
</html>

Re: ajouter une video dans une base de données

par two3d » 23 mai 2023, 10:16

action="", si il est vide est inutile.

Re: ajouter une video dans une base de données

par Marie_7 » 23 mai 2023, 09:49

Bonjour,
oui, même en remplissant tous les champs. Malheureusement je n'ai pas pu mettre une image pour vous montrer le résultat obtenu

Re: ajouter une video dans une base de données

par or 1 » 23 mai 2023, 02:06

et aussi lors de la soumission du formulaire.
même en ayant rempli tous les champs requis ? car c'est très étonnant que $_POST soit vide quand le formulaire est en méthode post.

Re: ajouter une video dans une base de données

par Marie_7 » 23 mai 2023, 01:25

Bonsoir,
J'ai essayé d'activer l'affichage des erreurs et de détecter les erreurs mais j'obtiens toujours le meme résultat en haut de la page dès son chargement et aussi lors de la soumission du formulaire.
<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
include '../components/connect.php';

if(isset($_COOKIE['tutor_id'])){
   $tutor_id = $_COOKIE['tutor_id'];
}else{
   $tutor_id = '';
   header('location:login.php');
}
echo '<pre>'; print_r($_FILES); echo '</pre>'; // Valorisé ?
echo '<pre>'; print_r($_POST); echo '</pre>'; // Valorisé ?
if(isset($_POST['submit'])){
   echo "[DEBUG] tutor_id=[{$tutor_id}], title=[{$title}], description=[{$description}]";
   $id = create_unique_id();
   $status = $_POST['status'];
   $status = filter_var($status, FILTER_SANITIZE_STRING);
   $title = $_POST['title'];
   $title = filter_var($title, FILTER_SANITIZE_STRING);
   $description = $_POST['description'];
   $description = filter_var($description, FILTER_SANITIZE_STRING);
   $playlist_id = $_POST['playlist'];
   $playlist_id = filter_var($playlist_id, FILTER_SANITIZE_STRING);

   $thumb = $_FILES['thumb']['name'];
   $thumb = filter_var($thumb, FILTER_SANITIZE_STRING);
   $thumb_ext = pathinfo($thumb, PATHINFO_EXTENSION);
   $rename_thumb = create_unique_id().'.'.$thumb_ext;
   $thumb_size = $_FILES['thumb']['size'];
   $thumb_tmp_name = $_FILES['thumb']['tmp_name'];
   $thumb_folder = '../uploaded_files/'.$rename_thumb;

   $video = $_FILES['video']['name'];
   $video = filter_var($video, FILTER_SANITIZE_STRING);
   $video_ext = pathinfo($video, PATHINFO_EXTENSION);
   $rename_video = create_unique_id().'.'.$video_ext;
   $video_tmp_name = $_FILES['video']['tmp_name'];
   $video_size= $_FILES['video']['size'];
   $video_folder = '../uploaded_files/'.$rename_video;
   
   $sql="select *  from content where tutor_id= ?  and title=? and description=? ";
   $description = [':description' => $description];
   try{
      $verify_content =$conn->prepare($sql);
      $verify_content->execute([$tutor_id,$title,$description]);
   }catch(Exception $e){
      // en cas d'erreur :
      echo " Erreur ! ".$e->getMessage();
      echo " Les datas : " ;
      print_r($description);
   }

   if($verify_content->rowCount()>0){
      $message[] = 'content already created!';
   }else{
      $sql2 = "INSERT INTO `content`(id, tutor_id, playlist_id, title, description, video, thumb, status) VALUES(?,?,?,?,?,?,?,?)";
      $datas2 = array(':valeur1'=>$id, ':valeur2'=>$tutor_id,':valeur3'=>$playlist_id,':valeur4'=>$title,':valeur5'=>$description,':valeur6'=>$rename_video,':valeur7'=>$rename_thumb,':valeur8'=>$status);

      try{
         $add_content = $conn -> prepare($sql2) ;
         $add_content->execute($datas2) ;
       }catch(Exception $e){
         // en cas d'erreur :
          echo " Erreur ! ".$e->getMessage();
          echo " Les datas : " ;
         print_r($datas2);
       }
      move_uploaded_file($thumb_tmp_name, $thumb_folder);
      move_uploaded_file($video_tmp_name, $video_folder);
      $message[] = 'new course uploaded!';
   }
}

?>
<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>Dashboard</title>
 
 
   <!-- custom css file link  -->
   <link rel="stylesheet" href="../css/admin_style.css">
 
</head>
<body>
 
<?php include '../components/admin_header.php'; ?>
 
<section class="video-form">
 
   <h1 class="heading">upload content</h1>
 
   <form action="" method="post" enctype="multipart/form-data">
      <p>video status <span>*</span></p>
      <select name="status" class="box" required>
         <option value="" selected disabled>-- select status</option>
         <option value="active">active</option>
         <option value="desactive">desactive</option>
      </select>
      <p>video title <span>*</span></p>
      <input type="text" name="title" maxlength="100" required placeholder="enter video title" class="box">
      <p>video description <span>*</span></p>
      <textarea name="description" class="box" required placeholder="write description" maxlength="1000" cols="30" rows="10"></textarea>
      <p>video playlist <span>*</span></p>
      <select name="playlist" class="box" required>
         <option value="" disabled selected>--select playlist</option>
         <?php
         $select_playlists = $conn->prepare("SELECT * FROM `playlist` WHERE tutor_id = ?");
         $select_playlists->execute([$tutor_id]);
         if($select_playlists->rowCount() > 0){
            while($fetch_playlist = $select_playlists->fetch(PDO::FETCH_ASSOC)){
         ?>
         <option value="<?= $fetch_playlist['id']; ?>"><?= $fetch_playlist['title']; ?></option>
         <?php
            }
         ?>
         <?php
         }else{
            echo '<option value="" disabled>no playlist created yet!</option>';
         }
         ?>
      </select>
      <p>select thumbnail <span>*</span></p>
      <input type="file" name="thumb" accept="image/*" required class="box">
      <p>select video <span>*</span></p>
      <input type="file" name="video" accept="video/*" required class="box">
      <input type="submit" value="upload video" name="submit" class="btn">
   </form>
 
</section>
 
<?php include '../components/footer.php'; ?>
 
<script src="../js/admin_script.js"></script>
 
</body>
</html>

Re: ajouter une video dans une base de données

par ynx » 22 mai 2023, 13:45

En complément, la méthode perepare n'existe pas (prepare).

Tu obtiens ce résultat au premier chargement de la page mais aussi lors de la soumission du formulaire ?

Active l'affichage des erreurs PHP lorsque tu es en développement : tutoriels/page-blanche-script-php-comme ... 73178.html

Re: ajouter une video dans une base de données

par two3d » 22 mai 2023, 12:36

Une requête SQL est mal formée :

Code : Tout sélectionner

$verify_content=$conn->perepare("select * from 'content' where tutor_id= ? and title=?and description=? ");
- les simples guillemets ' sont incorrects pour une requête SQL, on utilise soit `, soit rien.
- le "and" est collé à "title=?"

ajouter une video dans une base de données

par Marie_7 » 22 mai 2023, 12:20

Bonjour,
J'ai un formulaire pour ajouter une video et d'autres informations dans une base de données mais ça n'a pas marché. Les données ne sont pas ajoutées dans la base de données et j'obtient ce résultat.

Code : Tout sélectionner

Array ( ) Array ( )

Code : Tout sélectionner

<?php include '../components/connect.php'; if(isset($_COOKIE['tutor_id'])){ $tutor_id = $_COOKIE['tutor_id']; }else{ $tutor_id = ''; header('location:login.php'); } echo '<pre>'; print_r($_FILES); echo '</pre>'; // Valorisé ? echo '<pre>'; print_r($_POST); echo '</pre>'; // Valorisé ? if(isset($_POST['submit'])){ echo "[DEBUG] tutor_id=[{$tutor_id}], title=[{$title}], description=[{$description}]"; $id = create_unique_id(); $status = $_POST['status']; $status = filter_var($status, FILTER_SANITIZE_STRING); $title = $_POST['title']; $title = filter_var($title, FILTER_SANITIZE_STRING); $description = $_POST['description']; $description = filter_var($description, FILTER_SANITIZE_STRING); $playlist_id = $_POST['playlist']; $playlist_id = filter_var($playlist_id, FILTER_SANITIZE_STRING); $thumb = $_FILES['thumb']['name']; $thumb = filter_var($thumb, FILTER_SANITIZE_STRING); $thumb_ext = pathinfo($thumb, PATHINFO_EXTENSION); $rename_thumb = create_unique_id().'.'.$thumb_ext; $thumb_size = $_FILES['thumb']['size']; $thumb_tmp_name = $_FILES['thumb']['tmp_name']; $thumb_folder = '../uploaded_files/'.$rename_thumb; $video = $_FILES['video']['name']; $video = filter_var($video, FILTER_SANITIZE_STRING); $video_ext = pathinfo($video, PATHINFO_EXTENSION); $rename_video = create_unique_id().'.'.$video_ext; $video_tmp_name = $_FILES['video']['tmp_name']; $video_size= $_FILES['video']['size']; $video_folder = '../uploaded_files/'.$rename_video; $verify_content=$conn->perepare("select * from 'content' where tutor_id= ? and title=?and description=? "); $verify_content->execute([$tutor_id,$title,$description]); if($verify_content->rowCount()>0){ $message[] = 'content already created!'; }else{ $add_content = $conn->prepare("INSERT INTO `content`(id, tutor_id, playlist_id, title, description, video, thumb, status) VALUES(?,?,?,?,?,?,?,?)"); $add_content->execute([$id, $tutor_id, $playlist_id, $title, $description, $rename_video, $rename_thumb, $status]); move_uploaded_file($thumb_tmp_name, $thumb_folder); move_uploaded_file($video_tmp_name, $video_folder); $message[] = 'new course uploaded!'; } } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Dashboard</title> <!-- custom css file link --> <link rel="stylesheet" href="../css/admin_style.css"> </head> <body> <?php include '../components/admin_header.php'; ?> <section class="video-form"> <h1 class="heading">upload content</h1> <form action="" method="post" enctype="multipart/form-data"> <p>video status <span>*</span></p> <select name="status" class="box" required> <option value="" selected disabled>-- select status</option> <option value="active">active</option> <option value="desactive">desactive</option> </select> <p>video title <span>*</span></p> <input type="text" name="title" maxlength="100" required placeholder="enter video title" class="box"> <p>video description <span>*</span></p> <textarea name="description" class="box" required placeholder="write description" maxlength="1000" cols="30" rows="10"></textarea> <p>video playlist <span>*</span></p> <select name="playlist" class="box" required> <option value="" disabled selected>--select playlist</option> <?php $select_playlists = $conn->prepare("SELECT * FROM `playlist` WHERE tutor_id = ?"); $select_playlists->execute([$tutor_id]); if($select_playlists->rowCount() > 0){ while($fetch_playlist = $select_playlists->fetch(PDO::FETCH_ASSOC)){ ?> <option value="<?= $fetch_playlist['id']; ?>"><?= $fetch_playlist['title']; ?></option> <?php } ?> <?php }else{ echo '<option value="" disabled>no playlist created yet!</option>'; } ?> </select> <p>select thumbnail <span>*</span></p> <input type="file" name="thumb" accept="image/*" required class="box"> <p>select video <span>*</span></p> <input type="file" name="video" accept="video/*" required class="box"> <input type="submit" value="upload video" name="submit" class="btn"> </form> </section> <?php include '../components/footer.php'; ?> <script src="../js/admin_script.js"></script> </body> </html>
Merci d'avance