Probleme avec index en PHP

Fermé
davidmickael Messages postés 98 Date d'inscription jeudi 17 mai 2007 Statut Membre Dernière intervention 23 janvier 2009 - 30 oct. 2007 à 15:34
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 - 31 oct. 2007 à 17:34
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 mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
31 oct. 2007 à 00:32
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 lundi 7 novembre 2005 Statut Contributeur Dernière intervention 24 octobre 2020 1 331
31 oct. 2007 à 00:37
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 mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
31 oct. 2007 à 00:39
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 lundi 7 novembre 2005 Statut Contributeur Dernière intervention 24 octobre 2020 1 331 > Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016
31 oct. 2007 à 09:51
Bonjour ici,
Au contraire, j'attends un article clair pour m'expliquer...
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920 > gryzzly Messages postés 4608 Date d'inscription lundi 7 novembre 2005 Statut Contributeur Dernière intervention 24 octobre 2020
31 oct. 2007 à 11:53
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 lundi 7 novembre 2005 Statut Contributeur Dernière intervention 24 octobre 2020 1 331 > Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016
31 oct. 2007 à 12:34
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 3671 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011 > gryzzly Messages postés 4608 Date d'inscription lundi 7 novembre 2005 Statut Contributeur Dernière intervention 24 octobre 2020
31 oct. 2007 à 14:00
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