Bonjour à tous !
J'ai installé récemment un forum en smf 1.1.6 avec le tiny portal en 0.9.8
L'installation s'est bien passée, aucun soucis.
On a testé plusieurs thème et en fait un membre s'est aperçu que les ' se transformaient en '' (deux apostrophes) et si on édite le post, ça deviennt ''''
Donc je ne vois pas où est le soucis...
j'ai regardé sur le forum on me parle d'ajouter des lignes :
<?php
ini_set('magic_quotes_sysbase', '0');
ini_set('magic_quotes_runtime', '0');
ça ne donne rien.
ajouter
php_value magic_quotes_sybase Off
dans le .htaccess. ça bugge tout le forum...
L'histoire du php.info je n'ai pas compris (je suis pas très douée non plus j'avoue )
D'où cela peut'il venir? s'il vous plait?
Je sais que ça ne se fait pas d'upper, mais en fait dans les signatures, ça ne le fait pas :-\
ça le fait dans les posts (mais pas dans les titres ) et aussi quand j'ai renommé les icones de messages en français :-[
Si quelqu'un a une idée ::)
Personne ne peut nous aider? :-\
Salut,
Est ce que tu as installée des Mods ?
Aucun, sauf un ajout pour avoir xfire sur les profils :(
J'ai quelques doutes concernant ce qu'on t'as dit sur les magic_quotes
Admettons.
Le php.info te permettra de conaitre la configuration de php chez ton hébergeur.
Tu crée un fichier texte contentant:
<? phpinfo(); ?>
Tu l'enregistres sous le nom: php.info puis tu l'uppload sur ton serveur. Tu te rends à l'url de ce fichier et tu cherches le mot magic, tu devrait voir si ce paramètre est sur on ou off.
Ensuite supprime ce fichier par sécurité.
Sur le panneau de contrôle de ton hébergeur, si tu as accès à la configuration de php.ini, tu peux faire en sorte de désactiver ce magic quotes. Mais je ne pense pas que ce soit le cas.
Le plus simple, désinstalle le mod que tu as ajoutée, fais un essais, et réinstalle le si le problème ne vient pas de là. Ca prend deux minutes à faire avec le gestionnaire de packages.
Tu n'as pas d'autres scripts d'installés ?
Peux tu me donner le lien du sujet ou on t'a parlé de magic quotes ?
Merci de bien vouloir m'aider :D
Alors le php.info me donne ceci :
Lainaamagic_quotes_gpc On
magic_quotes_runtime Off
magic_quotes_sybase On
J'ai accès au cpanel sur mon hébergeur mais je ne pense pas pouvoir modifier quoi que ce soit dans le php.ini (à confirmer)
J'ai désinstallé le mod pour xfire, ça le fait toujours même sous le thème d'origine.
c'est bien le seul mod que nous avons mis :)
J'ai même mis le thème de base, sans le mod avec la langue anglaise, pareil les apostrophes se doublent, (et si on édite ça quadruple etc... )
Voici le post où j'ai tenté de comprendre :
http://www.simplemachines.org/community/index.php?topic=224307.0
et celui ci pour le .httaccess
http://www.simplemachines.org/community/index.php?topic=183401.0
Merci de nous aider ;)
SMF requiert que Magic Quotes soit désactivé. Vivement PHP6 où on aura plus ce problème...
Tentes dans un .htaccess :
SetEnv MAGIC_QUOTES 0
DeathSign ;)
On a faillis poster en même temps, je me suis fait grilled :)
Je poste quand même ce que j'avais écrit:
J'ai survolé rapidement les liens que tu m'as donné et il est certain maintenant que le problème est bien lié aux magic_quotes.
Une autre façon d'obtenir le changement des paramètres de php.ini est de demander à ton hébergeur s'il veut bien le faire pour toi.
A très bientôt.
Merci DS, mais ça ne fait rien :'(
Pour l'hébergeur, je vais voir mais ça m'étonnerais qu'il le fasse :-\
Sinon j'ai trouvé ces deux codes :
1.
<?php
2.
3.
function fix_magic_quotes ($var = NULL, $sybase = NULL)
4.
{
5.
// si $sybase n'est pas spécifié, on regarde la configuration ini
6.
if ( !isset ($sybase) )
7.
{
8.
$sybase = ini_get ('magic_quotes_sybase');
9.
}
10.
11.
// si $var n'est pas spécifié, on corrige toutes les variables superglobales
12.
if ( !isset ($var) )
13.
{
14.
// si les magic_quotes sont activées
15.
if ( get_magic_quotes_gpc () )
16.
{
17.
// tableaux superglobaux a corriger
18.
$array = array ('_REQUEST', '_GET', '_POST', '_COOKIE');
19.
if ( substr (PHP_VERSION, 0, 1) <= 4 )
20.
{
21.
// PHP5 semble ne pas changer _ENV et _SERVER
22.
array_push ($array, '_ENV', '_SERVER');
23.
// les magic_quotes ne changent pas $_SERVER['argv']
24.
$argv = isset($_SERVER['argv']) ? $_SERVER['argv'] : NULL;
25.
}
26.
foreach ( $array as $var )
27.
{
28.
$GLOBALS[$var] = fix_magic_quotes ($GLOBALS[$var], $sybase);
29.
}
30.
if ( isset ($argv) )
31.
{
32.
$_SERVER['argv'] = $argv;
33.
}
34.
// désactive les magic quotes dans ini_set pour que les
35.
// scripts qui y sont sensibles fonctionnent
36.
ini_set ('magic_quotes_gpc', 0);
37.
}
38.
39.
// idem, pour magic_quotes_sybase
40.
if ( $sybase )
41.
{
42.
ini_set ('magic_quotes_sybase', 0);
43.
}
44.
45.
// désactive magic_quotes_runtime
46.
set_magic_quotes_runtime (0);
47.
return TRUE;
48.
}
49.
50.
// si $var est un tableau, appel récursif pour corriger chaque élément
51.
if ( is_array ($var) )
52.
{
53.
foreach ( $var as $key => $val )
54.
{
55.
$var[$key] = fix_magic_quotes ($val, $sybase);
56.
}
57.
58.
return $var;
59.
}
60.
61.
// si $var est une chaine on utilise la fonction stripslashes,
62.
// sauf si les magic_quotes_sybase sont activées, dans ce cas on
63.
// remplace les doubles apostrophes par des simples apostrophes
64.
if ( is_string ($var) )
65.
{
66.
return $sybase ? str_replace ('\'\'', '\'', $var) : stripslashes ($var);
67.
}
68.
69.
// sinon rien
70.
return $var;
71.
}
72.
73.
fix_magic_quotes();
74.
75.
?>
à placer dans la page (en haut)
ou
if ( get_magic_quotes_gpc() ) {
function stripslashes_deep( $value ) {
return ( is_array($value) )
? array_map('stripslashes_deep', $value)
: stripslashes($value);
} // end of 'stripslashes_deep()'
$_GET = array_map('stripslashes_deep', $_GET);
$_POST = array_map('stripslashes_deep', $_POST);
$_COOKIE = array_map('stripslashes_deep', $_COOKIE);
}
à placer en haut de la page...
Je voudrais bien tenter, mais je devrais poser le code dans quel fichier?
Et lequel serait le mieux?
Merci d'avance :)
Problème réglé !
j'ai mis le code :
<?php
if ( get_magic_quotes_gpc() ) {
function stripslashes_deep( $value ) {
return ( is_array($value) )
? array_map('stripslashes_deep', $value)
: stripslashes($value);
} // end of 'stripslashes_deep()'
$_GET = array_map('stripslashes_deep', $_GET);
$_POST = array_map('stripslashes_deep', $_POST);
$_COOKIE = array_map('stripslashes_deep', $_COOKIE);
}
/**********************************************************************************
* index.php
dans index.php à la racine du forum et ça fonctionne les apostrophes ne sont plus doubles !!!
Mais j'aimerais votre avis sur ce bout de code (parce que moi ça ne me parle pas du tout :( )
Merci 8)
Par contre j'ai des Hacking attempt qui arrivent assez souvent... alors mise à jour en 1.1.7 qui fait ça ou mon ajout de code?
Content que ce soit résolu. Par contre pour le bout de code si je comprend un tout petit peu comment il agit je serais bien incapable de te dire s'il est la cause des Hacking Attempt que tu rencontres. S'ils ne se sont jamais produits avant c'est assez probable.
C'est soit mon code, soit mon hébergeur, soit la mise à jour en 1.1.7 qui fait ça, dans tous les cas ça n'arrive pas trop souvent non plus donc,ça devrait aller :P
Merci à vous ;D
Edit ...
ça arrive dès que je veux éditer des posts sur mon forum :/
Hacking attempt...
UPDATE smf_messages
SET posterName = 'Flepi', posterEmail = '****', icon = 'xx', subject = 'Re : Et voilà c'est fait !!!', body = 'les ' tu trouves qu'ils marchent pas
', modifiedTime = 1226239584, modifiedName = 'Flepi', ID_MSG_MODIFIED = 266, smileysEnabled = 1
WHERE ID_MSG = 8
LIMIT 1
Fichier: /home/********/public_html/Sources/Subs-Post.php
Ligne: 1898
si je regarde le fichier j'ai :
1893// Change the post.
1894 db_query("
1895 UPDATE {$db_prefix}messages
1896 SET " . implode(', ', $messages_columns) . "
1897 WHERE ID_MSG = $msgOptions[id]
1898 LIMIT 1", __FILE__, __LINE__);
Donc je ne vois pas quoi changer :(