Bonjour j'ai un problème avec mon code. j'ai dans l'enregistrement des posts laisser la possibilité a l'utilisateur d'enregistrer une video de type MP4 ou un lien youtube. Lorsqu'il choisi un lien youtube l'enregistrement en base de données se fait.mais pour les videos mp4 rien ne se passe pas de video ni d'url enregistrée en base. De plus une video mp4 fait planter tout le systeme avec des erreurs du type Notice: Undefined index: theme in C:\wamp\www\7avecdieu\7admin\devotraitement.php on line11
Call Stack voici mon code:

<?php
@session_start();
include"structclass.php";
include"imageresizer.php";
if($_SERVER['REQUEST_METHOD']=="POST" )
{
    $servid=$_SESSION['servid'];
    $typeadmin=$_SESSION['admintype'];

    //receuperation des elements postés depuis la page _devoform
    $theme=checkitall($_POST['theme']);
    $tema=(!empty($_POST['tema'])&&empty($_POST['theme']))?checkitall($_POST['tema']):'';
    $titre=checkitall($_POST['devotitre']);
    $type="VIDEO";
    $videotype=($_POST['videotype']);
    $youtubeurl=checkitall($_POST['youtubelink']);
    $text=nl2br(checkitall($_POST['devotext']));
    $mp4=$mp3=$image=$son='';
    if(empty($titre)){
        echo "Veuillez entrer le titre de la dévotion matinale";
        exit();
    }
    if(empty($text))
    {
        echo "Veuillez entrer le texte de la dévotion matinale";
        exit();
    }
        // test sur le fichier video de la devotion matinale

            if($videotype=="fichmp4"){
                if(isset($_FILES["filemp4"]["name"]))
                {
                    $temp = explode(".", $_FILES["filemp4"]["name"]);
                    $extension = end($temp);
                    $allowedExts = array("mp4");

                    if (($_FILES["filemp4"]["type"] == "video/mp4")
                        && ($_FILES["filemp4"]["size"] < 20000000)
                        && in_array($extension, $allowedExts))
                            {

                                if ($_FILES["filemp4"]["error"] > 0)
                                {
                                    echo "code d'erreur: " . $_FILES["filemp4"]["error"] . "<br>";
                                }
                                else{

                                    $dossier='';
                                    switch($typeadmin)
                                    {
                                        case"STMI":
                                        $dossier="../membres/ministeres/".$servid."/devo";
                                        break;

                                        case"STEG":
                                        $dossier="../membres/eglises/".$servid."/devo";
                                        break;

                                    }

                                        if(!file_exists($dossier) and !is_dir($dossier))
                                        mkdir($dossier);
                                            if (file_exists($dossier."/". $_FILES["filemp4"]["name"]))
                                                {
                                                    echo"<center>".$_FILES["filemp4"]["name"] . " la video existe d&eacute;j&agrave;.</center> ";
                                                }
                                                else{

                                                    move_uploaded_file($_FILES["filemp4"]["tmp_name"],
                                                    $dossier."/".$_FILES["filemp4"]["name"]);                                                       

                                                    $mp4=$dossier."/".$_FILES["filemp4"]["name"];

                                                    }
                                    }
                            }
                            else
                            {
                            echo "Le format ou la taille en megaoctet de la vidéo que vous avez choisis n'est pas pris en charge.Veuillez en changer.";
                            exit();
                            }
                }
                else
                {
                    echo"veuillez n'entrer qu'une seule vidéo soit le lien youtube ou le fichier mp4";
                    exit();
                }
            }

            // test video youtube
            if(!empty($youtubeurl) && !preg_match('@https?://(www\.)?youtube.com/.[^\s.,"\']+@i',$youtubeurl))
            {
                echo"L'url Youtube n'est pas valide";
                exit();
            }

                // enregistrement dans la base de données si tous les tests sont opérés et concluants
                try
                    {
                    require"connectionbd.php";
                    $teme='';
                        if(!empty($tema))
                        {
                            $req="insert into ad_theme (titre) values(:t)";
                            $res=$bdd->prepare($req);
                            $res->execute(array('t'=>$tema));
                            $req="select id from ad_theme where titre=:t";
                            $res=$bdd->prepare($req);
                            $res->execute(array('t'=>$tema));
                            $teme=$res->fetch(PDO::FETCH_OBJ);

                        }
                        $vidlnk=(empty($mp4) && !empty($youtubeurl))?$youtubeurl:$mp4;

                        if(!empty($vidlnk))
                            {
                                $req="insert into ad_video (lien,titre,categorie,date_ajout,ownerid) values(:l,:t,:c,:d,:o)";
                                $res=$bdd->prepare($req);
                                $res->execute(array('l'=>$vidlnk,'t'=>$titre,'c'=>'DEVOTION','d'=>date('Y-m-d'),'o'=>$servid));
                            }

                            $req="select count(id) from ad_devotion where titre=:t and ownerid=:oid";
                            $res=$bdd->prepare($req);
                            $res->execute(array('t'=>$titre,'oid'=>$servid));
                            $v=$res->fetchColumn();
                            if($v>0)
                            {
                                $req="delete from ad_devotion where titre=:t and ownerid=:oid";
                                $res=$bdd->prepare($req);
                                if($res->execute(array('t'=>$titre,'oid'=>$servid)))
                                {
                                    $req="select id from ad_video where titre=:t and ownerid=:oid and categorie='DEVOTION' ";
                                    $res=$bdd->prepare($req);
                                    $res->execute(array('t'=>$titre,'oid'=>$servid));
                                    $vid=$res->fetch(PDO::FETCH_OBJ);
                                    $req="select id from ad_audio where titre=:t and ownerid=:oid and genre='DEVOTION' ";
                                    $res=$bdd->prepare($req);
                                    $res->execute(array('t'=>$titre,'oid'=>$servid));
                                    $audio=$res->fetch(PDO::FETCH_OBJ);
                                    $req="insert into ad_devotion (titre,photo,type,video_id,audio_id,texte,theme,ownerid,date_ajout,valider,etat) values (:t,:p,:ty,:v,:a,:txt,:th,:o,:d,1,1)";
                                    $res=$bdd->prepare($req);
                                    if($res->execute(array('t'=>$titre,'p'=>$image,'ty'=>$type ,'v'=>(!empty($vid->id))?$vid->id:'','a'=>(!empty($audio->id))?$audio->id:'','txt'=>$text,'th'=>(!empty($teme->id))?$teme->id:$theme,'o'=>$servid,'d'=>date('Y-m-d'))))
                                    {
                                        echo 1;
                                    }
                                }
                            }
                            else
                            {
                                $req="select id from ad_video where titre=:t and ownerid=:oid and categorie='DEVOTION' ";
                                    $res=$bdd->prepare($req);
                                    $res->execute(array('t'=>$titre,'oid'=>$servid));
                                    $vid=$res->fetch(PDO::FETCH_OBJ);
                                    $req="select id from ad_audio where titre=:t and ownerid=:oid and genre='DEVOTION' ";
                                    $res=$bdd->prepare($req);
                                    $res->execute(array('t'=>$titre,'oid'=>$servid));
                                    $audio=$res->fetch(PDO::FETCH_OBJ);
                                    $req="insert into ad_devotion (titre,photo,type,video_id,audio_id,texte,theme,ownerid,date_ajout,valider,etat) values (:t,:p,:ty,:v,:a,:txt,:th,:o,:d,1,1)";
                                    $res=$bdd->prepare($req);
                                    if($res->execute(array('t'=>$titre,'p'=>$image,'ty'=>$type,'v'=>(!empty($vid->id))?$vid->id:'','a'=>(!empty($audio->id))?$audio->id:'','txt'=>$text,'th'=>(!empty($teme->id))?$teme->id:$theme,'o'=>$servid,'d'=>date('Y-m-d'))))
                                    {
                                        echo 1;
                                    }
                            }
                        }
                        catch(Exception $e)
                        {
                            die('Erreur : ' . $e->getMessage().' a la ligne '.$e->getLine().' dans le fichier '.$e->getFile());
                        }

}
?>

2 réponses


Bonjour j'ai un problème avec mon code. j'ai dans l'enregistrement des posts laisser la possibilité a l'utilisateur d'enregistrer une video de type MP4 ou un lien youtube. Lorsqu'il choisi un lien youtube l'enregistrement en base de données se fait.mais pour les videos mp4 rien ne se passe pas de video ni d'url enregistrée en base. De plus une video mp4 fait planter tout le systeme avec des erreurs du type Notice: Undefined index: theme in C:\wamp\www\7avecdieu\7admin\devotraitement.php on line11
Call Stack voici mon code:

<?php
@session_start();
include"structclass.php";
include"imageresizer.php";
if($_SERVER['REQUEST_METHOD']=="POST" )
{
    $servid=$_SESSION['servid'];
    $typeadmin=$_SESSION['admintype'];

    //receuperation des elements postés depuis la page _devoform
    $theme=checkitall($_POST['theme']);
    $tema=(!empty($_POST['tema'])&&empty($_POST['theme']))?checkitall($_POST['tema']):'';
    $titre=checkitall($_POST['devotitre']);
    $type="VIDEO";
    $videotype=($_POST['videotype']);
    $youtubeurl=checkitall($_POST['youtubelink']);
    $text=nl2br(checkitall($_POST['devotext']));
    $mp4=$mp3=$image=$son='';
    if(empty($titre)){
        echo "Veuillez entrer le titre de la dévotion matinale";
        exit();
    }
    if(empty($text))
    {
        echo "Veuillez entrer le texte de la dévotion matinale";
        exit();
    }
        // test sur le fichier video de la devotion matinale

            if($videotype=="fichmp4"){
                if(isset($_FILES["filemp4"]["name"]))
                {
                    $temp = explode(".", $_FILES["filemp4"]["name"]);
                    $extension = end($temp);
                    $allowedExts = array("mp4");

                    if (($_FILES["filemp4"]["type"] == "video/mp4")
                        && ($_FILES["filemp4"]["size"] < 20000000)
                        && in_array($extension, $allowedExts))
                            {

                                if ($_FILES["filemp4"]["error"] > 0)
                                {
                                    echo "code d'erreur: " . $_FILES["filemp4"]["error"] . "<br>";
                                }
                                else{

                                    $dossier='';
                                    switch($typeadmin)
                                    {
                                        case"STMI":
                                        $dossier="../membres/ministeres/".$servid."/devo";
                                        break;

                                        case"STEG":
                                        $dossier="../membres/eglises/".$servid."/devo";
                                        break;

                                    }

                                        if(!file_exists($dossier) and !is_dir($dossier))
                                        mkdir($dossier);
                                            if (file_exists($dossier."/". $_FILES["filemp4"]["name"]))
                                                {
                                                    echo"<center>".$_FILES["filemp4"]["name"] . " la video existe d&eacute;j&agrave;.</center> ";
                                                }
                                                else{

                                                    move_uploaded_file($_FILES["filemp4"]["tmp_name"],
                                                    $dossier."/".$_FILES["filemp4"]["name"]);                                                       

                                                    $mp4=$dossier."/".$_FILES["filemp4"]["name"];

                                                    }
                                    }
                            }
                            else
                            {
                            echo "Le format ou la taille en megaoctet de la vidéo que vous avez choisis n'est pas pris en charge.Veuillez en changer.";
                            exit();
                            }
                }
                else
                {
                    echo"veuillez n'entrer qu'une seule vidéo soit le lien youtube ou le fichier mp4";
                    exit();
                }
            }

            // test video youtube
            if(!empty($youtubeurl) && !preg_match('@https?://(www\.)?youtube.com/.[^\s.,"\']+@i',$youtubeurl))
            {
                echo"L'url Youtube n'est pas valide";
                exit();
            }

                // enregistrement dans la base de données si tous les tests sont opérés et concluants
                try
                    {
                    require"connectionbd.php";
                    $teme='';
                        if(!empty($tema))
                        {
                            $req="insert into ad_theme (titre) values(:t)";
                            $res=$bdd->prepare($req);
                            $res->execute(array('t'=>$tema));
                            $req="select id from ad_theme where titre=:t";
                            $res=$bdd->prepare($req);
                            $res->execute(array('t'=>$tema));
                            $teme=$res->fetch(PDO::FETCH_OBJ);

                        }
                        $vidlnk=(empty($mp4) && !empty($youtubeurl))?$youtubeurl:$mp4;

                        if(!empty($vidlnk))
                            {
                                $req="insert into ad_video (lien,titre,categorie,date_ajout,ownerid) values(:l,:t,:c,:d,:o)";
                                $res=$bdd->prepare($req);
                                $res->execute(array('l'=>$vidlnk,'t'=>$titre,'c'=>'DEVOTION','d'=>date('Y-m-d'),'o'=>$servid));
                            }

                            $req="select count(id) from ad_devotion where titre=:t and ownerid=:oid";
                            $res=$bdd->prepare($req);
                            $res->execute(array('t'=>$titre,'oid'=>$servid));
                            $v=$res->fetchColumn();
                            if($v>0)
                            {
                                $req="delete from ad_devotion where titre=:t and ownerid=:oid";
                                $res=$bdd->prepare($req);
                                if($res->execute(array('t'=>$titre,'oid'=>$servid)))
                                {
                                    $req="select id from ad_video where titre=:t and ownerid=:oid and categorie='DEVOTION' ";
                                    $res=$bdd->prepare($req);
                                    $res->execute(array('t'=>$titre,'oid'=>$servid));
                                    $vid=$res->fetch(PDO::FETCH_OBJ);
                                    $req="select id from ad_audio where titre=:t and ownerid=:oid and genre='DEVOTION' ";
                                    $res=$bdd->prepare($req);
                                    $res->execute(array('t'=>$titre,'oid'=>$servid));
                                    $audio=$res->fetch(PDO::FETCH_OBJ);
                                    $req="insert into ad_devotion (titre,photo,type,video_id,audio_id,texte,theme,ownerid,date_ajout,valider,etat) values (:t,:p,:ty,:v,:a,:txt,:th,:o,:d,1,1)";
                                    $res=$bdd->prepare($req);
                                    if($res->execute(array('t'=>$titre,'p'=>$image,'ty'=>$type ,'v'=>(!empty($vid->id))?$vid->id:'','a'=>(!empty($audio->id))?$audio->id:'','txt'=>$text,'th'=>(!empty($teme->id))?$teme->id:$theme,'o'=>$servid,'d'=>date('Y-m-d'))))
                                    {
                                        echo 1;
                                    }
                                }
                            }
                            else
                            {
                                $req="select id from ad_video where titre=:t and ownerid=:oid and categorie='DEVOTION' ";
                                    $res=$bdd->prepare($req);
                                    $res->execute(array('t'=>$titre,'oid'=>$servid));
                                    $vid=$res->fetch(PDO::FETCH_OBJ);
                                    $req="select id from ad_audio where titre=:t and ownerid=:oid and genre='DEVOTION' ";
                                    $res=$bdd->prepare($req);
                                    $res->execute(array('t'=>$titre,'oid'=>$servid));
                                    $audio=$res->fetch(PDO::FETCH_OBJ);
                                    $req="insert into ad_devotion (titre,photo,type,video_id,audio_id,texte,theme,ownerid,date_ajout,valider,etat) values (:t,:p,:ty,:v,:a,:txt,:th,:o,:d,1,1)";
                                    $res=$bdd->prepare($req);
                                    if($res->execute(array('t'=>$titre,'p'=>$image,'ty'=>$type,'v'=>(!empty($vid->id))?$vid->id:'','a'=>(!empty($audio->id))?$audio->id:'','txt'=>$text,'th'=>(!empty($teme->id))?$teme->id:$theme,'o'=>$servid,'d'=>date('Y-m-d'))))
                                    {
                                        echo 1;
                                    }
                            }
                        }
                        catch(Exception $e)
                        {
                            die('Erreur : ' . $e->getMessage().' a la ligne '.$e->getLine().' dans le fichier '.$e->getFile());
                        }

}
?>

j'ai recopier ton message car je n'arrivai pas à lire ce que tu demandais,
ton code au dessus semble correct, et n'y ai pour rien, le soucis viens de ton formulaire ou le champ théme ne se remplis pas, avec le mp4, envoie nous le code source de ton formulaire.

Bonjour.
Commences déja par regarder ici : Manuel PHP » Gestion des chargements de fichiers.
Car $_FILES['type'] n'existe pas.