Des barres obliques inverses supplémentaires sont ajoutées en PHP
Question
Mon hébergeur crappy a effectué des mises à niveau l'autre jour et certains paramètres ont mal tourné, car si vous regardez le wiki de notre société (MediaWiki), chaque citation est échappée avec des barres obliques inverses. Ce ne sont même pas seulement les données qui sont publiées (c'est-à-dire: les articles) qui sont concernées, mais également le texte standard de MediaWiki. par exemple:
Vous avez suivi un lien vers une page qui n'existe pas encore. Pour créer la page, commencez à taper dans la case ci-dessous (voir la page d'aide pour plus d'informations). Si vous êtes ici par erreur, cliquez simplement sur le bouton \ '\' \ 'Retour \' \ '\' de votre navigateur.
La première chose que j'ai faite a été de désactiver magic_quotes_gpc
ET magic_quotes_runtime
en utilisant un fichier .htaccess
, mais cela se produit toujours. Mon php_info ()
rapporte ceci:
Setting Local Value Master Value
magic_quotes_gpc Off On
magic_quotes_runtime Off On
magic_quotes_sybase Off Off
Des idées?
La solution
Si les drapeaux PHP sont définis avec php_admin_flag
/ php_admin_value
, vous ne pouvez pas le modifier à partir d'un fichier .htaccess
. Cela m'a déjà causé des maux de tête. Désactivez-le dans php.ini
ou annulez les guillemets magiques au moment de l'exécution:
http://talks.php.net/show/php-best-practices/ 26
Autres conseils
Vous voudrez peut-être confirmer que les données de votre base de données n'ont pas été corrompues. Si vous ajoutiez des barres obliques () à vos données alors que magic_quotes avait été activé à votre insu, vous feriez double-slasher les données allant dans votre base de données.
Vous devrez leur demander de modifier la valeur principale ou de la gérer vous-même. Je ne crois pas que vous puissiez définir magic_quotes_gpc ()
à l'exécution pour les super globaux. (le définir à l'exécution supprimera des éléments tels que la base de données / fichiers, mais pas les globals)
if (ini_get('magic_quotes_gpc') ) {
foreach( Vous devrez leur demander de modifier la valeur principale ou de la gérer vous-même. Je ne crois pas que vous puissiez définir magic_quotes_gpc ()
à l'exécution pour les super globaux. (le définir à l'exécution supprimera des éléments tels que la base de données / fichiers, mais pas les globals)
<*>GET as $key=>$value) {
Vous devrez leur demander de modifier la valeur principale ou de la gérer vous-même. Je ne crois pas que vous puissiez définir magic_quotes_gpc ()
à l'exécution pour les super globaux. (le définir à l'exécution supprimera des éléments tels que la base de données / fichiers, mais pas les globals)
<*>GET[$key] = stripslashes($value);
}
} // etc...
Quelque chose d'autre appelle peut-être set_magic_quotes_runtime ().
J'utilise stripslases () pour supprimer les barres obliques lors de l'affichage.
Avez-vous essayé de contacter votre hôte crappy et de consigner une erreur? Vous n'êtes probablement pas le seul à être affecté si vous utilisez un hébergement partagé.