Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/01/2011, 16h03   #1
Membre du Club
 
Homme Stéphane A.
Inscription : décembre 2008
Messages : 287
Détails du profil
Informations personnelles :
Nom : Homme Stéphane A.
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Secteur : Distribution

Informations forums :
Inscription : décembre 2008
Messages : 287
Points : 67
Points : 67
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 :
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 :
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 :
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
runcafre91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2011, 16h14   #2
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 461
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 461
Points : 2 548
Points : 2 548
Envoyer un message via Skype™ à rawsrc
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.
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2011, 17h24   #3
Membre du Club
 
Homme Stéphane A.
Inscription : décembre 2008
Messages : 287
Détails du profil
Informations personnelles :
Nom : Homme Stéphane A.
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Secteur : Distribution

Informations forums :
Inscription : décembre 2008
Messages : 287
Points : 67
Points : 67
Bonjour,

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

Code :
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
runcafre91 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2011, 17h45   #4
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 461
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 461
Points : 2 548
Points : 2 548
Envoyer un message via Skype™ à rawsrc
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 :
$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 :
$Cat_ID, $Pho_Name, $Pho_Desc, $Pho_Res, $Pho_Size
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h12.


 
 
 
 
Partenaires

Hébergement Web