Array et formulaire et variable

Signaler
-
Messages postés
875
Date d'inscription
samedi 17 mai 2003
Statut
Membre
Dernière intervention
22 juin 2012
-
bonjour,
J'ai une question qui me semble assez complexe.
J'ai un mot dans une variable comme sa : $mot = "abcdef";
Je cherche a noter autant de tiret que de lettre du mot, j'ai fais comme sa :

<?php
$NombreDeLettre = strlen($mot);
$j ="_ ";
for ($i = "1"; $i <= $NombreDeLettre; $i++) {
echo $j;
}
?>

Cela marche.
Maintenant j'ai un formulaire avec un champ texte et un bouton submit.
<form method='post' >Votre lettre : 


</form>

Comment lorsque je met une lettre dans le champ et que je valide, si la lettre est presente : Je la place a la place du bon tiret sinon je fais rien.
au prealable j'avait placer les lettre dans un tableau :
<?php
$str = $mot;
$arr1 = str_split($str);

// pour tester si la lettre tapper existe : 
if (isset($_POST['envoyer'])){
$os = $arr1;
$l = $_POST['lettre'];
if (in_array($l, $os)) {
    echo "La valeur est trouver";
}
}
?>


Merciiii beaucoupp

15 réponses

Messages postés
66
Date d'inscription
jeudi 21 juillet 2005
Statut
Membre
Dernière intervention
28 décembre 2010

Bonjour,

Pour ton premier bout de code, regarde la fonction str_pad.

Et pour ta question :

<?php
// Récupération du mot
$str = $mot;

// Variable qui contiendra le résultat
$resultat = '';

// Récupération de la taille du mot
$taille = strlen($str);

// Si le formulaire est validé
if (isset($_POST['envoyer'])){

 // Récupération de la lettre
 $l = $_POST['lettre'];

 // Parcours de la chaine de caractère ($str)
 for ($i=0;$i<$taille;$i++) {
  // Si la lettre est la bonne
  if( $str{$i} == $l )
    // On ajoute la lettre au résultat
    $resultat .= $l;
  else
    // Sinon on ajoute _
    $resultat .= '_';
 }

} else {
  // Si le formulaire n'est pas correctement posté, on 
  // reconstruit le mot mystère.
  $resultat = str_pad($resultat, $taille, '_');
}

// On affiche le résultat.
echo $resultat;
?>


J'espère que ça te convient !

bye !

MERCII !
Mais la letttre vient mais aprees la letre suivante ecrase l'ancienne !
Help

Comment faire pour que quand cest pas bon, au debut on a une variable $erreur = "7"
Et quand on fait une erreur, on echo :
$a = $erreur--;
echo "il vous reste $a chance";

MERCI

C'est tres urgent !
Messages postés
66
Date d'inscription
jeudi 21 juillet 2005
Statut
Membre
Dernière intervention
28 décembre 2010

Oups, j'avais pas pensé à ça.

<?php

// ...

 // Parcours de la chaine de caractère ($str)
 for ($i=0;$i<$taille;$i++) {
  // Si la lettre est déjà trouvée
  if( $str{$i} != '_' )
    // On passe à l'itération suivante
    continue;
  // Si la lettre est la bonne
  elseif( $str{$i} == $l )
    // On ajoute la lettre au résultat
    $resultat .= $l;
  else
    // Sinon on ajoute _
    $resultat .= '_';
 }

// ...

?>


Tu peut me redonner le code complet ?
MErcii beaucoup !

Parceque sa a pas l'air de marcher

En tout cas merci, merci beaucoup

Comment faire pour que quand cest pas bon, au debut on a une variable $erreur = "7"
Et quand on fait une erreur, on echo :
$a = $erreur--;
echo "il vous reste $a chance";

MERCI

C'est tres urgent !
Messages postés
66
Date d'inscription
jeudi 21 juillet 2005
Statut
Membre
Dernière intervention
28 décembre 2010

Le but est aussi que tu cherches et que tu apprennes par toi même !

Je t'ai donné des éléments de réponse, je n'ai pas testé le code parce que je ne peux pas le faire mais il ne doit pas rester de trop grosses erreurs.

Maintenant, je n'ai pas envie de faire ton boulo à ta place. Et sache qu'une demande "très urgente" n'a pas grand chose à faire sur un forum d'entraide.

/me repart aider des gens moins insistants.

Excuse moi, Mais j'ai vraiment besoin de toi

LE second code ne marche pas ..

Le code finale :
<form method="post" >Votre lettre : 


</form>
<?php
$mot = "abcdef";
// Récupération du mot
$str = $mot;
// Variable qui contiendra le résultat
$resultat = '';
// Récupération de la taille du mot
$taille = strlen($str);

// Si le formulaire est validé
if (isset($_POST['envoyer'])){
// Récupération de la lettre
$l = $_POST['lettre'];


 // Parcours de la chaine de caractère ($str)
 for ($i=0;$i<$taille;$i++) {
  // Si la lettre est déjà trouvée
  if( $str{$i} != '_' )
    // On passe à l'itération suivante
    continue;
  // Si la lettre est la bonne
  elseif( $str{$i} == $l )
    // On ajoute la lettre au résultat
    $resultat .= $l;
  else
    // Sinon on ajoute _
    $resultat .= '_';
 }
} else {

    // Si le formulaire n'est pas correctement posté, on 
  // reconstruit le mot .
  $resultat = str_pad($resultat, $taille, '_');
}

// On affiche le résultat.
echo $resultat;

?>


NE marche pas..
Help svp !

STPPPPPPPPPPPPPPPP
Messages postés
5
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
15 décembre 2010

Si tu ne cherches pas par toi-même, tu ne seras jamais capable de développer quoi que ce soit.
Le forum est fait pour t'aider, pas pour faire le boulot à ta place.

Mais j'ai chercher et j'y arrive pas
Messages postés
392
Date d'inscription
mercredi 28 octobre 2009
Statut
Membre
Dernière intervention
23 mars 2012
45
NON MAIS C'est qu'il le fais EXPRES le bougre !

TROIS postes pour un même sujet !!!!!!!!!!!!


______________________________________________________________________
Messages postés
875
Date d'inscription
samedi 17 mai 2003
Statut
Membre
Dernière intervention
22 juin 2012

looool