Array et formulaire et variable

Utilisateur anonyme - 15 déc. 2010 à 09:02
abdoulax Messages postés 875 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 22 juin 2012 - 19 déc. 2010 à 18:03
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

syllebreton Messages postés 66 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 28 décembre 2010
15 déc. 2010 à 10:09
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 !
0
Utilisateur anonyme
15 déc. 2010 à 10:54
MERCII !
Mais la letttre vient mais aprees la letre suivante ecrase l'ancienne !
Help
0
Utilisateur anonyme
15 déc. 2010 à 11:07
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 !
0
syllebreton Messages postés 66 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 28 décembre 2010
15 déc. 2010 à 11:09
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 .= '_';
 }

// ...

?>

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
15 déc. 2010 à 12:39
Tu peut me redonner le code complet ?
MErcii beaucoup !
0
Utilisateur anonyme
15 déc. 2010 à 12:47
Parceque sa a pas l'air de marcher

En tout cas merci, merci beaucoup
0
Utilisateur anonyme
15 déc. 2010 à 13:52
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 !
0
syllebreton Messages postés 66 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 28 décembre 2010
15 déc. 2010 à 13:57
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.
0
Utilisateur anonyme
15 déc. 2010 à 14:01
Excuse moi, Mais j'ai vraiment besoin de toi

LE second code ne marche pas ..
0
Utilisateur anonyme
15 déc. 2010 à 14:12
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 !
0
Utilisateur anonyme
15 déc. 2010 à 15:12
STPPPPPPPPPPPPPPPP
0
hyperion56 Messages postés 5 Date d'inscription mercredi 21 mai 2008 Statut Membre Dernière intervention 15 décembre 2010
15 déc. 2010 à 16:36
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.
0
Utilisateur anonyme
15 déc. 2010 à 16:55
Mais j'ai chercher et j'y arrive pas
0
phpAnonyme Messages postés 392 Date d'inscription mercredi 28 octobre 2009 Statut Membre Dernière intervention 23 mars 2012 55
15 déc. 2010 à 18:19
NON MAIS C'est qu'il le fais EXPRES le bougre !

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


______________________________________________________________________
0
abdoulax Messages postés 875 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 22 juin 2012 1
19 déc. 2010 à 18:03
looool
0
Rejoignez-nous