Probleme avec index en PHP

davidmickael Messages postés 98 Date d'inscription   Statut Membre Dernière intervention   -  
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Bonjour,
J'ai ma page boutique.php qui a ce script là, pour formulaire:
j'ai ce script la:

...
<form action="sessionvisite2.php"    method="post">
<input type="hidden"  name="id" value="<?php echo $id  ;  ?>"  /><!  RECUPERATION DE ID (COURANTE, actuelle)..->
<input type="submit"    name="ajout"   value="AJOUTER CADDIE"   />
 <input type="submit"       name="vide"   value="VIDER LE PANIER!!" >				
</form>
...


qui appelle ce script là (sessionvisite2.php):

<?php
@session_start ()  ; 	
if  ($_POST['ajout']){  
if (!isset ($_SESSION['monpanier'] ) )
{   
	 $_SESSION['monpanier'] = array()  ; //J'INITIALISE A UN TABLEAU VIDE..//
} 											
else
{
	$_SESSION['monpanier'] = $_SESSION['monpanier']++      ; 
}
$_SESSION['monpanier'][] = $_REQUEST['id']  ;
print_r($_SESSION['monpanier']) ;
}

else  if($_POST['vide']) //TEST SI le bouton vider est enclenché!//
{
echo "la session doit être détruite !!!(-----)" ; 
$_SESSION['monpanier'] = array()   ;
session_destroy() ;
}
echo "CA C 'est le fichier  sessionvisite!(-----)" ;




et j'ai l'erreur suivante qui est générée,
quand j'appuie sur vider le panier:


"Notice: Undefined index: ajout in c:\program files\easyphp1-8\www\siteboutiqueshop\sessions\testssitesession\boutique2\sessionvisite2.php on line 20
la session doit être détruite !!!(-----)CA C 'est le fichier sessionvisite!(-----)"

l'ajout a l'air de bien se faire quant à lui!
Pourquoi donc, quelqu'un pourrait-il m'aider?
A voir également:

2 réponses

Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
salut,

tu dois tenter de vider le panier alors qu'il est vide.
tu devrais tester l'existence de la variable avant de la vider.

et il faut écrire 'else if' en un seul mot.
0
gryzzly Messages postés 4608 Date d'inscription   Statut Contributeur Dernière intervention   1 335
 
Salut,

Juste une précision :

manuel php :: Vous pouvez avoir plusieurs elseif qui se suivent les uns après les autres, après un if initial. Le premier elseif qui sera évalué à TRUE sera exécuté. En PHP, vous pouvez aussi écrire " else if " en deux mots et son comportement sera identique à la version en un seul mot. La sémantique des deux expressions est légèrement différente, mais au bout du compte, le résultat sera exactement le même.

Nice dreams *C
0
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922
 
salut,

La sémantique des deux expressions est légèrement différente
encore une histoire de sémantique, tu peux pas comprendre !
-;o)
0
gryzzly Messages postés 4608 Date d'inscription   Statut Contributeur Dernière intervention   1 335 > Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention  
 
Bonjour ici,
Au contraire, j'attends un article clair pour m'expliquer...
0
Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention   922 > gryzzly Messages postés 4608 Date d'inscription   Statut Contributeur Dernière intervention  
 
salut,

c'est pas léger un ours !!!

pour la sémantique c'était un clin d'œil à un MP récent et le conseil c'était dans le cadre de bonnes pratiques.

on s'en tape de pouvoir écrire 'elseif' en deux mots, c'est bien bien plus lisible et logique de l'écrire en un seul.
si tu veux vraiment un article, tu peux regarder les conventions de nommage de Pear, il ne s'amuse pas à l'écrire en deux mots.
0
gryzzly Messages postés 4608 Date d'inscription   Statut Contributeur Dernière intervention   1 335 > Dalida Messages postés 6728 Date d'inscription   Statut Contributeur Dernière intervention  
 
Re,

Dans ta logique, c'est plus clair et lisible. Cependant, ce n'est pas le cas de tout le monde...
T'façon, j'sais pas pourquoi on discute de ça, puisque je l'écris aussi en un seul mot ;-) Ah oui, c'était pour dire que de toute façon, de l'écrire en un, ou deux, cela n'a pas d'influence...

PS : je suis anticonformiste... ;-)
Bon app'
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011 > gryzzly Messages postés 4608 Date d'inscription   Statut Contributeur Dernière intervention  
 
La différence c'est que quand on écrit elseif, c'est un seul mot clé particulier, lié à un if précédent.
Alors que quand on écrit else if, c'est un bloc else, sans accolade car suivi d'un et un seul bloc d'instruction, le if.
Il y a une différence de traitement entre les deux au niveau de l'interpréteur, et probablement aussi au niveau du compilateur...
0