Opérateur qui devient du texte - question

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Opérateur qui devient du texte - question

par chrislabricole » 02 juil. 2007, 14:23

à oui, sa marche aussi, ben j'préfère ta solution :D

résolu ! :D

par Ryle » 02 juil. 2007, 14:17

Le signe "+" dans l'url est interprété comme un espace :) (cf. urlencode())

Tu peux transformer ton plus avec rawurlencode() pour le coder en %xy (ou utiliser directement le code) et ainsi le récupérer normalement :)

par chrislabricole » 02 juil. 2007, 14:08

en !
j'ai compri...

Array
(
[nb1] => 5
[nb2] => 1
[mode] =>
)
le plus n'est reconnu comme rien dans le GET ....

donc en fait :
if (isset($_GET["mode"]) && $_GET["mode"] == "plus") { // le plus en toutes lettres
   $nb1  =$_GET["nb1"];
   $nb2  =$_GET["nb2"];
   $nombre_final = $nb1+$nb2;  
   }
echo $nombre_final; 
et dans l'URL,
http://localhost/scriptphp.php?nb1=5&nb2=1&mode=plus

je pense que c'est la seule Solution...
car à mon avis, le "+" est un caractère spécial n'ayant pas de code ASCII...

Merci !

par Aureusms » 02 juil. 2007, 09:12

Oui je suis d'accord avec AB, la solution d'Arthur devrait fonctionner. Cependant, n'oublie jamais de tester tes variables avant et de vérifier que nb1 et nb2 sont bien des nombres : sinon message d'erreur.

Si rien ne s'affiche, cela doit être à cause de la condition if. Si tu l'enlève, tu as la proposition d'Artur.

Pour voir quelles sont les variables envoyées via la méthode GET fais :
echo '<pre>';
print_r ($_GET);
echo '</pre>';
Cela devrait t'afficher toutes les variables.

par AB » 02 juil. 2007, 03:01

La solution que t'a donné @rthur devrait fonctionner si tu souhaites réaliser une addition.
Tu l'as testée?

par chrislabricole » 02 juil. 2007, 00:20

ata ata, si je mais sa dans ma page :
if (isset($_GET["mode"]) && $_GET["mode"] == "+") {
   $nb1  =$_GET["nb1"];
   $nb2  =$_GET["nb2"];
   $nombre_final = $nb1+$nb2;  
   }
echo $nombre_final;
et que l'url est :
http://localhost/scriptphp.php?nb1=5&nb2=1&mode=+

bah il s'affiche rien... :roll:

par Aureusms » 02 juil. 2007, 00:08

Tu fais une condition sur ton mode et tu ajoutes c'est tout :
if (isset($_GET["mode"]) && $_GET["mode"] == "+") {
   $nb1  =$_GET["nb1"];
   $nb2  =$_GET["nb2"];
   $nombre_final = $nb1+$nb2;
   }

echo $nombre_final;
Ton problème est que le "." fais une concaténation I.e relie des textes ensembles, il ne les ajoute pas...
Ton code
echo $_GET['nb1'].$_GET['mode'].$_GET['nb2'];
va afficher : 5+2. mais il ne pas pas faire la formule...

par chrislabricole » 01 juil. 2007, 23:56

à mince, pardonner moi, je me suis gouré dans les exemples... :
:oops:
dans l'url, j'ai :
http://localhost/scriptphp.php?nb1=5&nb2=1&mode=+
mon code :
echo $_GET['nb1'].$_GET['mode'].$_GET['nb2'];

par @rthur » 01 juil. 2007, 23:44

Bonjour,

As-tu essayé cela:
echo ($_GET['nb1']+$_GET['nb2']); 
Sinon, il te reste encore la fonction intval():
http://fr.php.net/intval

Opérateur qui devient du texte - question

par chrislabricole » 01 juil. 2007, 23:35

Bonjour,

j'ai une quelque chose qui me tracasse, qui n'est pas normal mais qui est normal à la fois.... :

dans l'url, j'ai :
http://localhost/scriptphp.php?nb1=5&nb2=1
mon code :
echo $_GET['nb1'] + $_GET['nb2'];
en fait, il écrit :
"5 + 1", et non pas "6" (le résultat)
je sais c'est normal, mais comment faut il faire alors pour qu'il affiche le résultat ?? :roll:

Merci