PHPFrance

Discuter de tout ce qui touche au PHP, en français.

Vers le contenu

» Masquer les résultats de la recherche

Recherche dynamique PHPfrance

  1. Effectuez une recherche, les résultats s'afficheront dynamiquement ici.

select option et $_POST dedans

Pour ceux qui débutent en PHP.

select option et $_POST dedans

Messagede dan4 le 08 Fév 2010, 23:18

Bonjour, voici le code qui me pose problème, j'explique après:

<FORM action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

<input style="font-size:1.2em;font-family:Arial;" type="text" value="<?php echo $_POST['hash']; ?>" name="hash" />



<select name="laconversion" onchange="this.form.submit();" size="6">
  <option value="<?php echo strtolower(hash("md4",$_POST['hash'])); ?>">MD4</option>
  <option value="<?php echo strtolower(hash("md5",$_POST['hash'])); ?>">MD5</option>
  <option value="<?php echo strtolower(hash("sha1",$_POST['hash'])); ?>">SHA1</option>
  <option value="<?php echo strtolower(hash("sha256",$_POST['hash'])); ?>">SHA256</option> 
  <option value="<?php echo strtolower(hash("sha384",$_POST['hash'])); ?>">sha384</option>
  <option value="<?php echo strtolower(hash("sha512",$_POST['hash'])); ?>">SHA512</option>   
</select>
</form>
<?php
  echo '<input style="font-size:0.7em;font-family:Arial" type="text" name="input" value="'.$_POST['laconversion'].'" size="180" />';
?>


- La première case est le texte qu'on doit mettre.
- La seconde est le choix de Hashage comme md5.
- Le troisieme est le résultat obtenu.

dans option à value: si je mets pas de variable, ça marche. Si non autrement,
je dois cliquer deux fois.

Quand je clique sur la seconde après avoir écris un texte, j'obtiens le mauvais code md5.
Mais dès que je clique une deusieme fois, j'obtiens le bon code md5.

J'ai essayé plusieurs combinaisons et rien n'y fait.

De l'aide serait apprécié.
dan4
Embryon
 
Messages: 6
Inscription: 04 Aoû 2007, 10:26

Publicité

Re: select option et $_POST dedans

Messagede Ryle le 09 Fév 2010, 12:48

Ta logique n'est pas la bonne... Ton premier champ contient ta valeur à crypter. Ton deuxième champ ne contient la valeur après cryptage qu'une fois que tu as soumis le formulaire. Enfin ton 3ème champ affiche la valeur du deuxième après soumission du formulaire.

Résultat, tu es obligé de soumettre deux fois le formulaire pour renseigner les trois champs, alors que tu pourrais demander à l'utilisateur de renseigner ses choix et ne soumettre qu'une seule fois :

Syntaxe: [ Télécharger ] [ Masquer ]
Code php
<FORM action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

<input style="font-size:1.2em;font-family:Arial;" type="text" value="<?php echo $_POST['hash']; ?>" name="hash" />

<select name="laconversion" onchange="this.form.submit();" size="6">
  <option value="md4">MD4</option>
  <option value="md5">MD5</option>
  <option value="sha1">SHA1</option>
  <option value="sha256">SHA256</option>  
  <option value="sha384">sha384</option>
  <option value="sha512">SHA512</option>    
</select>
</form>

<?php
  echo '<input style="font-size:0.7em;font-family:Arial" type="text" name="input" value="'. strtolower(hash($_POST['laconversion'], $_POST['hash'])); ?>.'" size="180" />';
?>

Le résultat du hashage est ainsi directement affiché au premier envoi, en combinant directement les deux valeurs spécifiées.
Tu peux ensuite compléter le select pour afficher le type de hashage sélectionné en ajoutant l'attribut "selected" dans l'option retenue :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...
Avatar de l’utilisateur
Ryle
Modérateur PHPfrance
Modérateur PHPfrance
 
Messages: 8136
Inscription: 07 Fév 2006, 17:25
Localisation: Lat: 48°89. Long: 2°30.


Retourner vers PHP débutant

Qui est en ligne

Utilisateurs parcourant ce forum: ilbee et 8 invités

  • Publicité