Ma variable de $_Session ne marche pas

Fermé
Guest - 7 mars 2014 à 10:25
Nicoblem Messages postés 2 Date d'inscription vendredi 7 mars 2014 Statut Membre Dernière intervention 7 mars 2014 - 7 mars 2014 à 11:36
Bonjour,

je suis débutant en PHP et j'ai un gros problème.
Voila, j'ai un gros projet à réaliser donc je préfère le diviser en plein de petites parties pour être sur que les parties ne se gène pas l'une l'autre.

Je suis arrivé à la partie où je dois créer une variable de session appelé $_session['page'] qu'on peut manipuler avec trois boutons :
-Un premier qui va incrémenter la variable $_session['page']
-Un deuxième qui va décrémenter la variable $_session['page']
-Et un dernier composé d'une alerte pour savoir à tout moment la page à la quel la personne se trouve(celui la je compte pas le garder c'est juste pour les test)

voila donc la bête noir :


<?php
session_start();
?>

<html>
<body>

<?php

if (!isset($_SESSION['page']))
{
$_SESSION['page'] = 100;
}

?>

<input type='button' value='page' id="Btn33" onclick="<?php echo "alert('".$_SESSION['page']."')" ?>"/>
<input type='button' value='-' id="Btn22" onclick="<?php $_SESSION['page'] = $_SESSION['page']-1 ?>"/>
<input type='button' value='+'id="Btn27" onclick="<?php $_SESSION['page'] = $_SESSION['page']+1 ?>"/>
</body>
</html>

6 réponses

Bonjour

Ton code ne modifie en rien $_SESSION['page'] car cette variable se trouve dans le serveur et tes "onclick" n'agissent que localement, chez le client. Regarde le code source généré par ta page, celui que tu vois avec Ctrl-U : il n'y a aucun $_SESSION['page'] dedans.

Si tu veux vraiment modifier cette variable, il faut que le serveur soit invoqué d'une manière ou d'une autre quand tu cliques sur tes boutons, en utilisant la méthode Window.location et en faisant ton incrémentation en PHP. Tu peux aussi le faire en Ajax.

Si tu veux simplement incrémenter un nombre, utilise une variable Javascript et le PHP n'a plus rien à faire là-dedans.
2
Nicoblem Messages postés 2 Date d'inscription vendredi 7 mars 2014 Statut Membre Dernière intervention 7 mars 2014
7 mars 2014 à 11:36
Merci beaucoup a tout les deux et merci pour ces explications super précises je m'y met tout de suite.
0
Utilisateur anonyme
7 mars 2014 à 10:36
Salut,

Tu n'oublierais pas quelques points-virgules avec echo, par hasard ?
0
Nicoblem Messages postés 2 Date d'inscription vendredi 7 mars 2014 Statut Membre Dernière intervention 7 mars 2014
7 mars 2014 à 10:49
Salut et merci de ton aide,

C'est vrai que mon code manquait de point virgule dans les balises PHP, je les ai rajoutés ais ca ne marche toujours pas malheureusement
Quand je clique sur le bouton "echo" tout se passe bien et on me renvoi l'alerte mais quand je clique sur le bouton d'incrémentation ou de décrémentation rien ne se passe et la variable $_session['page'] n'est pas modifiée... :/
0
$_SESSION['page']-1 -> --$_SESSION['page']
$_SESSION['page']+1 -> ++$_SESSION['page']

https://www.php.net/manual/fr/language.operators.increment.php
0
Nicoblem Messages postés 2 Date d'inscription vendredi 7 mars 2014 Statut Membre Dernière intervention 7 mars 2014
Modifié par Nicoblem le 7/03/2014 à 11:03
Non toujours rien, ça ne marche pas c'est toujours pareil écho fonctionne mais pas l'incrémentation ou la décrémentation.

(voilà le nouveau code, j'ai peut-être commis une erreur )

<?php
 session_start();
?>

<html>
<body>

<?php

if (!isset($GLOBALS['page']))
{
 $GLOBALS['page'] = 100;
}

?>

<input type='button' value='page' id="Btn33" onclick="<?php echo "alert('".$GLOBALS['page']."')"; ?>"/>
<input type='button' value='-'  id="Btn22" onclick="<?php --$_SESSION['page'] ; ?>"/>
<input type='button' value='+'id="Btn27" onclick="<?php  ++$_SESSION['page'] ; ?>"/>
</body>
</html>
0
Utilisateur anonyme
7 mars 2014 à 11:04
Ah oui, excuse-moi.

Regardes la source de ta page sur ton navigateur et tu vas comprendre le soucis ;)
0

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

Posez votre question
Nicoblem Messages postés 2 Date d'inscription vendredi 7 mars 2014 Statut Membre Dernière intervention 7 mars 2014
7 mars 2014 à 11:12
Euh... je suis pas sure de comprendre désolé ^^'

Je faisais des recherches en même temps et j'avais essayé la modification des $_sessions $globals c'est de ca que tu me parlais ?

voila mon VRAI code mais le problème reste exactement le même malheureusement


<?php
session_start();
?>

<html>
<body>

<?php

if (!isset($_SESSION['page']))
{
$_SESSION['page'] = 100;
}

?>

<input type='button' value='page' id="Btn33" onclick="<?php echo "alert('".$_SESSION['page']."')"; ?>"/>
<input type='button' value='-' id="Btn22" onclick="<?php --$_SESSION['page'] ; ?>"/>
<input type='button' value='+'id="Btn27" onclick="<?php ++$_SESSION['page'] ; ?>"/>
</body>
</html>
0
Utilisateur anonyme
7 mars 2014 à 11:19
Quand tu visionnes ta page sur le navigateur internet (Firefox, Explorer, Chrome, etc).
Tu fais clique-droit -> Code source de la page.

Tu verras que le code PHP disparaît, c'est à dire qu'il a été interprété avant que le navigateur ne l'affiche. Et donc, dans le onclick, au lieu d'incrémenter, il ne se passera rien car c'est vide. Il faut lui mettre un lien vers une autre page PHP qui sera chargée d'incrémenter/décrémenter la variable.

Si tu as du mal à comprendre ça, arrêtes tout de suite et ré-étudies le PHP et le Javascript.
0
Nicoblem Messages postés 2 Date d'inscription vendredi 7 mars 2014 Statut Membre Dernière intervention 7 mars 2014
7 mars 2014 à 11:23
Non non t'inquiète pas, je comprend ce que tu dis ^^
je ne comprend pas POURQUOI ça me fait ça en revanche mais bon je connais le problème maintenant au moins ^^
merci beaucoup à toi
0