Declaration de variable php

Résolu/Fermé
serenity - 10 août 2010 à 11:47
 serenity - 16 août 2010 à 14:00
Bonjour,

Soit la déclaration de variable suivante:

$marque=htmlspecialchars($_POST['marque']);
$num_serie=htmlspecialchars($_POST['serial_number']);
$num_inventaire=htmlspecialchars($_POST['inventory_number']);
$size_hdd=htmlspecialchars($_POST['size_hdd']);
$size_memory=htmlspecialchars($_POST['size_memory']);
$garantis=htmlspecialchars($_POST['garantis']);
$entrees=htmlspecialchars($_POST['date_debut']);
$exit=htmlspecialchars($_POST['date_fin']);
$dt_livraison=htmlspecialchars($_POST['date_livraison']);
$enregistrement = date('Y-m-d').''.date('H-M');
$coms=htmlspecialchars($_POST['commentaire']);


Message d'erreur :
Notice: Undefined index: nomfsseur in C:\wamp\www\apx_parc_informatique\ajout.php on line 186

Notice: Undefined index: model in C:\wamp\www\apx_parc_informatique\ajout.php on line 187



Notice: Undefined index: marque in C:\wamp\www\apx_parc_informatique\ajout.php on line 196

Notice: Undefined index: serial_number in C:\wamp\www\apx_parc_informatique\ajout.php on line 197

Notice: Undefined index: inventory_number in C:\wamp\www\apx_parc_informatique\ajout.php on line 198

Notice: Undefined index: size_hdd in C:\wamp\www\apx_parc_informatique\ajout.php on line 199

Notice: Undefined index: size_memory in C:\wamp\www\apx_parc_informatique\ajout.php on line 200

Notice: Undefined index: garantis in C:\wamp\www\apx_parc_informatique\ajout.php on line 201

Notice: Undefined index: date_debut in C:\wamp\www\apx_parc_informatique\ajout.php on line 202

Notice: Undefined index: date_fin in C:\wamp\www\apx_parc_informatique\ajout.php on line 203

Notice: Undefined index: date_livraison in C:\wamp\www\apx_parc_informatique\ajout.php on line 204

Notice: Undefined index: commentaire in C:\wamp\www\apx_parc_informatique\ajout.php on line 206

J'ai dû oublier quelque chose mais j'ais du mal à voir.

Pouvez vous me mettre sur la voie

11 réponses

mlelievr Messages postés 85 Date d'inscription mercredi 3 septembre 2008 Statut Membre Dernière intervention 3 mai 2012 5
10 août 2010 à 11:49
Faudrait voir tout le code, et savoir les lignes par ce que la variable a la ligne 186 on la vois pas...
0
ne tient pas compte de numéro de ligne mais du code dans son ensemble.
J'ai poste le formulaire corespondant au variable
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
10 août 2010 à 11:58
essayes comme ca:
if (isset($_POST['marque']))
    $marque=htmlspecialchars($_POST['marque']); 
else
    $marque = "erreur"; 
0
bonjour ,
meçi pour ton aide,
j'ai adapter le début de code que tu m'as données mais l'erreur persiste ,
c'est peut au niveau du formulaire donc .
Je poste le formouliare correspondant aux variables prédéfinis.




echo "<fieldset class='fieldset'>";

echo "<div id='center'><span class='violet'><h3>Ajout Matériel</h3></<span></div>";

echo "<table id='Admingauche' align='center'>";

echo "<tr>
<tr>
<td><div><label for ='nomfsseur'><b>Nom Fournisseur :</b></label></td><td><input name='nomfsseur' type='text' /><span class='rouge'>*</span></div></td>
</tr>";

echo " <tr>
<td><div><label for ='model'><b>Model :</b></label></td><td><input id='model' name='model' type='text' /><span class='rouge'>*</span></div></td>
</tr>";

echo " <tr>
<td><div><label for='marque'><b>Marque :</b></label></td><td><input id='marque' name='marque' type='text' /></div></td>
</tr>";

echo " <tr>
<td><div> <label for='serial_number'><b>N° Serie :</b></label></td><td><input id='serial_number' name='serial_number' type='text' /></div></td>
</tr>

echo "<tr>
<td><div><label for='inventory_number'><b>N°Inventaire :</b></label></td><td><input type='text' id='inventory_number' name='inventory_number' /></div></td>
</tr>";

echo " <tr>
<td><div><label for='size_hdd'><b>Taille disque dur :</b></label></td><td><input id='size_hdd' name='size_hdd' type='text' /></div> </td>
</tr>";

echo" <tr>
<td><div><label for='size_memory'><b>Taille Mémoire :</b></label></td><td><input id='size_memory' name='size_memory' type='text' /></div></td>
</tr>";

echo " <tr>
<td><div><label for ='garantis'><b>Garantis :</b></label></td><td><input id='garantis' name='garantis' type='text' /></div></td>
</tr>";

echo " <tr>
<td><div><label for ='date_debut'><b>Entrée :</b></label></td><td><input id='date_debut' name='date_debut' type='text' /></div></td>
</tr>";

echo " <tr>
<td><div><label for ='date_fin'><b>Sortie :</b></label></td><td><input id='date_fin' name='date_fin' type='text' /></div></td>
</tr>";

echo " <tr>
<td><div><label for ='date_livraison'><b>Livraison Effectué le :</b></label></td><td><input id='date_livraison' name='date_livraison' type='text' /></div></td>
</tr>";

echo " <tr>
<td><div><label for ='commentaire'><b>Commentaire :</b></label></td><td><textarea id='commentaire' name='commentaire' rows ='4' cols='10'></textarea></div></td>
</tr>";

echo " <tr>
<td><div class='buttons' ><input type='submit' name='ajout' value= 'Ajouter' /></div> </td>
</tr>";

echo " </tr></table>";

echo "</fieldset>";

echo "<a href='index.php?id_page=32'><b>Retour</b></a>";

if(!isset($_POST['nomfsseur']) && !isset($_POST['model']))
{
$fournisseur =htmlspecialchars($_POST['nomfsseur']);
$model=htmlspecialchars($_POST['model']);

if(!isset($_POST['marque']) || !isset($_POST['serial_number']) || !isset($_POST['inventory_number']) || !isset($_POST['size_hdd']) || !isset($_POST['size_memory']) || !isset($_POST
['garantis']) || !isset($_POST['date_debut']) || !isset($_POST['date_fin']) || !isset($_POST['date_livraison']) || !isset($_POST['commentaire']))
{
//====htmlspecialchars: pour gérer les caractère spéciaux entré dans un formulaire====//


$marque=htmlspecialchars($_POST['marque']);
$num_serie=htmlspecialchars($_POST['serial_number']);
$num_inventaire=htmlspecialchars($_POST['inventory_number']);
$size_hdd=htmlspecialchars($_POST['size_hdd']);
$size_memory=htmlspecialchars($_POST['size_memory']);
$garantis=htmlspecialchars($_POST['garantis']);
$entrees=htmlspecialchars($_POST['date_debut']);
$exit=htmlspecialchars($_POST['date_fin']);
$dt_livraison=htmlspecialchars($_POST['date_livraison']);
$enregistrement=date('o-m-d').''.date('H:i:s');
$coms=htmlspecialchars($_POST['commentaire']);


if(!empty($fournisseur) && !empty($model))
{

//construction de la requête d'insertion
$req="INSERT INTO gestion_materiel (nom_fournisseur,model,marque,sn,inventory_number,taille_hdd,taille_memoire,garantis,date_debut,date_fin,date_livraison,
enregistrement,commentaire)
VALUES('$fournisseur','$model','$marque','$num_serie','$num_inventaire','$size_hdd','$size_memory','$garantis','$entrees','$exit','$dt_livraison','$enregistrement', '$coms')";

..............................................
if(!isset($resultat))
{

........................................................................


}else
{
....................................................................
}
}
}else
{ $formulaire="erreur";
$model="erreur";
$marque="erreur";
$num_serie="erreur";
$num_inventaire="erreur";
$size_hdd="erreur";
$size_memory="erreur";
$garantis="erreur";
$entrees="erreur";
$exit="erreur";
$dt_livraison="erreur";
$enregistrement="erreur";
$coms="erreur";

echo "<h2> Veuillez complétez le formulaire !!! <h2> ";
}
}
0
je ne l'ai pas oublier mais je l'ai juste omis car ellle y est dans le code d'origine.
Je vous la mets donc :
echo "<form action='index.php?id_page=26' method='post' id='centre' >";
echo "</form>";

voilà
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
Modifié par Nabla's le 10/08/2010 à 15:52
j'espere que les balises input se trouvent bien entre les deux form...

au^pire, fais un essai en changeant dans ces balises la methode: mets GET
si quand ca essaye de charger la page tu vois els parametres dans ton URL, c'est que le pb vient pas du formulaire, sinon, c'est qu'il y a un pb de formulaire
0
Leviathan49 Messages postés 257 Date d'inscription jeudi 10 juin 2010 Statut Membre Dernière intervention 22 juillet 2011 70
10 août 2010 à 13:59
Vu qu'apparemment aucune de tes variables n'a l'air d'être transmisse c'est soit :
- fait exprès : dans ce cas utilise le code de Nabla's.
- une erreur : il faudrait nous montrer le formulaire d'où sont censées venir les données.
0
en effet, peut une erreur car quand la requête s'execute elle rentre des données vides soit une ligne créé avec aucune données.
dont inutile.
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
10 août 2010 à 15:34
dans ton code, je ne vois pas de balise <form> </form> pour entourer ton formulaire ....
0
j'ai mal lu ou tu a oublié les balises <form> </form> ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
10 août 2010 à 15:54
bha,c 'est bon, je croi que j'ai mis le doigt sur la c*uille qui traine dans le potage....
><input name='nomfsseur' type='text' />

désolé, mais t'es pas en php ma caille ;) ' et " c'est différent...
remplaces tous tes ' par des "... comme ca:

><input name="nomfsseur"type="text" />
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
10 août 2010 à 15:55
ha puis c'est pas qu'une petite erreur, ca traine partout dans le code ;)

bon, allé, on va dire que t'as trop fait la fete hiers, que t'es encore un peu dans les choux, ca m'arrive souvent :D
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
10 août 2010 à 15:58
ha oui, comme t'as mis ca dans des echo (c'es tun peu idio, au lieu de mettre tout ces echo, t'aura du fermer la balise php, et mettre directement le code html vu que ton formulaire n'est pas du tout dynamique, et ensuite repasser en <?php une fois le formulaire passé ...

