Jump to content
Sign in to follow this  
Gribouille26

Bouton reset formulaire

Rate this topic

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>

Edited by Titag

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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à....

Share this post


Link to post
Share on other 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...

Share this post


Link to post
Share on other 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:

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other 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:

Share this post


Link to post
Share on other 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'] : '';

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...