[php] split impossible

Résolu/Fermé
94_killer_94 Messages postés 234 Date d'inscription dimanche 7 mars 2004 Statut Membre Dernière intervention 31 décembre 2005 - 20 janv. 2005 à 17:05
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 - 22 janv. 2005 à 18:08
Salut tout le monde,

voila mon problème :

[...]
else {


$resultat = split("_",$panier); // Division de la valeur contenue dans le cookie, en fonction des caractères "_"
$id=0;


while( isset ( $resultat[$id] ) ) {

if ($id!=0){ // Par ce que sinon, j'ai une ligne en trop qui apparait

$a = $resultat[$id];
print "$a"; // Pour vérifier que je l'ai bien

$b = split("*","$a"); // Mais c'est ici que ca ne veut pas marcher
print "<br>";
print "Valeur b : ".$b;
print "<br><br>";


}
else { }

$id++;
}


}

Je ne peux pas décomposer une valeur déja décomposée...

Mon système est pour faire un panier pour le client...
voila les valeurs : _Objet1*Quantité1_Objet2*Quantité2_... ainsi de suite

Alors, pk je ne peux pas séparer cette variable ?

Merci d'avance
@+ Mat
A voir également:

5 réponses

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
20 janv. 2005 à 20:47
Salut,

Je pense que ça ne marche pas car split utilise les expressions rationnelles comme séparateurs. Or * est particulier dans une expression régulière. Ca signifie "zero ou plusieiurs" et c'est censé s'appliquer à l'élément qui le précède:
http://www.commentcamarche.net/php/phpreg.php3

Prends plutôt
$b = explode("*","$a");

Explode utilise plus simplement une chaine normale comme séparateur.

Li4uLlZvdHJlIGTpdm916SBzZXJ2aXRldXIuLi4u
0
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
20 janv. 2005 à 20:53
Au fait si l'utilisateur efface ses cookies, il n'a plus de panier ? :-)

Li4uLlZvdHJlIGTpdm916SBzZXJ2aXRldXIuLi4u
0
94_killer_94 Messages postés 234 Date d'inscription dimanche 7 mars 2004 Statut Membre Dernière intervention 31 décembre 2005 55
21 janv. 2005 à 16:51
C vrai !! J'avais pas pensé au fait meme que certain utilisateurs n'acceptent meme pas les cookies !!! Mince !!

Bon, bah je pense que je vais chercher une autre solution, vu que ca doit convenir à toue le monde...

Sinon, merci pour le explode, je vais aller essayer ( meme si du coup je ne sais pas si je vais garder les cookies ... )

Merci
@+ Mat
0
94_killer_94 Messages postés 234 Date d'inscription dimanche 7 mars 2004 Statut Membre Dernière intervention 31 décembre 2005 55
21 janv. 2005 à 16:55
Dans le cadre de l'amélioration du site, voila le récapitulatif du problème :

au lieu d'utiliser :
$b split ( "*" , $a );
il faut que j'utilise
$b explode ("*" , $a );
car la première solution comprend le signe "*" comme un caractère spécial et non la seconde solution.

Merci a kilian ;)

@+ Mat
0
Jean-François Pillou Messages postés 18301 Date d'inscription lundi 15 février 1999 Statut Webmaster Dernière intervention 16 février 2023 63 274
21 janv. 2005 à 18:31
Tu as aussi la possibilité d'échapper le caractère, en le faisant précéder d'un antislash :

 $b = split("\*","$a");


Je ne saurais que te conseiller l'utilisation de sessions pour la gestion de ton panier !


                                   
Jeff  \--Webmaster@CCM--/ 
0
94_killer_94 Messages postés 234 Date d'inscription dimanche 7 mars 2004 Statut Membre Dernière intervention 31 décembre 2005 55
22 janv. 2005 à 16:34
Ouais, je pense prendre les sessions, vu que tout le monde n'accepte pas les cookies.

@+
0

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

Posez votre question
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
22 janv. 2005 à 18:08
Salut,

Utiliser les sessions pour transmettre les données de page en page, ça d'accord, mais il faut aussi stocker les données.

Bon les cookies, on l'a vu c'est pas le mieux pour le panier d'un client :-)
Tu as le choix entre les fichiers texte et une base de données.
Le texte je pense que tout le monde peut y avoir accés (même si je ne sais pas vraiment de quoi on est capable avec les permissions des fichiers) et ça me semble moins pratique à exploiter qu'une base de données.

Donc je te conseille de stocker les données des clients dans une base de données :-) (Puis après, les faire transiter à travers les pages en utilisant les sessions)... Après ce n'est que mon avis, la sécurité sur un site web c'est pas mon fort donc je te conseille de te renseigner là dessus si tu fais un site commercial...

Li4uLlZvdHJlIGTpdm916SBzZXJ2aXRldXIuLi4u
0