ça n'incremente pas!! - PHP - Programmation
Marsh Posté le 10-06-2006 à 02:48:50
il y a une petite faute sur la ligne :
for ($i=0; $i!=1; $id++){ |
Il faut incrémenter $i au lieu de $id.
Marsh Posté le 10-06-2006 à 12:14:25
Effectivement, mais en fait, c'est parce que avant le nom de la variable était "id", et j'avais changer en "i" pour être sur que ça ne venait pas de là!! et ça ne fonctionnait pas!
J'ai mit "i" là, et ça ne fonctionne toujours pas!
Donc hier soir j'ai continué à essayer de trouvé une solution, et il y en a une, au lieu d'assigner les valeurs du tableau de $_SESSION , avec des index numérotés, j'ai mit des index "alphanumériques" et j'ai utilisé des boucles foreach pour les parcourir.
Donc, est-il impossible d'assigner des valeurs à $_SESSION via cette méthode: $_SESSION[0]=1; ??
Marsh Posté le 10-06-2006 à 13:26:54
Le nom de la variable de session doit respecter les mêmes règles que les noms de variable. Donc le premier caractère ne doit pas être un chiffre, déjà.
Marsh Posté le 10-06-2006 à 14:12:34
$_SESSION c'est un tableau, ce que j'appelle nom de la variable de session, c'est ce que tu mets $_SESSION['là'];
Marsh Posté le 10-06-2006 à 14:41:04
mmmh, mais pour un tableau: cette fonction:
function ajouterRoyale($nombre) {
$this->listePizzas[0] += $nombre;
fonctionne très bien! pourtant j'utilise bien l'index 0 pour assigner une valeur.
et je viens d'essaye ceci:
<?php
session_start();
?>
<html>
<body>
<?php
$_SESSION[0]=5;
echo $_SESSION[0];
?>
</body>
</html>
et ça m'affiche bien 5...
Donc je vois pas trop bien!
Marsh Posté le 10-06-2006 à 15:10:55
for ($i=0; $i!=1; $i++){
...
}
Combien de tours de boucle tu fais avec ça?
Et dans le code de ton 1er message, tu fais bien un "session_start()" en début de fichier?
Marsh Posté le 10-06-2006 à 15:45:52
remi-san a écrit : for ($i=0; $i!=1; $i++){ |
Ben je fais au moins un tour, vu que la valeur qui change est dans le premier index, ça pose pas trop de problème...
Sinon, oui j'ai bien fait un session_start();
Marsh Posté le 10-06-2006 à 15:51:38
OhAime971 a écrit : mmmh, mais pour un tableau: cette fonction: |
J'ai bien dit "nom d'une variable de session" (ou d'une variable POST ou GET, d'ailleurs, c'est la même chose).
Citation : |
Ca t'affiche 5 mais ça ne sauvegardera (a priori) pas la session, car le nom est invalide.
Marsh Posté le 10-06-2006 à 15:59:28
Ah ok! donc pour que ça sauvegarde, il faut forcement que je sauvegarde en mettant du texte en index?!
Marsh Posté le 10-06-2006 à 16:04:59
Citation : |
(php.net)
Marsh Posté le 10-06-2006 à 16:25:43
mais ça c'est pour le nom de variable, pas pour l'index d'un tableau??
Marsh Posté le 10-06-2006 à 16:40:14
Arf.
On résume :
- un nom de variable valide doit commencer par une lettre ou un souligné (_), suivi de lettres, chiffres ou soulignés ;
- $_SESSION (tout comme $_GET, $_POST et tous les tableaux globaux) est un tableau dont l'indice est un nom de variable.
Donc l'indice de $_SESSION doit commencer par une lettre ou un souligné (_), suivi de lettres, chiffres ou soulignés.
Je peux pas faire plus clair.
Marsh Posté le 09-06-2006 à 23:14:20
Bonsoir!!
Voilà, j'ai ce code là! donc j'ouvre une session, je test pour savoir si elle contient déjà des données, auquel cas je charge ces données dans un tableau!!
puis j'incrémente une valeur de ce tableau avec la fonction: ajouterPizzas
Le problème est que lorsque je clique donc sur le lien pour recharger, ça n'incremente pas! lorsque la session n'existe pas, ça passe bien de 0 à 1, mais après ça n'augmente plus, ça reste à 1... je comprends pas vraiment!
Si quelqu'un voit qu'est-ce qui cloche?!
Merci!
<?php
$client = new Commande('test');
if (isset ($_SESSION[0])){
for ($i=0; $i!=1; $id++){
$client->listePizzas[$i]=$_SESSION[$i];
}
}
else{
$_SESSION=array(0,0);
}
$nbr= 1;
$client->ajouterRoyale($nbr);
echo 'le nombre de pizza est:'.$client->listePizzas[0]; //pour verifier.
$client->afficherCommande();
for ($i=0; $i!=1; $i++){
$_SESSION[$i]=$client->listePizzas[$i];
}
et la fonction ajouterPizzas est comme ça:
function ajouterRoyale($nombre) {
$this->listePizzas[0] += $nombre;
}