Simple Machines Community Forum

SMF Support => Language Specific Support => Français (French) => Aiheen aloitti: flepi - marraskuu 04, 2008, 12:35:08 IP

Otsikko: Double apostrophe dans les messages
Kirjoitti: flepi - marraskuu 04, 2008, 12:35:08 IP
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?
Otsikko: Re: Double apostrophe dans les messages
Kirjoitti: flepi - marraskuu 05, 2008, 05:47:18 AP
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  ::)
Otsikko: Re: Double apostrophe dans les messages
Kirjoitti: flepi - marraskuu 06, 2008, 01:18:44 IP
Personne ne peut nous aider?  :-\
Otsikko: Re: Double apostrophe dans les messages
Kirjoitti: shaitanfr - marraskuu 06, 2008, 05:52:57 IP
Salut,

Est ce que tu as installée des Mods ?
Otsikko: Re: Double apostrophe dans les messages
Kirjoitti: flepi - marraskuu 07, 2008, 02:55:40 AP
Aucun, sauf un ajout pour avoir xfire sur les profils  :(
Otsikko: Re: Double apostrophe dans les messages
Kirjoitti: shaitanfr - marraskuu 07, 2008, 04:49:17 AP
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 ?
Otsikko: Re: Double apostrophe dans les messages
Kirjoitti: flepi - marraskuu 07, 2008, 08:29:28 AP
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 ;)
Otsikko: Re: Double apostrophe dans les messages
Kirjoitti: DeathSign - marraskuu 07, 2008, 08:50:42 AP
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 ;)
Otsikko: Re: Double apostrophe dans les messages
Kirjoitti: shaitanfr - marraskuu 07, 2008, 08:53:59 AP
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.
Otsikko: Re: Double apostrophe dans les messages
Kirjoitti: flepi - marraskuu 07, 2008, 11:54:32 AP
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_VERSION01) <= )
  
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  :)
Otsikko: Re: Double apostrophe dans les messages
Kirjoitti: flepi - marraskuu 08, 2008, 10:01:06 AP
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?
Otsikko: Re: Double apostrophe dans les messages
Kirjoitti: shaitanfr - marraskuu 08, 2008, 03:21:49 IP
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.
Otsikko: Re: Double apostrophe dans les messages
Kirjoitti: flepi - marraskuu 09, 2008, 08:55:10 AP
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 :(