IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

ajouter une video dans une base de données


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 275
    Points : 70
    Points
    70
    Par défaut ajouter une video dans une base de données
    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é. Je n'ai aucune erreur affichée mais les données ne sont pas ajoutées dans la base de données.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    <?php
     
    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 = 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>
     
       <!-- font awesome cdn link  -->
       <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min.css">
     
       <!-- 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

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 097
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 097
    Points : 8 206
    Points
    8 206
    Billets dans le blog
    17
    Par défaut
    Il faut laisser des traces pour vérifier comment ton script est exécuté.

    Pour commencer des print_r($_POST) et print_r($_FILES) peuvent aider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    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}]";
        $verify_content->execute([$tutor_id,$title,$description]);
        ...

    Voilà pour le principe
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 275
    Points : 70
    Points
    70
    Par défaut
    Bonsoir,
    merci pour votre réponse
    J'ai essayé de faire ceci et j'ai obtenu ce résultat. Comment je peux corriger mon code SVP?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Array
    (
    )
    Array
    (
    )

  4. #4
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 275
    Points : 70
    Points
    70
    Par défaut
    Bonjour,
    J'ai essayé de gérer mes erreurs mais toujours j'obtient ce résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Array
    (
    )
    Array
    (
    )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
     
    <?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;
     
       $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>
     
       <!-- font awesome cdn link  -->
       <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min.css">
     
       <!-- 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>

  5. #5
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 097
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 097
    Points : 8 206
    Points
    8 206
    Billets dans le blog
    17
    Par défaut
    Etonnant, c'est comme si ton formulaire n'était pas soumis.

    Vérifie si tu n'as pas quelque chose qui viendrait intercepter le formulaire, comme du JavaScript.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  6. #6
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 275
    Points : 70
    Points
    70
    Par défaut
    Bonsoir,
    Jai essayé d'activer l'affichage des erreurs et de détecter les erreursmais j'obtiens toujours le meme résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    <?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>
     
       <!-- font awesome cdn link  -->
       <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min.css">
     
       <!-- 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>

  7. #7
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Je ne suis pas certain que le problème vienne du code que tu nous montres. Je te laisse néanmoins une version commentée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    <?php
    error_reporting(E_ALL);
     
    ini_set('display_errors', true); // les booléens en minuscules, on est plus en 2003
    ini_set('display_startup_errors', true);
                                           // on n'hésite pas à sauter des lignes 
    require '../components/connect.php'; // require plutôt qu'include quand c'est indispensable, voire require_once pour ne pas insérer 2 fois la même chose
     
    /* 
    if (isset($_COOKIE['tutor_id'])) { // on met des espaces pour aérer
        $tutor_id = $_COOKIE['tutor_id']; // on indente avec 4 espaces pas 3
    } else {
        $tutor_id = ''; // à quoi bon définir une variable avant une redirection ?
        header('location:login.php');
    }
    */ // autant l'écrire de cette manière
     
    if (!isset($_COOKIE['tutor_id'])) {
        header('location:login.php');
    }
     
    $tutor_id = $_COOKIE['tutor_id'];
     
    /* à mettre aprés le test d'existence de $_POST['submit'] pas avant!
    echo '<pre>', print_r($_FILES, true), '</pre>'; // Valorisé ?
    echo '<pre>', print_r($_POST, true), '</pre>'; // Valorisé ?
    */
     
    if (isset($_POST['submit'])) {
        // à ce stade les variables $title et $description ne sont pas définies
        //    echo "[DEBUG] tutor_id=[{$tutor_id}], title=[{$title}], description=[{$description}]"; 
     
        $id = create_unique_id(); /* où est définie cette fonction?
            De plus mieux vaut laisser le soin à MySQL de créer un id unique en plaçant la colonne id de la table content en auto_increment.
            Dans ce cas, il suffit de retirer l'id de la requête d'insertion, MySQL créera une valeur unique tout seul. */
     
        $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; // où est définie la fonction create_unique_id() ?
        $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;
     
    /////////////////////////////////////////////////////////////////////////////////////////////
    // dans cette partie on teste si un enregistrement existe déjà avant de l'insérer,
    // mais il est possible de faire autrement: ajouter une contrainte d'unicité pour
    // la table `content` pour l'ensemble des 3 colonnes tutor_id, title et description.
    // Dans ce cas plus besoin de faire un test au préalable, on fait directement l'insertion.
    /////////////////////////////////////////////////////////////////////////////////////////////
        /*$sql = "select * from content where tutor_id = ?  and title = ? and description = ?"; */ 
        // pourquoi "select *"? On se fiche des colonnes renvoyées par la requête on veut juste voir s'il est déjà présent 
     
        $query = <<<'SQL'
            SELECT 1
            FROM content
            WHERE tutor_id = ?
              AND title = ?
              AND description = ?
        SQL;
     
        // il faut choisir entre les placeholders nommés et les '?'
        // $description = [':description' => $description];
     
        $verify_content =$conn->prepare($query);
        $verify_content->execute([$tutor_id, $title, $description]);
     
        if ($verify_content->fetch_column()) {
            $message[] = 'content already created!';
        } else {
            move_uploaded_file($thumb_tmp_name, $thumb_folder); // ces opérations peuvent échouer, il faut tester leur retour et aviser
            move_uploaded_file($video_tmp_name, $video_folder);
     
            $query = "INSERT INTO content(id, tutor_id, playlist_id, title, description, video, thumb, status) VALUES (?, ?, ?, ?, ?, ?, ?, ?)";
            $stmt = $conn->prepare($query);
            $stmt->execute([$id, $tutor_id, $playlist_id, $title, $description, $rename_video, $rename_thumb, $status]);
     
            $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>
     
       <!-- font awesome cdn link  -->
       <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min.css">
     
       <!-- 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">
                <label for="status">video status <span>*</span></label>
                <select id="status" name="status" class="box" required>
                    <option value="" selected disabled>-- select status</option>
                    <option value="active">active</option>
                    <option value="desactive">desactive</option>
                </select>
     
                <label for="title">video title <span>*</span></label>
                <input id="title" type="text" name="title" maxlength="100" required placeholder="enter video title" class="box"/>
     
                <label for="description">video description <span>*</span></label>
                <textarea id="description" name="description" class="box" required placeholder="write description" maxlength="1000" cols="30" rows="10"></textarea>
     
                <label for="playlist">video playlist <span>*</span></label>
                <select id="playlist" name="playlist" class="box" required>
                    <option value="" disabled selected>--select playlist</option>
                    <?php
                        $stmt_playlists = $conn->prepare('SELECT id, title FROM playlist WHERE tutor_id = ?');
                        $stmt_playlists->execute([$tutor_id]);
                        $playlists = $stmt_playlists->fetchAll(); ?>
     
                    <?php foreach ($playlists as $playlist): ?>
                    <option value="<?= $playlist['id'] ?>"><?= $playlist['title'] ?></option>
                    <?php endforeach; ?>
     
                    <?php if (empty($playlists)): ?>
                    <option value="" disabled>no playlist created yet!</option>
                    <?php endif; ?>
                </select>
     
                <label for="thumb">select thumbnail <span>*</span></label>
                <input id="thumb" type="file" name="thumb" accept="image/*" required class="box"/>
     
                <label for="video">select video <span>*</span></label>
                <input id="video" 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>
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  8. #8
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2012
    Messages : 275
    Points : 70
    Points
    70
    Par défaut
    Bonsoir,
    merci
    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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    <?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>
     
       <!-- font awesome cdn link  -->
       <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.0/css/all.min.css">
     
       <!-- 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>

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/09/2017, 12h14
  2. Ajout à une base de données
    Par yousra36 dans le forum Langage
    Réponses: 3
    Dernier message: 07/08/2013, 07h20
  3. Impossible d'ajouter une base de données à l'arborescence
    Par pat29 dans le forum Entreprise Manager
    Réponses: 0
    Dernier message: 09/12/2008, 18h45
  4. Réponses: 7
    Dernier message: 30/07/2007, 22h14
  5. Pbm d'ajout à une base de données
    Par jbaers dans le forum Bases de données
    Réponses: 4
    Dernier message: 29/11/2005, 12h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo