Undefined index: do !

Eléphant du PHP | 187 Messages

15 sept. 2011, 19:23

salut,
SVP!j'ai une formulaire d'enregistrement sans erreur,mais quand je clique sur le button enregistrer voilà l'erreur qui me donne :
Notice: Undefined index: do in C:\wamp\www\site-\include.php on line 9
sachant que la ligne de l'erreur c'est simplement une switch case d'appel à mes pages :

Code : Tout sélectionner

switch($_GET['do']){ ...}
si quelqu'un a une idée ça sera vraiment super gentil ! mercii

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

15 sept. 2011, 19:50

salut,

l'erreur est claire tu n'a pas de 'do' dans l'url (tonsite.com?do=truc)


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 187 Messages

15 sept. 2011, 20:04

hmmmm j'ai pas compris car normalement l'appel de 'do' se fait implicitement,cad pour les autres formulaires j'indique que le nom de fichier en une

Code : Tout sélectionner

echo '<a href="fichier.php"></a>';
et jamais rencontrer une tel erreur :?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

15 sept. 2011, 20:10

Tu DOIT avoir dans l'url une variable doit sinon ton code échoue comme tu le constate.

c'est une très mauvaise d'utiliser une variable d'url ainsi dans savoir si elle existe. Le problème est le même pour les formulaires.

test si la variable existe (enfin l'index dans le tableau $_GET) avec isset ou empty avant de l'utiliser.

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 187 Messages

16 sept. 2011, 11:53

franchement puisque je suis toute débutante j'ai pas bien saisi quoi faire:s,sinon voilà mon code qu'est ce que je doit ajouter au juste?
<?php

 include ('connexion.php');

if(isset($_POST['submit'])){
	if(!empty($_POST['activite_cabinet']) && !empty($_POST['prescripteur']) ) {
	
		mysql_query('insert into reference(
	    activite_cabinet, prescripteur, pres_fort) 
		values(
	   "'.addslashes($_POST['activite_cabinet']).'","'.addslashes($_POST['prescripteur']).'",
		"'.addslashes($_POST['pres_fort']).'")')or die(mysql_error());
		
		echo '<a href="reference.php"></a>';
	}
	}

?>
SINON si y a un document ou bien des liens utiles pour que je me base en ça merci de les passer et désolé pour le dérangement ^^'

Mammouth du PHP | 672 Messages

16 sept. 2011, 12:13

franchement puisque je suis toute débutante j'ai pas bien saisi quoi faire:s,sinon voilà mon code qu'est ce que je doit ajouter au juste?
[(...)
SINON si y a un document ou bien des liens utiles pour que je me base en ça merci de les passer et désolé pour le dérangement ^^'
Bonjour.

Le code que tu donnes n'a aucun rapport avec ton erreur #-o
Tu as déjà donné la ligne où se trouv el'erreur :
switch($_GET['do'])
L'erreur (ou plutôt l'avertissement) te décrit le problème.
Notice: Undefined index: do in C:\wamp\www\site-\include.php on line 9
Note : Index non défini : do à la ligne 9.
Et moogli t'a donné la réponse : do n'est pas défini, il faut le tester...Il t'a même indiqué les fonctions PHP à utiliser.

A priori, le do indique à PHP la "page" / fonction à appeler.
Le problème, c'est que si tu arrives sans avoir défini le do, PHP ne peut pas le récupérer dans le GET, du coup il râle !

Solution (exemple) :
$do = 'defaut'; // A remplacer par la valeur par défaut que tu veux pour ton switch
if (!empty($_GET['do']) ) // Si on donne une valeur à [b]do[/b] dans l'URL. Le ! sert de négation => SI NON (est_vide($_GET['do'])), SI il y a quelque chose dedans
   $do = $_GET['do'] // On affecte cette valeur à la variable $do
switch ($do)
[/php]

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

16 sept. 2011, 12:15

le code fournit est "correct mais n'a pas de rapport avec le message d'erreur est ce bien le fichier include.php ?

par contre le lien ligne 14 ne sera pas visible il n'a pas de texte :)
echo '<a href="reference.php"></a>'; ===> echo '<a href="reference.php">Voir les références ?</a>';
texte a adapter bien sur ;)

edit : pff grillé :/

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 187 Messages

16 sept. 2011, 12:39

ok merci à vous deux ^^, le problème est réglé mais aléatoirement..on dirait mes formulaires fonctionnent sans logique ^^'
c'est pourquoi j'aimerai savoir comment organiser mon code??autrement dit comment apprendre à coder ce PHP? un bon tuto ou ..(j'ai déja passé par google) ET MERCI BEAUCOUP .
car je commence à croire que jamais je vais maitriser ce php :( il demande beaucoup d’intelligence ou quoi !?!

et désolé si mon dernier msg est peut etre hors sujet ^^'

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

16 sept. 2011, 12:50

http://www.phpdebutant.org
http://www.lephpfacile.com
car je commence à croire que jamais je vais maitriser ce php :( il demande beaucoup d’intelligence ou quoi !?!
développeur (web ou pas) c'est un vrai métier et comme tout métier il y a de l'apprentissage à faire.

PHP n'est le plus complexe des language, sa relative simplicité fait qu'il est beaucoup utilisé par tous le monde sur la toile, mais cela nécéssite quand même de la réflexion pour l'utiliser correctement.

loin de moi l'idée que tu n'en est pas capable, mais il faut quand même revoir les cours, comprendre les messages d'erreurs pour débugger facilement et rapidement.

généralement un développement c'est (pifometriquement à un poil de cul près :mrgreen: ) 90% de réflexion et 10% de code :)


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 187 Messages

16 sept. 2011, 12:56

ok..et merci pour les liens ^^