HTML-PHP : pb tout bête sur passage de valeur

Welscotch -  
 Welscotch -
bonjour ts le monde :)

voilà mon pb :

j'ai 2 feuilles : a.php et b.php
le but est de faire passer du texte de A vers B et de retourner ce texte de B vers A.

le truc parait donc très simple, mais j'ai un souci que j'arrive pas à régler : le texte passe mal s'il contient
une côte '
une double côte "
un espace

donc c'est le pti défi du jour :

voici le code de a.php :

<html>

<form method="post" action="b.php">
Texte :
<?
$texte = stripslashes($texte);
echo "<input type='text' name='texte' value=".$texte.">";
?>
<input type="submit" name="apercu" value="Aperçu">
</form>

</html>

voici le code de b.php :

<html>

<? $texte = stripslashes($texte); ?>
Texte reçu : <?php echo $texte; ?><br><br>

<form method="post" action="a.php">
<input type='hidden' name='texte' value=<?echo $texte;?> >
<input type="submit" name="retour" value="retour">
</form>

</html>

et il faut réussir à faire passer cette chaîne de caractères :
< aaa'aaa"aaa aaa >

avec le code fournit, çà marche presque, de A vers B çà passe nickel, mais au retour de B vers A la chaîne est coupée au premier espace rencontré.

çà vient probablement de l'encadrement de la variable $texte. j'ai deja essayer de tourner çà dans tout les sens, ya toujours quelquechose qui ne vas pas, soit c'est à la cote simple que çà coupe la chaîne, ou là la côte double, ou à l'espace.

voilà j'espère que j'ai pas été trop compliqué dans mes explications, et j'espère vivement qu'on pourra trouver une solution.

(çà vient sûrement d'un truc tout bête et jvais sûrement passer pour un con mais bon tant pis ... :p )

6 réponses

  1. kalamit
     
    Salut,

    Compilé, testé et approuvé... :)

    a.php

    <html> 
    
    <?php
    echo $texte;
    ?>
    <form method="post" action="b.php">
    Texte :
    <?
    //$texte = stripslashes($texte);
    $texte = htmlentities($texte);
    $texte = stripslashes($texte);
    echo "<input type='text' name='texte' value=\"$texte\">";
    ?>
    <input type="submit" value="Aperçu">
    </form>

    </html>


    b.php

    <html> 
    

    <? //$texte = stripslashes($texte);
    $texte = htmlentities($texte);
    $texte = stripslashes($texte);
    ?>
    Texte reçu : <?php echo "$texte"; ?><br><br>

    <form method="post" action="a.php">
    <?php
    echo "
    <input type='hidden' name='texte' value=\"$texte\">
    ";
    ?>
    <input type="submit" value="retour">
    </form>

    </html>


    Kalamit,
    o(^_^)o
    0
    1. Jean-François Pillou Messages postés 18961 Date d'inscription   Statut Webmaster Dernière intervention   63 308
       
      Dis Kala, tu m'apprendras à compiler du PHP ? :-))
      0
      1. Reivax > Jean-François Pillou Messages postés 18961 Date d'inscription   Statut Webmaster Dernière intervention  
         
        Pour info les dernières version de php SONT compilées :)
        Mais ça se passe de façon transparente pour l'utilisateur ^^
        0
      2. kalamit > Jean-François Pillou Messages postés 18961 Date d'inscription   Statut Webmaster Dernière intervention  
         
        Heu bah non, Jeff a raison... C'est pas compilé mais interpreté ! Si il faut compiler a chaque fois avant d'executer, t'attendra le lendemain matin pour voir ta page s'afficher ! :o))

        Kalamit,
        o(^_^)o
        0
  2. kalamit
     
    Alors ? J'ai bon ?

    Kalamit,
    o(^_^)o
    0
    1. Welscotch
       
      yes çà marche !! :)

      il fallait donc utiliser la fonction htmlentities()

      merci du coup de main Kalamit ;)



      :D
      0
  3. Welscotch
     
    aaaarggg !!!

    snif en fait il ya un problème avec ton astuce :(

    il faut que je puisse passer du code html, par exemple :

    <img src="http://www.commentcamarche.net/images/logotop.gif">


    et sur b.php l'image doit s'afficher. mais là avec la fonction htmlentities çà marche po :'(
    0
  4. kalamit
     
    Bon attends, je reprends le truc...

    Kalamit,
    o(^_^)o
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. kalamit
     
    a.php

    <html> 
    
    <form method="post" action="b.php">
    Texte :
    <?
    $texte = htmlentities($texte);
    $texte = stripslashes($texte);
    echo "<input type='text' name='texte' value=\"$texte\">";
    ?>
    <input type="submit" value="Aperçu">
    </form>

    </html>


    b.php

    <html> 
    

    <?
    $texte = stripslashes($texte);
    ?>
    Texte reçu : <?php echo "$texte"; ?><br><br>

    <form method="post" action="a.php">
    <?php
    $texte = htmlentities($texte);
    echo "
    <input type='hidden' name='texte' value=\"$texte\">
    ";
    ?>
    <input type="submit" value="retour">
    </form>

    </html>


    Et hop ! :o)

    Kalamit,
    o(^_^)o
    0
  7. Welscotch
     
    trankil !! cette fois-ci çà marche impecable !!! :) :) :D

    merci bcp pour ton aide :)

    @+
    0