Aller au contenu
Gribouille26

Bouton reset formulaire

Noter ce sujet :

Recommended Posts

Chez moi ce code marche :

<?
if ($bouton== "zero") {
 $euros="";
 $francs="";
 $marks="";
}

if ($bouton=="convertir") {
  if(empty($francs) and empty($marks) and isset($euros)) {
      $francs = round(100*$euros*6.55957-0.01)/100;
      $marks = round(100*$euros*1.95583-0.01)/100;
   }
   if(empty($euros) and empty($marks) and isset($francs)) {
      $euros = round(100*$francs/6.55957-0.01)/100;
      $marks = round(100*$francs/3.353855-0.01)/100;
   }
   if(empty($euros) and empty($francs) and isset($marks)) {
      $euros = round(100*$marks*0.511292-0.01)/100;
      $francs = round(100*$marks*3.353855-0.01)/100;
   }
}
?>
<form method="post" action="convert.php">
<p><input type="text" size="10" name="euros" value="<? echo $euros;?>"> Euros<br></p>
<p><input type="text" size="10" name="francs" value="<? echo $francs;?>">  Francs<br></p>
<p><input type="text" size="10" name="marks" value="<? echo $marks;?>">  Marks<br></p>
<p><input type="submit" value="convertir" name="bouton">
<input type="submit" value="zero" name="bouton"></p>
</form>

Modifié par Titag

Partager ce message


Lien à poster
Partager sur d’autres sites

Et tu sais pourquoi ?

Parce que tu fait un test en utilisant la fonction empty().

Or sur la remise à zero tu initialise tes variables avec un espace (" ") et non un caractere nul ("")... d'où erreur

Partager ce message


Lien à poster
Partager sur d’autres sites

Attends, j'étais en train d'halluciner, vraiment!!! :blink::wacko:

Et tu sais pourquoi ?

Parce que tu fait un test en utilisant la fonction empty().

<{POST_SNAPBACK}>

Tu veux dire quoi par là? Je veux absolument comprendre, là....

Partager ce message


Lien à poster
Partager sur d’autres sites

Après avoir vu ta page, je réaffirme ce que je disais.

Il te faut plusieurs cas.

cas 0: rien n'ai saisi. donc on saisit.

cas 1: la zone A est saisie, on convertit B et C OU on reset

cas 1: la zone B est saisie, on convertit A et C OU on reset

cas 1: La zone C est saisie, on convertit A et B OU on reset.

Tu dois démarrer l'écriture de ton script en vérifiant si le reset a été activé.

Si c'est le cas, "marqueur" = 0

Si ce n'est pas le cas:

On initialise un "marqueur" si celui-ci n'a pas déjà été valorisé.

switch

Cas 0:

formulaire de saisie. PLUS valorisation du marqueur à 1.

on soumet (en plaçant un <input type="hidden" name="marqueur" value=1>, que j'ai oublié de préciser lors de mon premier post)

Cas 1: Test de la zone saisie, conversion et affichage des zones converties.

avec affichage d'un bouton reset.

Dans ce formulaire, si tu cliques sur le bouton reset, le "marqueur" sera valorisé à 0.

Comme tu réaffiche ta page, tu passes dans le test de condition du reset en tt début de script, et tu repars avec un marqueur = 0, donc, un cas 0.

tu peux ressaisir...

Partager ce message


Lien à poster
Partager sur d’autres sites

D'accord, je comprend mieux ce que tu veux dire Xpatval...

On fait la même chose, mais de deux façons différentes, en gros! :lol:

Ta solution à l'air plus "conventionnelle", mais comme elle n'est pas encore aussi claire que celle que j'ai utilisée, je crois que je vais garder la mienne pour le moment et me pencher sur le "plus conventionnel" une autre fois... :whistling:

Merci. :flower:

Partager ce message


Lien à poster
Partager sur d’autres sites

Par exemple :

if(empty($francs) and empty($marks) and isset($euros))

empty "dit" si la variable est vide ou non... or une variable qui contient un espace comme tu l'initialise dans le if ($bouton == "zero") n'est pas vide.

C'est pour ca qu'il fait la conversion qu'une seule fois... au 1er chargement de la page.

Partager ce message


Lien à poster
Partager sur d’autres sites

D'accord!!

Merci! :flower::up:

Euh...

Si j'ose une question subsidiaire: Je lisais pendant mes recherches qu'il faut mettre ses variables en $_POST['variable'] . C'est plus sécurisé...

Je comprend pas ce qu'il faut faire concrètement.... :huh:

Partager ce message


Lien à poster
Partager sur d’autres sites
Je comprend pas ce qu'il faut faire concrètement....

Tout simplement, depuis une certaine version de php, le paramètre de configuration REGISTER_GLOBALS, qui était à ON, par défaut, a été passé à OFF, par défaut aussi.

Autrefois, et quelque soit la méthode utilisée (post, get, cookie...), tu n'avais pas besoin d'initialiser tes variables. Ce qui avait, entre autre, pour conséquence un risque certain lors de passages de paramètres dans une url (http://www.monsite.com?var1=...&var2=...). N'importe qui pouvait rentrer dans l'url n'importe quel paramètre...

Dorénavant, tu dois initialiser les variables que tu vas utiliser. Si quelqu'un souhaite saisir n'importe quoi dans ton url, le paramètre (sa variable) n'existant pas, le risque est amoindri.

Il te faut faire, pour chaque variable:

$tavariable = ( isset ( $_POST['tavariable'] ) ) ? $_POST['tavariable'] : '';

ou

$tavariable = ( isset ( $_GET['tavariable'] ) ) ? $_GET['tavariable'] : '';

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×