8800 sujets

Développement web côté serveur, CMS

Bonjour,
Dans le cadre d'un projet de dev, j'ai une petite question aux codeurs.

Regardez le code suivant :

Code:

<?php
session_start("mavariableamoi");
$_SESSION["mavariable"] = 100;
$mavariable = &$_SESSION['mavariable'];
?>
<html>
<head>
<title>Test page for PHP</title>
</head>
<body>

<p><a href="test2.php"><?php $_SESSION["mavariable"] -= 25; ?>moins 25 sur les 100 mavariable</a></p>
<?php 
echo $mavariable;
?>
</body>
</html>

La ligne
Code:

<p><a href="test2.php"><?php $_SESSION["mavariable"] -= 25; ?>moins 25 sur les 100 mavariable</a></p>

ne me fait pas la soustraction..
Hors, il serait intéressant pour moi de faire l'opération AVANT d'arriver sur la page test2.php..
Pour la logique du problème, il pourrait y avoir plusieurs liens renvoyant sur des pages différentes, chacun augmentant ou réduisant la valeur de mavariable suivant le choix de la personne...

Si quelqu'un a déjà résolu ce problème !

Cordialement,
Hello,

chabi01 a écrit :

ne me fait pas la soustraction..
Ben si. Smiley murf

Par contre, que la soustraction soit faite à cet endroit du code (dans un élément A) ne change rien puisque (pour rappel) PHP est exécuté côté serveur et donc avant l'affichage du code HTML. Cela veut dire que $mavariable et $_SESSION["mavariable"] valent tous les deux 75 jusqu'à la prochaine modification d'une des deux variables.

Si tu veux avoir plusieurs liens possibles dont chacun doit effectuer une opération différente sur $_SESSION["mavariable"] cela ne peut se faire que dans test2.php (ou alors il faut uriliser Ajax) et il faut donc passer en paramètre l'opération à effectuer :
<p><a href="test2.php?sens=moins&amp;valeur=25">moins 25 sur les 100 mavariable</a></p>
Donc, voilà !
C'est ce que je craignais !
Parce que je voulais absolument savoir si cette technique me permettait de faire la soustraction en cliquant sur le lien de manière à ce que "test2.php" affiche le résultat à l'affichage..

Ce que je ne comprends pas c'est que l'opération est bien faite (100-25) mais que si j'affiche la variable dans test2.php, la valeur n'est pas "à jour"..

Le passage de paramètres par l'url ne me convient pas : je ne veux pas que l'opération soit "visible" pour le visiteur..

En tout cas, déjà merci pour la réponse !
Cordialement,