2012-04-09 3 views
0

J'ai un modèle de site par défaut j'utiliser pour mon site comme ci-dessous:PHP Magic Quotes ajouter des barres obliques au fichier de modèle?

<!-- Meta start --> 
<title></title> 
<meta name="description" content="" /> 
<meta name="keywords" content="" /> 
<!-- Meta end --> 

<?php 
    require_once($sidebar_inc); 
?> 

<?php 
    // main.inc.php 
    require_once($main_inc); 
?> 

<!-- CONTENT START --> 
<?php 
    // signup.tpl template location 
    $tpl = 'inc/tpl/signup.tpl'; 
    // check if files exists and is readable 
    if(file_exists($tpl) && is_readable($tpl)) { 
     echo file_get_contents($tpl); 
    } else { 
     echo 'Template not found'; 
    } 
?> 

<!-- CONTENT FINISH --> 

<?php 
    // footer.inc.php 
    require_once($footer_inc); 
?> 

Maintenant, mon problème est lorsque le signup.tpl est inclus via file_get_contents si les guillemets magiques est sur elle ajoute "\ à toutes les données de formulaire.

Voici le modèle signup.tpl

<h1>Sign up</h1> 

<p>Welcome to SITE_NAME. To get started, you’ll need an account.</p> 

<form action="signup.php" method="post"> 
    <div class="form_settings"> 
     <p><span>Name</span><input class="contact" type="text" name="your_name" value="" /></p> 
     <p><span>Email Address</span><input class="contact" type="text" name="your_email" value="" /></p> 
     <p><span>Message</span><textarea class="contact textarea" rows="8" cols="50" name="your_enquiry"></textarea></p> 
     <p style="padding-top: 15px"><span>&nbsp;</span><input class="submit" type="submit" name="contact_submitted" value="submit" /></p> 
    </div> 
</form> 

En gros avec des guillemets magiques sur elle ressemble à ceci lorsque le signup.tpl est inclus.

enter image description here

Mais avec des guillemets magiques, il n'ajoute des barres obliques il semble comme il se doit:

enter image description here

Maintenant, je sais que vous ne devriez pas avoir des citations magiques sur mais j'ai une fonction pour supprimer les barres obliques si des guillemets magiques sont activés de $_GET, $_POST, $_COOKIE, $_SESSION afin que mes scripts fonctionnent même si les guillemets magiques sont activés. Le problème est que je ne sais pas comment résoudre mon problème que si les citations magiques sont sur cela il n'ajoutera pas de barres obliques au signup.tpl. Je veux juste m'assurer que mon (mes) script (s) fonctionnera (nt) si, par exemple, je le déplaçais sur un serveur sur lequel il y avait des guillemets magiques.

Que dois-je faire pour empêcher les guillemets magiques d'ajouter des barres obliques au fichier signup.tpl? Je sais que je pourrais juste désactiver les citations magiques mais comme je l'ai dit au cas où je changerais de serveur avec des citations magiques et je ne permettrais pas de désactiver les citations magiques.

(Ignorer le formulaire, ce n'est pas une forme d'inscription juste utilisé comme exemple pour montrer le problème).

Répondre

2

Il existe deux paramètres de guillemets magiques. A partir du manuel:

; Magic quotes for incoming GET/POST/Cookie data. 
magic_quotes_gpc = Off 

; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc. 
magic_quotes_runtime = Off 

Magic-citations-runtiume n'est pas la même chose que magic_quotes_gpc citant - la magie des guillemets-exécution arrive à toutes les entrées à l'exécution, pas seulement GET/POST/COOKIE globals. Vous devez désactiver ce paramètre au début de votre script:

set_magic_quotes_runtime(false); # pre 5.3 
ini_set('magic_quotes_runtime', 0); # 5.3 onwards 
+0

Merci pour la réponse très rapide, très appréciée – PHPLOVER

Questions connexes