Page 1 sur 1

ajouter une video dans une base de données

Posté : 22 mai 2023, 12:20
par Marie_7
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

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

Posté : 22 mai 2023, 12:36
par two3d
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=?"

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

Posté : 22 mai 2023, 13:45
par ynx
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

Posté : 23 mai 2023, 01:25
par Marie_7
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

Posté : 23 mai 2023, 02:06
par or 1
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

Posté : 23 mai 2023, 09:49
par Marie_7
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

Posté : 23 mai 2023, 10:16
par two3d
action="", si il est vide est inutile.

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

Posté : 24 mai 2023, 00:49
par Marie_7
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

Posté : 24 mai 2023, 09:13
par two3d