sinon, au lieu de faire echo "<balba tarata='k'> .....";
tu fais echo '<balba tarata="k"> .....';
0
je test t je te dis le résultat :)
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
10 août 2010 à 16:10
moi je met mon honneur en HTML là dessus .... (bon, en meme temps, le html c'est pas mon domaine, je risque pas grand chose)
0
qd je remplace même en rempla ' par " dans le input tout en remplançant " par ' dans echo '....'
les même erreur persiste.
si on mais le meme sigle partout le reste du formulaire et au delà se grise comme si j'allais concacatener le reste du cote

voici le formilaire arrangé:

echo '<form action="index.php?id_page=32" method="post" id="centre" >';

echo '<fieldset class="fieldset">';

echo '<div id="center"><span class="violet"><h3>Ajout Matériel</h3></<span></div>"';

echo '<table id="Admingauche align="center">';

echo '<tr>
<tr>
<td><div><label for ="nomfsseur"><b>Nom Fournisseur :</b></label></td><td><input name="nomfsseur" type="text" /><span class="rouge">*</span></div></td>
</tr>';

echo ' <tr>
<td><div><label for ="model"><b>Model :</b></label></td><td><input id="model" name="model" type="text" /><span class="rouge">*</span></div></td>
</tr>';

echo ' <tr>
<td><div><label for="marque"><b>Marque :</b></label></td><td><input id="marque" name="marque" type="text" /></div></td>
</tr>';

echo ' <tr>
<td><div> <label for="serial_number"><b>N° Serie :</b></label></td><td><input id="serial_number" name="serial_number" type="text" /></div></td>
</tr>';


echo ' <tr>
<td><div><label for="inventory_number"><b>N°Inventaire :</b></label></td><td><input type="text" id="inventory_number" name="inventory_number" /></div></td>
</tr>';

echo ' <tr>
<td><div><label for="size_hdd"><b>Taille disque dur :</b></label></td><td><input id="size_hdd" name="size_hdd" type="text" /></div> </td>
</tr>';

echo '<tr>
<td><div><label for="size_memory"><b>Taille Mémoire :</b></label></td><td><input id="size_memory" name="size_memory" type="text" /></div></td>
</tr>';

echo ' <tr>
<td><div><label for ="garantis"><b>Garantis :</b></label></td><td><input id="garantis" name="garantis" type="text" /></div></td>
</tr>';

echo ' <tr>
<td><div><label for =\'date_debut\'><b>Entrée :</b></label></td><td><input id=\'date_debut\' name=\'date_debut\' type=\'text\' /></div></td>
</tr>';

echo ' <tr>
<td><div><label for ="date_fin"><b>Sortie :</b></label></td><td><input id="date_fin" name="date_fin" type="text" /></div></td>
</tr>';

echo ' <tr>
<td><div><label for ="date_livraison"><b>Livraison Effectué le :</b></label></td><td><input id="date_livraison" name="date_livraison" type="text" /></div></td>
</tr>';

echo ' <tr>
<td><div><label for ="commentaire"><b>Commentaire :</b></label></td><td><textarea id="commentaire" name="commentaire" rows ="4" cols="10"></textarea></div></td>
</tr>';

echo ' <tr>
<td><div class="buttons" ><input type="submit" name="ajout" value= "Ajouter" /></div> </td>
</tr>';

echo '</tr></table>';

echo '</fieldset>';

//echo '<a href="index.php?id_page=32"><b>Retour</b></a>';

echo '</form>';


Je le metterais dans une variable comme je l'avais fais au départ et je regarderais les attribus du formulaire sont lu par mes variable
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
11 août 2010 à 10:51
bon, on va dire que cette partie du code est bonne, parce qu'elle me gave....

généralement, quand on programme, quand oon nous dit une erreur, si la ligne est juste, on regarde juste au dessus.

voila le code auquel je vais m'interesser

if(!isset($_POST['nomfsseur']) && !isset($_POST['model'])) 
{ 
$fournisseur =htmlspecialchars($_POST['nomfsseur']); 
$model=htmlspecialchars($_POST['model']); 

if(!isset($_POST['marque']) || !isset($_POST['serial_number']) || !isset($_POST['inventory_number']) || !isset($_POST['size_hdd']) || !isset($_POST['size_memory']) || !isset($_POST 
['garantis']) || !isset($_POST['date_debut']) || !isset($_POST['date_fin']) || !isset($_POST['date_livraison']) || !isset($_POST['commentaire'])) 
{ 
//====htmlspecialchars: pour gérer les caractère spéciaux 



dans le premier if. tu fais un !isset sur model. il y a le ! de negation .... ca veut dire si machin n'est pas défini.... et 2 lignes plus tard, tu utilises le champ alors qu'il n'est pas défini ... Il y a un problème là

ensuite, tu fais un :
if(!isset($_POST['marque']) || !isset($_POST['serial_number']) ....
qui veut dire: si marque n'est pas défini, ou serial_number n'est pas défini ....
en gros tu fais ce traitement que si t'as un champ qui n'est pas défini? Je comprend pas la logique. Pour moi, tu devrai avoir des isset, sans negation, et pas de || (ou) mais que des && (et) ...

en gros, tu dis "si il y a un champ qui merdouille" => on traite les champs.
alors que tu devrais faire à la limite "si il y a un champ qui merdouille" => on met un message d'erreur, "sinon" => on traite.

bref, je pense qu'il y a des choses à revoir dans le code ....
0
je revoie cette parti je te tien au courant
0
le isset : definie un variable non null
a savoir que null != empty()

!isset c'est si la variable trouvé = null

|| au lieu de && car je ne voulais pas obliger tout les champ à etre = à null
0
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
Modifié par Apatik le 11/08/2010 à 11:30
Euh.. Serenity, tu vas tuer notre Nabla's là =)
Tu à 3 cas possibles

-Ta variable n'est pas définie 
if (isset $var) te retournera false 
if (!isset $var) te retournera true 

-Ta variable est vide: $var=""; 
if (isset $var) te retournera true 
if (!isset $var) te retournera false 
if (ifempty$var) te retournera true 
if (!ifempty($var) te retournera false 

-Ta variable à une valeur: $var=toto. 
if (isset $var) te retournera true 
if (!isset $var) te retournera false 
if (ifempty$var) te retournera false 
if (!ifempty($var) te retournera true



Tu dois donc mettre un:

if ((isset $var1) && (isset $var2) && (isset $var3)) 
{ on traite } 
else 
{ erreur}


C'est plus clair?
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
11 août 2010 à 11:36
isset dit si la variable existe ou pas. Dans la mesure ou ton formulaire contient le champ, la variable existera forcément (la preuve, elle se retrouvent dans ton URL quand t'es en GET. Donc a priori, dans tous les cas, si tu viens de ce formulaire, tes variables serotn definies. En revanche, comme tu le souligne, elles peuvent être vides ...


insères ceci en haut de ton code de traitement:

foreach($_POST as $keyname=>$value) {
print "POST_['".$keyname."'] = ".$value;
}

je sais pas si ca marche, mais bon ...

et je persiste, ta gestion du if n'est pas bonne du tout !
0
ok je test
0
Apatik - 11 aoû 2010 à 11:29
Nous avons déja essayé cette possiblité

Nabla's - 11 aoû 2010 à 11:36
Je suis d'accord avec toi pour la mauvaise gestion du if donc je l'ai réécri
j'espère que je ne t'épuise pas trop.:)
0
Nabla's

je de t'envoie le code modifié dis mis si tu trouve des erreurs surtout au niveau du dernier bloc que tu m'as envoyé:

......................................................................................................
if (isset($_POST['ajout'])!='Ajouter')
{ // déclaration de variable à refaire


if(!isset($_POST['nomfsseur']) && !isset($_POST['model']) && !isset($_POST['marque']) && ! isset($_POST['serial_number']) && !isset($_POST['inventory_number']) && !isset($_POST['size_hdd']) && !isset($_POST['size_memory']) && !isset($_POST['garantis']) && !isset($_POST['date_debut']) && !isset($_POST['date_fin']) && !isset($_POST['date_livraison']) && !isset($_POST['commentaire']))
{

............................................................................................




//====htmlspecialchars: pour gérer les caractère spéciaux entré dans un formulaire====//

$fournisseur =htmlspecialchars($_POST['nomfsseur']);//access procedure php 4
$model=htmlspecialchars($_POST['model']);
$marque=htmlspecialchars($_POST['marque']);
$num_serie=htmlspecialchars($_POST['serial_number']);
$num_inventaire=htmlspecialchars($_POST['inventory_number']);
$size_hdd=htmlspecialchars($_POST['size_hdd']);
$size_memory=htmlspecialchars($_POST['size_memory']);
$garantis=htmlspecialchars($_POST['garantis']);
$entrees=htmlspecialchars($_POST['date_debut']);
$exit=htmlspecialchars($_POST['date_fin']);
$dt_livraison=htmlspecialchars($_POST['date_livraison']);
$enregistrement=date('o-m-d').''.date('H:i:s');
$coms=htmlspecialchars($_POST['commentaire']);

//===verifie les valeurs envoyés part $_POST=====//
foreach ($_POST as $keyname=>$value) {
print "POST_['".$keyname."'] = ".$value;

}
if(!empty($fournisseur) && !empty($model))
{
................................................
Je m'en vais déjeuner à tout à l'heure :)

PS: merci pour tes explications précieuses.
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
11 août 2010 à 13:38
tiens, change le bout de code ou t'as les erreurs avec ca:


$erreur = "nabla il dit que ca plante sur ce champs non renseigné dans ton formulaire : champ ";


if isset($_POST['nomfsseur']) $fournisseur = htmlspecialchars($_POST['nomfsseur']) else die($erreur."nomfsseur ");
if isset($_POST['model']) $model= htmlspecialchars($_POST['model']) else die($erreur." model");
if isset($_POST['marque']) $marque= htmlspecialchars($_POST['marque']) else die($erreur."marque ");
if isset($_POST['serial_number']) $num_serie= htmlspecialchars($_POST['serial_number']) else die($erreur."serial_number ");
if isset($_POST['inventory_number']) $num_inventaire= htmlspecialchars($_POST['inventory_number']) else die($erreur."inventory_number ");
if isset($_POST['size_hdd']) $size_hdd=htmlspecialchars($_POST['size_hdd']) else die($erreur."size_hdd ");
if isset($_POST['size_memory']) $size_memory= htmlspecialchars($_POST['size_memory']) else die($erreur."size_memory ");
if isset($_POST['garantis']) $garantis= htmlspecialchars($_POST['garantis']) else die($erreur."garantis ");
if isset($_POST['date_debut']) $entrees= htmlspecialchars($_POST['date_debut']) else die($erreur."date_debut ");
if isset($_POST['date_fin']) $exit= htmlspecialchars($_POST['date_fin']) else die($erreur."date_fin ");
if isset($_POST['date_livraison'])$dt_livraison= htmlspecialchars($_POST['date_livraison']) else die($erreur."date_livraison ");
$enregistrement=date('o-m-d').''.date('H:i:s');
if isset($_POST['commentaire']) $coms= htmlspecialchars($_POST['commentaire']) else die($erreur."commentaire ");




puis tu seras sympa de faire 2 tests: un comme tu les fais avant, et un en remplissant tous tes champs ...

ha, et un truc. Quand tu nous poste le code, utilises les balises < code > , histoire qu'on ai l'indentation, car si je dois compter les accolades pour les tests, ca le fera pas du tout

et heu, juste comme ca... j'ai toujorus pas l'imrpession que ton if soit bon

moi je susi chaud pour ca:
if(isset($_POST['nomfsseur']) && isset($_POST['model']) && isset($_POST['marque']) && isset($_POST['serial_number']) && isset($_POST['inventory_number']) && isset($_POST['size_hdd']) && isset($_POST['size_memory']) && isset($_POST['garantis']) && isset($_POST['date_debut']) && isset($_POST['date_fin']) && isset($_POST['date_livraison']) && isset($_POST['commentaire']))
==> donc avec AUCUN point d'exclamation.

petite question subsidiaire, depuis combien de temps programmes tu ?
0
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
11 août 2010 à 13:45
Ouep Nabla, son if est toujours le contraire.. avant il éxécuté le script si il y avait au moins une erreur, maintenant faut que tout soit faux.

@serenity: si tu avais essayé ma sollution, ton if serais bon ;)
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
11 août 2010 à 13:56
avec ce que j'avais donné plus haut:
https://forums.commentcamarche.net/forum/affich-18787137-declaration-de-variable-php#2
c'était bon ;) ses champs en erreur auraient pris la valeur "erreur", et ca aurai été torched ...
0
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
11 août 2010 à 14:13
Ouep, mais il a pas fait :D
Y z'écoutent plus rien ces jeunes...
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
11 août 2010 à 14:48
bon, je croi que je vais me remettre un peu au travail. j'essayerai ce soir de jetter un oeil sur ton code, si j'ai le temps, sinon n'hésites pas à me relancer un autre jour. De ton coté cherche un peu (si je continue à te faire faire tous les tests, je vais passer sur la première page du classement des membres ;) )

chez moi je tourne aussi sur WAMP, donc on sera a priori dans les memes conditions. Ici, au boulot, de toute facon, je peux pas tester le code que je t'envoi ....

Tu m'enverras avant 18h tout ton code à la sutie du présent message, dans l'état ou il sera, en séparant bien les fichiers, et en utilisant les balises CODE (les < > dans l'edition du message). C'est beaucoup plus facile pour la lecture des gens qui t'aident .

sur ce je te dis bon courrage, et peut etre à ce soir, disons quelque part entre 18h30 et 23h !
0
ok, je continue à chercher je te te donnerais le code en entier après la fin d mes recherche,
bon courage aussi et à bientôt.
Je te te tiendrais au courant si je trouve quelque chose de nouveau :).
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
11 août 2010 à 15:07
ha ben j'espère bien que tu me tiendra au courant ;)
0
je te mets le code en entier afin que tu puisse le tester toi même quand tu aura un peux de temps, et me diresi tu trouve des erreurs, bonne lecture:


l'affichage entre le bloc code n'est pas fameux mais j'essaie de te le poster correctement:


function tInsertion(){
	//Formulaire dynamique.
				
	echo '<form action="index.php?id_page=33" method="POST" id="centre" >
				
	<fieldset class="fieldset">
				
	<div id="center"><span class="violet"><h3>Ajout Matériel</h3></<span></div>
				
	<table id="Admingauche align="center">
	<tr>
	     <tr>
	         <td><div><label for ="nomfsseur"><b>Nom   Fournisseur :</b></label></td><td><input name="nomfsseur" type="text" /><span class="rouge">*</span></div></td>
	       </tr>
				
	       <tr>
	          <td><div><label for ="model"><b>Model :</b></label></td><td><input id="model" name="model" type="text" /><span class="rouge">*</span></div></td>
	      </tr>
				
	      <tr>
	        <td><div><label for="marque"><b>Marque :</b></label></td><td><input id="marque" name="marque" type="text" /></div></td>
	     </tr>
				
	     <tr>
	          <td><div> <label for="serial_number"><b>N° Serie :</b></label></td><td><input id="serial_number" name="serial_number" type="text" /></div></td>
	     </tr>		
						
	      <tr>
	         <td><div><label for="inventory_number"><b>N°Inventaire :</b></label></td><td><input type="text" id="inventory_number" name="inventory_number" /></div></td> 
	       </tr>
				
	       <tr>
	           <td><div><label for="size_hdd"><b>Taille disque dur :</b></label></td><td><input id="size_hdd" name="size_hdd" type="text" /></div> </td>
	       </tr>
				
	        <tr>
	           <td><div><label for="size_memory"><b>Taille Mémoire :</b></label></td><td><input id="size_memory" name="size_memory" type="text" /></div></td>
	        </tr>
							
	     <tr>
	        <td><div><label for ="garantis"><b>Garantis :</b></label></td><td><input id="garantis" name="garantis" type="text" /></div></td>
	     </tr>
									
	     <tr>
	       <td><div><label for =\'date_debut\'><b>Entrée :</b></label></td><td><input id=\'date_debut\' name=\'date_debut\' type=\'text\' /></div></td>
	     </tr>
									
	    <tr>
	       <td><div><label for ="date_fin"><b>Sortie :</b></label></td><td><input id="date_fin" name="date_fin" type="text" /></div></td>
	     </tr>
				
	    <tr>
	         <td><div><label for ="date_livraison"><b>Livraison Effectué le :</b></label></td><td><input id="date_livraison" name="date_livraison" type="text" /></div></td>
	     </tr>
                          <tr>
                                 <td><div><label for ="commentaire"><b>Commentaire :</b></label></td><td><textarea id="commentaire" name="commentaire" rows ="4" cols="10"></textarea></div></td>
                          </tr>
					
                           <tr>			
                             <td><div class="buttons"><button type="submit" name="bouton_ajout"><img src="images/b_add.png" /> Ajouter</button></div></td>	
	        </tr>
					
	        </tr></table>
				
	    </fieldset>
	<div id="center"><a href="index.php?id_page=32"><b>Retour</b></a></div>
          </form>';
			
         if (isset($_POST['ajout'])!='Ajouter')
         {	// déclaration de variable à refaire
					
	if(isset($_POST['nomfsseur']) && isset($_POST['model']) && isset($_POST['marque']) && isset($_POST['serial_number']) && isset($_POST['inventory_number']) && isset($_POST['size_hdd']) && isset($_POST['size_memory']) && isset($_POST['garantis']) && isset($_POST['date_debut']) && isset($_POST['date_fin']) && isset($_POST['date_livraison']) && isset($_POST['commentaire'])){		
			//====test de variables====//
	$formulaire="erreur";
	$model="erreur";
	$marque="erreur";
	$num_serie="erreur";
	$num_inventaire="erreur";
	$size_hdd="erreur";
	$size_memory="erreur";
	$garantis="erreur";
	$entrees="erreur";
	$exit="erreur";
	$dt_livraison="erreur";
	//$enregistrement="erreur";
	$coms="erreur";
							
	echo "<h2> Veuillez complétez le formulaire !!! <h2> ";
				
             }else
            {
							
							//====htmlspecialchars: pour gérer les caractère spéciaux entré dans un formulaire====//
								
								$fournisseur=htmlspecialchars($_POST['nomfsseur']);//access procedure php 4
								$model=htmlspecialchars($_POST['model']);
								$marque=htmlspecialchars($_POST['marque']);
								$num_serie=htmlspecialchars($_POST['serial_number']);
								$num_inventaire=htmlspecialchars($_POST['inventory_number']);
								$size_hdd=htmlspecialchars($_POST['size_hdd']);
								$size_memory=htmlspecialchars($_POST['size_memory']);
								$garantis=htmlspecialchars($_POST['garantis']);
								$entrees=htmlspecialchars($_POST['date_debut']);
								$exit=htmlspecialchars($_POST['date_fin']);
								$dt_livraison=htmlspecialchars($_POST['date_livraison']);
								//$enregistrement=date('Y-m-d').''.date('H:i:s');
								$coms=htmlspecialchars($_POST['commentaire']);
								
	//===verifie les valeurs envoyés part $_POST=====//
	foreach($_POST as $keyname=>$value) { 				            print "POST_['".$keyname."'] = ".$value; 			
	} 
	if(!empty($fournisseur) && !empty($model)){					      //construction de la requête d'insertion
	$req="INSERT INTO gestion_materiel (nom_fournisseur,model,marque,sn,inventory_number,taille_hdd,taille_memoire,garantis,date_debut,date_fin,date_livraison, enregistrement,commentaire)

VALUES('$fournisseur','$model','$marque','$num_serie','$num_inventaire','$size_hdd','$size_memory','$garantis','$entrees','$exit','$dt_livraison','$enregistrement', '$coms')";
									$resultat=@mysql_query($req) or die("Requête vide !!".mysql_error());
								$final=@mysql_result($resultat);
								echo $final;
									if(!$resultat=@mysql_query($req))						{				
									    // Javascript :					
									         echo "<script type=\"text/javascript\"> 
									       function error()
	      {								         alert('Erreur : ".mysql_error()."');					       }
									      </script>";
									}else
								{
									   echo "<script type=\"text/javascript\">
								    function confimAjout(							     {
									           alert('vous avez été enregistrée : ".mysql_insert_id($resultat)."');
								     }							        </script>";
								}
           }
							
       }
				
   }	
}


l'affichage du code ne me plait pas mais bon on fait vas faire avec
...
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
11 août 2010 à 19:32
debug: 5 minutes à peine


épilogue:

étape 1-
t'as pas fait la correction qu'apatik t'as dit de faire sur le
  if (isset($_POST['ajout'])!='Ajouter')

où tu comparais un booléen à une chaine de caractère .. si tu comprends pas ton erreur, c'est qu'il faut revoir les bases.

ensuite, quitte a rester sur cette ligne: tu testait qu'on ai appuyé sur le bouton. Ton bouton s'appelle <button type="submit" name="bouton_ajout">

donc on passe de
if (isset($_POST['ajout'])!='Ajouter')
à
if (isset($_POST['bouton_ajout']))

ca fait 2 erreurs sur la même ligne quand même.... dont une qui t'avait été signalée. pour trouver l'erreur, j'ai simplement mis un
else echo "pas de traitement";
qui suivait le block du if

étape 2:
heu, là ou t'initialise toutes tes variables à erreur en cas d'erreur.... je crois que c'est du foutage de tête là .... toi, si on a tout rempli bien correctement (isset=> is set => est defini) T'as fait un test sur toutes les variables et tu dis "si toutes les variables sont définis", et derrière tu fais quoi? ben tu les mets toutes en erreur. Si tes profs traitaient tes copies comme tu traites tes variables, t'aurai un 0 à chaque fois que t'aurai tout bien rempli ....
Ca me rappelle le premier singe que la NASA a envoyé dans l'espace. Le pauvre: le système a buggé et au lieu d'avoir des morceaux de banane quand il faisait les bons trucs, il se prenait les décharges électriques.... bref, tu devrais lire et comprendre le isset .... parce que là t'a vraiment rien comprit ....

et , j'ai pas corrigé, mais le traitement que je t'ai donné, il fallait le faire une fois pour chaque variable, pas une grande fois avec toutes les variables. Tu peux très bien avoir une variable en erreur sans que toutes soient en erreur. Bon a la limite ca te optimiseras plus tard quand tu comprendras les problèmes qui en découlent

donc bon, je te mets le code qui fonctionne, mais franchement, je pense que tu n'as pas mis suffisamment de bonne volonté dans ce développement



<?php
tInsertion();
	function tInsertion(){
	//Formulaire dynamique.
				
	echo '<form action="index.php?id_page=33" method="POST" id="centre" >
				
	<fieldset class="fieldset">
				
	<div id="center"><span class="violet"><h3>Ajout Matériel</h3></<span></div>
				
	<table id="Admingauche align="center">
	<tr>
	     <tr>
	         <td><div><label for ="nomfsseur"><b>Nom   Fournisseur :</b></label></td><td><input name="nomfsseur" type="text" /><span class="rouge">*</span></div></td>
	       </tr>
				
	       <tr>
	          <td><div><label for ="model"><b>Model :</b></label></td><td><input id="model" name="model" type="text" /><span class="rouge">*</span></div></td>
	      </tr>
				
	      <tr>
	        <td><div><label for="marque"><b>Marque :</b></label></td><td><input id="marque" name="marque" type="text" /></div></td>
	     </tr>
				
	     <tr>
	          <td><div> <label for="serial_number"><b>N° Serie :</b></label></td><td><input id="serial_number" name="serial_number" type="text" /></div></td>
	     </tr>		
						
	      <tr>
	         <td><div><label for="inventory_number"><b>N°Inventaire :</b></label></td><td><input type="text" id="inventory_number" name="inventory_number" /></div></td> 
	       </tr>
				
	       <tr>
	           <td><div><label for="size_hdd"><b>Taille disque dur :</b></label></td><td><input id="size_hdd" name="size_hdd" type="text" /></div> </td>
	       </tr>
				
	        <tr>
	           <td><div><label for="size_memory"><b>Taille Mémoire :</b></label></td><td><input id="size_memory" name="size_memory" type="text" /></div></td>
	        </tr>
							
	     <tr>
	        <td><div><label for ="garantis"><b>Garantis :</b></label></td><td><input id="garantis" name="garantis" type="text" /></div></td>
	     </tr>
									
	     <tr>
	       <td><div><label for =\'date_debut\'><b>Entrée :</b></label></td><td><input id=\'date_debut\' name=\'date_debut\' type=\'text\' /></div></td>
	     </tr>
									
	    <tr>
	       <td><div><label for ="date_fin"><b>Sortie :</b></label></td><td><input id="date_fin" name="date_fin" type="text" /></div></td>
	     </tr>
				
	    <tr>
	         <td><div><label for ="date_livraison"><b>Livraison Effectué le :</b></label></td><td><input id="date_livraison" name="date_livraison" type="text" /></div></td>
	     </tr>
                          <tr>
                                 <td><div><label for ="commentaire"><b>Commentaire :</b></label></td><td><textarea id="commentaire" name="commentaire" rows ="4" cols="10"></textarea></div></td>
                          </tr>
					
                           <tr>			
                             <td><div class="buttons"><button type="submit" name="bouton_ajout"><img src="images/b_add.png" /> Ajouter</button></div></td>	
	        </tr>
					
	        </tr></table>
				
	    </fieldset>
	<div id="center"><a href="index.php?id_page=32"><b>Retour</b></a></div>
          </form>';
			
         if (isset($_POST['bouton_ajout'])) //ICI apatik t'avait dit quoi faire pour le != et ton nom de variable était pas bon
         {	// déclaration de variable à refaire
					
	if(isset($_POST['nomfsseur']) && isset($_POST['model']) && isset($_POST['marque']) && isset($_POST['serial_number']) && isset($_POST['inventory_number']) && isset($_POST['size_hdd']) && isset($_POST['size_memory']) && isset($_POST['garantis']) && isset($_POST['date_debut']) && isset($_POST['date_fin']) && isset($_POST['date_livraison']) && isset($_POST['commentaire']))
/*	{		
				//====test de variables====//
		$formulaire="erreur";
		$model="erreur";
		$marque="erreur";
		$num_serie="erreur";
		$num_inventaire="erreur";
		$size_hdd="erreur";
		$size_memory="erreur";
		$garantis="erreur";
		$entrees="erreur";
		$exit="erreur";
		$dt_livraison="erreur";
		//$enregistrement="erreur";
		$coms="erreur";
								
		echo "<h2> Veuillez complétez le formulaire !!! <h2> ";
					
    }else*/
    {
							
							//====htmlspecialchars: pour gérer les caractère spéciaux entré dans un formulaire====//
								
								$fournisseur=htmlspecialchars($_POST['nomfsseur']);//access procedure php 4
								$model=htmlspecialchars($_POST['model']);
								$marque=htmlspecialchars($_POST['marque']);
								$num_serie=htmlspecialchars($_POST['serial_number']);
								$num_inventaire=htmlspecialchars($_POST['inventory_number']);
								$size_hdd=htmlspecialchars($_POST['size_hdd']);
								$size_memory=htmlspecialchars($_POST['size_memory']);
								$garantis=htmlspecialchars($_POST['garantis']);
								$entrees=htmlspecialchars($_POST['date_debut']);
								$exit=htmlspecialchars($_POST['date_fin']);
								$dt_livraison=htmlspecialchars($_POST['date_livraison']);
								$enregistrement=date('Y-m-d').''.date('H:i:s');
								$coms=htmlspecialchars($_POST['commentaire']);
															
								//===verifie les valeurs envoyés part $_POST=====//
								foreach($_POST as $keyname=>$value) { 				            
								print "POST_['".$keyname."'] = ".$value."<br />"; 			
								} 
								if(!empty($fournisseur) && !empty($model)){					      //construction de la requête d'insertion
								$req="INSERT INTO gestion_materiel (nom_fournisseur,model,marque,sn,inventory_number,taille_hdd,taille_memoire,garantis,date_debut,date_fin,date_livraison, enregistrement,commentaire)

							VALUES('$fournisseur','$model','$marque','$num_serie','$num_inventaire','$size_hdd','$size_memory','$garantis','$entrees','$exit','$dt_livraison','$enregistrement', '$coms')";
																$resultat=@mysql_query($req) or die("Requête vide !!".mysql_error());
								$final=@mysql_result($resultat);
								echo $final;
									if(!$resultat=@mysql_query($req))						{				
									    // Javascript :					
									         echo "<script type=\"text/javascript\"> 
									       function error()
	      {								         alert('Erreur : ".mysql_error()."');					       }
									      </script>";
									}else
								{
									   echo "<script type=\"text/javascript\">
								    function confimAjout(							     {
									           alert('vous avez été enregistrée : ".mysql_insert_id($resultat)."');
								     }							        </script>";
								}
           }
							
    }
	else 
		echo "remplir tous les champs";
				
   }else echo "premier chargement";
}

?>

0
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
Modifié par Apatik le 11/08/2010 à 20:20
Mais euh! J'viens de lui finir un petit script homemade custom. En plus, je trouve qu'il pète la classe :D
Et le must du must, c'est qu'il est assez commenté pour un noob.

@Serenity: Avant quand même, un truc. Le plagia, c'est un truc de mer*e. Et ce script, tu l'as initialement pompé. Parce que rien qu'a voir le nom des variables, le fait de passer par une fonction pour afficher un formulaire.., et faut voir le nom de la fonction.. Bref. Quand on code un truc, soit on le fait soit même, soit on laisse un commentaire pour la personne qui l'a fait. Faut rendre à César ce qui est à Jules..
Bref, voila mon script que tu peux utiliser comme tu l'entend, et sans parler de moi.
https://pastebin.com/MHSZ8imB
0
Apatik

non quand je programme pour ne pas oublier ce que je fais je mets beaucoup de commentaire après je les efface qd le programme est fini car il peux arriver que je développe sur d'autre techno , ce sont des point de repère.
En loccurence je les ais enlevés car j'en avais mis des tonnes.

la premier ligne if contenais bien une errur et en reprenons ton explication au dessus j'ai compris pourquoi merci.

Merci pour pour ton aide Nabla's
l'attribut bouton c'est bien ajout pas bouton_Ajouter le code que je t'es donné contenait quelque erreur d'innatentions que j'ai corrigé et l'appelle de la fonction tInsertion au débute ne mets pas utile car il interfère avec ma page login, je l'ai mis en commentaire.
sinon le formulaire ajoute bien une nouvelle données
maintenant je doit revoir au niveau des base de donnée car aucune ligne n'est ajouter dans la bdd créer dans phpmyadmin
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
12 août 2010 à 10:06
bon, sujet resolu, non ??
0
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
Modifié par Apatik le 12/08/2010 à 10:11
J'attend qu'il me dise que mon script il pète plus que le tien :p
Et j'attend surtout qu'il me dise que ça bug parce que le form renvoi sur "index2.php", qu'une fois qu'on aura résolu ce problème, qu'il me dise que son code SQL plante parce qu'il est pas connecté à la db, ...
Enfin toutes les erreurs de transposition de base quoi. Puisque chez moi, ça marche :D (enfin je me suis arrété à la partie db, puisque j'avais la flemme d'en créer une pour tester.. en tout cas, la requette créée est correcte)
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
12 août 2010 à 10:24
le mien il risque pas de peter, vu que c'est une corresction du sien, et que j'ai dis que d'autres trucs n'allaient pas ;)
0
Apatik Messages postés 5304 Date d'inscription mercredi 28 janvier 2009 Statut Contributeur Dernière intervention 29 mai 2016 782
12 août 2010 à 10:27
J'ai pas tout changé, j'ai gardé son formulaire, ses deux fonctions alert() en JS, et son mysql_result() =)
y'avais pas que du mauvais.. (Tu crois qu'il va revenir dire merci?)
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 192
Modifié par Nabla's le 12/08/2010 à 10:31
oui, qd il aura tout assimilé :D


Comme dit un vieu sage alcolique:
Patience et longueur de temps font plus que la peau de l'ours avant de l'avoir tué...
0
on peut clore le sujet
passe une bonne journée :)
0
oui, en effet ce n'est qu'une parti du code(c'est lec ode d'une page) qui seras afficher grace à la page main.php .
pour le greffer à la page principale j'ai utilisé un include_once(nomdelapage.php).

merci pour ta solution implode() je la testerais.
je te dirais ce qu'il en ais.
avant j'essaierais de comprendre comment elle fonction afin de mieux l'utiliser plus tard.

Passe une bonne journée,

:)
0
Merci, le test est concluant.
0