Aller au contenu

Bouton reset formulaire


Sujets conseillés

Posté (modifié)

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
Posté

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

Posté

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à....

Posté

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...

Posté

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:

Posté

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.

Posté

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:

Posté
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'] : '';

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...