2010-02-14 8 views
2

Tous,PHP urlencode et décoder

Il y a une zone de texte dit

<input type="submit"> 

Et si un utilisateur donne l'entrée comme,

here is my name and my mail id is "[email protected]" 

Et lorsque les données sont affichées sur le côté serveur les données sont reçues comme voici mon nom et mon adresse mail est \ "[email protected] \"

Backslash est ajouté derrière des guillemets.Maintenant comment encoder les données avant de soumettre.J'utilise php sur le côté serveur ..

Merci.

Répondre

3

Ceci est magic_quotes_gpc - pour le supprimer, il suffit de le désactiver dans php.ini ou de le supprimer en utilisant stripslashes ($ your_var); Toutefois, lorsque vous stockez les données dans une base de données, vous devez utiliser les fonctions d'échappement respectives pour empêcher les injections sql de toute façon et lorsque vous affichez des données affichées par l'utilisateur, votre fonction de désinfection devrait empêcher les injections de xss.

+0

Merci ............................. – Hulk

1

Désactiver magic_quotes dans php.ini ou utiliser stripslashes($text) en PHP pour supprimer les barres obliques.

2

Il semble que la directive magic_quote_gpc est activé sur votre serveur:

Lorsque magic_quotes sont sur tous ' (guillemets simples), "(guillemet), \ (barre oblique inverse) et NUL sont se sont échappés avec si vous ne pouvez pas le désactiver dans la configuration de votre serveur, une barre oblique inverse automatiquement


une solution, serait de:.

  • détectera si cette option est activée
  • si oui, retirez la fuite de l'entrée, à l'aide stripslashes

A propos, vous pouvez lire la section Disabling Magic Quotes.


Bien sûr, vous devrez échapper vos données correctement avant de l'utiliser; par exemple, avant de l'injecter dans une requête SQL.

+0

Merci .. .................... – Hulk

1

Vous avez probablement des guillemets magiques activés sur votre système. Ce n'est pas un good thing.

2

Vous pouvez vous débarrasser des citations magiques aussi en PHP si votre hébergeur ne vous permet pas de le désactiver dans le fichier php.ini. Mettez ce code au-dessus de votre script PHP:

if (get_magic_quotes_gpc()) { 
     function stripslashes_deep($value) { 
      $value = is_array($value) ? 
        array_map('stripslashes_deep', $value) : 
        stripslashes($value); 
      return $value; 
     } 

     $_POST = array_map('stripslashes_deep', $_POST); 
     $_GET = array_map('stripslashes_deep', $_GET); 
     $_COOKIE = array_map('stripslashes_deep', $_COOKIE); 
     $_REQUEST = array_map('stripslashes_deep', $_REQUEST); 
    }