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

Langage PHP Discussion :

Problème de variable, erreur notice en pdo


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Points : 103
    Points
    103
    Par défaut Problème de variable, erreur notice en pdo
    Bonjour,

    Je voudrais mettre en place place un système de site de photos réparti en catégorie.
    Pour l'instant j'ai commencer mais j'ai un poblème concernant des erreurs qui s'affichent au fils de la création. Pour le momment je suis en local, j'utlise wamp et notepad++

    J'ai adopté le style MVC/PDO avec utilisation des classes

    J'ai les scripts suivants qui me posent problème :

    le chemin : sitewebperso\modules\albums\upload.php
    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
     
    <?php
     
    // Vérification des droits d'accès de la page
    if (utilisateur_est_connecte()) {
     
    	// On affiche la page d'erreur comme quoi l'utilisateur est déjà connecté   
    	include CHEMIN_VUE_GLOBALE.'erreur_deja_connecte.php';
     
    } else {
     
     
    // Ne pas oublier d'inclure la librarie Form
    include CHEMIN_LIB.'form.php';
     
    // "formulaire_upload" est l'ID unique du formulaire
    $form_upload = new Form('formulaire_upload');
     
    $form_upload->method('POST');
    $form_upload->enctype('enctype');
     
    $form_upload->add('File', 'Pho_Name')
                     ->filter_extensions('jpg', 'png', 'gif')
                     ->max_size(8192) // 8 Kb
                     ->label("Votre photo (facultatif)")
                     ->Required(false);
     
    $form_upload->add('Text', 'Pho_Desc ')
                     ->label("Commenter votre photo");				 
     
     
     
     
     
    $form_upload->add('Submit', 'submit')
                     ->value("J'envoi ma photo !");
     
    // Pré-remplissage avec les valeurs précédemment entrées (s'il y en a)
    $form_upload->bound($_POST);
     
     
    // Création d'un tableau des erreurs
    $erreurs_upload = array();
     
    // Validation des champs suivant les règles en utilisant les données du tableau $_POST
    if ($form_upload->is_valid($_POST)) {
     
    	// Si d'autres erreurs ne sont pas survenues
    	if (empty($erreurs_upload)) {
     
    		// Traitement du formulaire à faire ici
     
    	} else {
     
    		// On affiche à nouveau le formulaire d'inscription
    		include CHEMIN_VUE.'formulaire_upload.php';
    	}
     
    } else {
     
    	// On affiche à nouveau le formulaire d'inscription
    	include CHEMIN_VUE.'formulaire_upload.php';
    }
     
    // On veut utiliser le modele de l'upload (~/modeles/uploader.php)
    include CHEMIN_MODELE.'uploader.php';
     
    // ajouter_photo() est défini dans ~/modeles/uploader.php
    $Pho_ID = ajouter_photo($Cat_ID, $Pho_Name, $Pho_Desc, $Pho_Res, $Pho_Size);
    	}
    Mon modèle : sitewebperso\modeles\uploader.php
    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
     
     
    <?php
     
    function ajouter_categorie($Cat_Name, $Cat_Desc) 
    {
     
    	$pdo = PDO2::getInstance();
     
    	$requete = $pdo->prepare("INSERT INTO CategoriePhoto SET
    		Cat_Name = :Cat_Name,
    		Cat_Desc = :Cat_Desc,
    		date = NOW()");
     
    	$requete->bindValue(':Cat_Name', $Cat_Name);
    	$requete->bindValue(':Cat_Desc',    $Cat_Desc);
     
    	if ($requete->execute()) {
     
    		return $pdo->lastInsertId();
    	}
    	return $requete->errorInfo();
    }
     
    function ajouter_photo($Cat_ID, $Pho_Name, $Pho_Desc, $Pho_Res, $Pho_Size) 
    	{
     
    	$pdo = PDO2::getInstance();
     
    	$requete = $pdo->prepare("INSERT INTO Photo SET
    		Pho_ID = :Pho_ID,
    		Cat_ID = :Cat_ID,
    		Pho_Name = :Pho_Name,
    		Pho_Desc = :Pho_Desc,
    		Pho_Res = :Pho_Res,
    		Pho_Size = :Pho_Size,
    		date = NOW()");
     
    	$requete->bindValue(':Pho_ID', $Pho_ID);
    	$requete->bindValue(':Cat_ID', $Cat_ID);
    	$requete->bindValue(':Pho_Name', $Pho_Name);
    	$requete->bindValue(':Pho_Desc', $Pho_Desc);
    	$requete->bindValue(':Pho_Res', $Pho_Res);
    	$requete->bindValue(':Pho_Size', $Pho_Size);
     
    	if ($requete->execute()) {
     
    		return $pdo->lastInsertId();
    	}
    	return $requete->errorInfo();
    	}
    La structure de mes 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
     
     
    CREATE TABLE `CatégoriePhoto` (
      `Cat_ID` smallint(6) NOT NULL auto_increment,
      `Cat_Name` varchar(80) NOT NULL,
      `Cat_Desc` tinytext,
      `Date` date default NULL,
      `Time` time default NULL,
      PRIMARY KEY  (`Cat_ID`)
    );
     
    CREATE TABLE `Photo` (
      `Pho_ID` smallint(6) NOT NULL auto_increment,
      `Cat_ID` smallint(6) NOT NULL,
      `Pho_Name` varchar(80) NOT NULL,
      `Pho_Desc` tinytext,
      `Pho_Res` varchar(20) default NULL,
      `Pho_Size` smallint(6) default NULL,
      `Date` date default NULL,
      `Time` time default NULL,
      PRIMARY KEY  (`Pho_ID`)
    );
    Je vous met ci-joint une capture écran avec les erreurs qui s'affichent concernant les variable que j'ai

    Je vous remerci de votre aide

  2. #2
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    A première vue tu ne ne fais jamais référence aux variables $Cat_ID, $Pho_Name, $Pho_Desc, $Pho_Res, $Pho_Size. Elles sont toutes à NULL d'où les messages d'erreurs.

    Il me semble qu'il te faille à un endroit lier le contenu de $_POST à ces variables non ? Je ne vois aucun bout de code qui fasse cette tâche.

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Points : 103
    Points
    103
    Par défaut
    Bonjour,

    Merci pour votre réponse, ces valeur je les aient bien défini dans la fonction d'ajout :

    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
     
     
    <?php
     
    function ajouter_categorie($Cat_Name, $Cat_Desc) 
    {
     
    	$pdo = PDO2::getInstance();
     
    	$requete = $pdo->prepare("INSERT INTO CategoriePhoto SET
    		Cat_Name = :Cat_Name,
    		Cat_Desc = :Cat_Desc,
    		date = NOW()");
     
    	$requete->bindValue(':Cat_Name', $Cat_Name);
    	$requete->bindValue(':Cat_Desc',    $Cat_Desc);
     
    	if ($requete->execute()) {
     
    		return $pdo->lastInsertId();
    	}
    	return $requete->errorInfo();
    }
     
    function ajouter_photo($Cat_ID, $Pho_Name, $Pho_Desc, $Pho_Res, $Pho_Size) 
    	{
     
    	$pdo = PDO2::getInstance();
     
    	$requete = $pdo->prepare("INSERT INTO Photo SET
    		Pho_ID = :Pho_ID,
    		Cat_ID = :Cat_ID,
    		Pho_Name = :Pho_Name,
    		Pho_Desc = :Pho_Desc,
    		Pho_Res = :Pho_Res,
    		Pho_Size = :Pho_Size,
    		Date = NOW(),
    		Time = NOW()");
     
    	$requete->bindValue(':Pho_ID', $Pho_ID);
    	$requete->bindValue(':Cat_ID', $Cat_ID);
    	$requete->bindValue(':Pho_Name', $Pho_Name);
    	$requete->bindValue(':Pho_Desc', $Pho_Desc);
    	$requete->bindValue(':Pho_Res', $Pho_Res);
    	$requete->bindValue(':Pho_Size', $Pho_Size);
     
    	if ($requete->execute()) {
     
    		return $pdo->lastInsertId();
    	}
    	return $requete->errorInfo();
    	}
    Je vois pas trop ou les redéclarer

    merci de votre aide

    Runcafre91

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Dans la fonction d'ajout tu ne lies pas les valeurs aux variables. Tu lies des valeurs passées en argument à la fonction aux paramètres de la requête.

    Or le problème c'est que tes arguments sont tous NULL. Quand tu exécutes cet appel dans upload.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Pho_ID = ajouter_photo($Cat_ID, $Pho_Name, $Pho_Desc, $Pho_Res, $Pho_Size);
    Aucunes des variables n'est initialisée dans ton code. Donc tu dois vérifier en amont de cette ligne si dans une tes routines tu affectes explicitement une valeur à ces variables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $Cat_ID, $Pho_Name, $Pho_Desc, $Pho_Res, $Pho_Size

Discussions similaires

  1. PHP5 et erreur Notice :Undefined variable
    Par bypbop dans le forum Langage
    Réponses: 5
    Dernier message: 17/03/2013, 00h55
  2. [MySQL] Erreur : Resource id #5 (problème affichage variable)
    Par bond70 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 28/04/2010, 15h26
  3. [PHP 5.3] Erreur -> Notice: Undefined variable: status
    Par donaldf dans le forum Langage
    Réponses: 2
    Dernier message: 21/01/2010, 19h03
  4. [servlet]problème de variable jamais nulle
    Par omega dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 18/03/2004, 09h31

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