Tom's Guide > Forum > Programmation > [Résolu]mon programme me double les antislash

[Résolu]mon programme me double les antislash

Forum Programmation : [Résolu]mon programme me double les antislash

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

salut !!
j'ai un probleme dans mon programma php/html, je lui donne des liens avec des antislash et lui il me les double:
en sachant que ma page s'appelle modification.php et que je post vers la meme page

Code :
  1. <html>
  2.     <?
  3.         if($_POST["Ajouter"] && !isset($_POST['Application'])){
  4.             echo "Ajout d'une application ou d'un produit";
  5.     ?>
  6.     <FORM method=post action="modification.php">
  7.     <TABLE BORDER=0>
  8.         <TR><br/>
  9.             <TD>Nom de l'application</TD>
  10.             <TD><INPUT type=text name="Application"></TD>
  11.         </TR>
  12.         <TR>
  13.             <TD>R&eacute;pertoire de livraison</TD>
  14.             <TD><INPUT type=text name="Repertoire_de_livraison"></TD>
  15.         </TR>
  16.         <TR>
  17.             <TD align="center"><br/><br/><INPUT type="submit" name="Ajouter" value="Ajouter"></TD>
  18.         </TR>
  19.     </TABLE>
  20.         </FORM>
  21.     <? } echo $_POST['Repertoire_de_livraison'];?>


si par exemple mon repertoire est \\serveur\document
lui il me repond \\\\serveur\\document.
si vous voyez d'ou ça vient, parceque je ne vois pas dutout.
Merci,
Emma.


Message édité par emma13 le 24-07-2007 à 15:14:00
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

essaye la fonction stripslashes()


Message édité par cybertaf le 24-07-2007 à 10:49:31
Répondre à cybertaf

En php (comme dans pas mal de langages) le caractere antislash \ correspond à un caractere d'echapement permetant de créer des caractères spéciaux.

Par exemple :

Code :
  1. $text = ' Je t\'appelle demain !';



Et en l'occurence pour ajouter un antislash à une chaine de caractère, il faut utiliser la combinaison '\\'.

Cela peut expliquer ton problème.

Répondre à xaebhal

ça marche pas, parceque la fonction stripslashes() m'enleve tous le '\'.
et ce qui est bizarre, si j'enleve
" if($_POST["Ajouter"] && !isset($_POST['Application'])){
echo "Ajout d'une application ou d'un produit"; " et que je poste vers une autre page, ça ne double pas les "\" ??

Répondre à emma13

regarde du coter de magic_quote, sa peut peut etre venir de sa.

Répondre à Sundevil

oui c'est ce que j'ai fait !!
mais je ne comprend pas trop !!

Répondre à emma13

Ok, en faite, les magic_quote, c'est un systeme php qui te protege tes données automatiquement en rajoutant des backslash devant tes guillement par exemple.

Donc si tu les reproteges pardessus, sa double la doses de backslash pour rien.

Regarde ce lien, y'a un exemple pour expliquer comment sa marche (la fonction peu etre utile d'ailleur):
http://fr2.php.net/manual/fr/funct [...] string.php

Répondre à Sundevil

Code :
  1. if ( get_magic_quotes_gpc() ) {
  2.     function stripslashes_deep( $value ) {
  3.         return ( is_array($value) )
  4.             ? array_map('stripslashes_deep', $value)
  5.             : stripslashes($value);
  6.     } // end of 'stripslashes_deep()'
  7.     $_GET      = array_map('stripslashes_deep', $_GET);
  8.     $_POST    = array_map('stripslashes_deep', $_POST);
  9.     $_COOKIE  = array_map('stripslashes_deep', $_COOKIE);



bon voila ce que j'ai fait, ça marche mais c'est un peu brut!!

Répondre à emma13

Je suis d'accord que c'est un peu gore ^^

Répondre à Sundevil

bon ben je vais laisser ça comme ça pour le moment (c'est une application interne donc normalement j'aurai pas de probleme).
Merci tout le monde.

Répondre à emma13
Tom's Guide > Forum > Programmation > [Résolu]mon programme me double les antislash
Aller à :

Il y a 832 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens