IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Désactiver les magic_quotes_qpc chez Free ?


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2003
    Messages
    245
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 245
    Points : 106
    Points
    106
    Par défaut Désactiver les magic_quotes_qpc chez Free ?
    Bonjour,

    J'ai un petit souci depuis que j'ai mis des pages en lignes sur Free.

    Ce code sur une page en PHP5
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $msg = 'Ajoutez une rubrique avant d\'ajouter un article.';
    header('Location:./blog.php5?msg='.urlencode($msg));
    exit(); 
     
    // ./blog.php5?msg=Ajoutez+une+rubrique+avant+d%27ajouter+un+article.
     
    echo urldecode($_GET['msg']);
    affiche avec XAMPP
    Ajoutez une rubrique avant d'ajouter un article.
    mais affiche avec Free
    Ajoutez une rubrique avant d\'ajouter un article.
    Pour info, voici le phpinfo de Free.

    Je ne vois pas d'où vient ce problème, donc si vous avez une idée n'hésitez-pas. Merci de votre aide.

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Points : 493
    Points
    493
    Par défaut
    salut ! ahhh ces changements de server, toujours difficile... et si tu faisai ton truc comme sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $var = 'L´open-source';
    echo $var;
    comme sa plus de prob avec n'importe quel hébergeur si tu utilise les propriétés du html...

    bonne chance
    Il y a 10 types de personnes sur la planète. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas...

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2003
    Messages
    245
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 245
    Points : 106
    Points
    106
    Par défaut
    Petite précision que je viens de remarquer : l'erreur ne se produit que lorsque je fais passer la chaîne par l'URL, après l'avoir transformée avec urlencode.

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Points : 493
    Points
    493
    Par défaut
    hum... il faut savoir que urlencode() retourne une chaîne dont les caractères non alpha-numériques (hormis -_.) sont remplacés par des séquences commençant par un caractère pourcentage (%), suivi de deux chiffres hexadécimaux. Les espaces sont remplacés par des signes plus (+).

    peux-tu me montrer ton code exactement ?

    merci
    Il y a 10 types de personnes sur la planète. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas...

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2003
    Messages
    245
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 245
    Points : 106
    Points
    106
    Par défaut
    Bien sûr, voici un petit exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $msg = 'Ajoutez une rubrique avant d\'ajouter un article.';
    header('Location:./blog.php5?msg='.urlencode($msg));
    exit(); 
     
    // ./blog.php5?msg=Ajoutez+une+rubrique+avant+d%27ajouter+un+article.
     
    echo urldecode($_GET['msg']);
    Autre précision : mes pages sont encodées en ISO-8859-1. Je dis ça car il me semble vaguement avoir entendu parler d'UTF-8 et d'urlencode.

  6. #6
    Membre confirmé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Points : 493
    Points
    493
    Par défaut
    désolé mais je ne connais pas très bien ISO mais pour ce qui est de ton code essaie de remplacer le contenu de $msg comme sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $msg = 'Ajoutez une rubrique avant d´ajouter un article.';
    bonne chance
    Il y a 10 types de personnes sur la planète. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas...

  7. #7
    Membre régulier
    Inscrit en
    Novembre 2003
    Messages
    245
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 245
    Points : 106
    Points
    106
    Par défaut
    Je vais essayer mais ça ne me dit pas trop car ça m'obligerait à modifier beaucoup de fichiers.

    Je me demande si ça ne viendrait pas de ça :
    magic_quotes_gpc = On
    Sur XAMPP, les magic_quotes_qpc sont désactivées justement.

  8. #8
    Membre régulier
    Inscrit en
    Novembre 2003
    Messages
    245
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 245
    Points : 106
    Points
    106
    Par défaut
    J'ai fait quelques tests et effectivement ça vient de là. Reste à savoir si on peur les désactiver, et comment.

  9. #9
    Membre confirmé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Points : 493
    Points
    493
    Par défaut
    ben de toute facon toi tu ne pourras pas... maintenant si free utilise en server par user tu peut surement faire une demande et expliquer ton histoire mais si free utilise un server pour tout le monde et donne des différent acccès en fonction des membres, sa métonerai qu'ils soient ok pour aller modifier le php.ini lol

    sinon il te reste plus qu'a modifier tout tes script... au moins t'es sur que sa marchera...

    bonne chance
    Il y a 10 types de personnes sur la planète. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas...

  10. #10
    Membre régulier
    Inscrit en
    Novembre 2003
    Messages
    245
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 245
    Points : 106
    Points
    106
    Par défaut
    J'ai trouvé une fonction qui le fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    function fix_magic_quotes ($var = NULL, $sybase = NULL)
    {
    	// si $sybase n'est pas spécifié, on regarde la configuration ini
    	if ( !isset ($sybase) )
    	{
    		$sybase = ini_get ('magic_quotes_sybase');
    	}
     
    	// si $var n'est pas spécifié, on corrige toutes les variables superglobales
    	if ( !isset ($var) )
    	{
    		// si les magic_quotes sont activées
    		if ( get_magic_quotes_gpc () )
    		{
    			// tableaux superglobaux a corriger
    			$array = array ('_REQUEST', '_GET', '_POST', '_COOKIE');
    			if ( substr (PHP_VERSION, 0, 1) <= 4 )
    			{
    				// PHP5 semble ne pas changer _ENV et _SERVER
    				array_push ($array, '_ENV', '_SERVER');
    				// les magic_quotes ne changent pas $_SERVER['argv']
    				$argv = isset($_SERVER['argv']) ? $_SERVER['argv'] : NULL;        
    			}
    			foreach ( $array as $var )
    			{
    				$GLOBALS[$var] = fix_magic_quotes ($GLOBALS[$var], $sybase);
    			}
    			if ( isset ($argv) )
    			{
    				$_SERVER['argv'] = $argv;
    			}
    			// désactive les magic quotes dans ini_set pour que les 
    			// scripts qui y sont sensibles fonctionnent
    			ini_set ('magic_quotes_gpc', 0);
    		}
     
    		// idem, pour magic_quotes_sybase
    		if ( $sybase )
    		{
    			ini_set ('magic_quotes_sybase', 0);
    		}
     
    		// désactive magic_quotes_runtime
    		set_magic_quotes_runtime (0);
    		return TRUE;
    	}
     
    	// si $var est un tableau, appel récursif pour corriger chaque élément
    	if ( is_array ($var) )
    	{
    		foreach ( $var as $key => $val )
    		{
    			$var[$key] = fix_magic_quotes ($val, $sybase);
    		}
     
    		return $var;
    	}
     
    	// si $var est une chaine on utilise la fonction stripslashes,
    	// sauf si les magic_quotes_sybase sont activées, dans ce cas on 
    	// remplace les doubles apostrophes par des simples apostrophes
    	if ( is_string ($var) )
    	{
    		return $sybase ? str_replace ('\'\'', '\'', $var) : stripslashes ($var);
    	}
     
    	// sinon rien
    	return $var;
    }
    Je n'y comprends absolument rien, mais ça marche ! Je vais essayer de l'optimiser en cherchant les lignes nécessaires et les lignes superflues, car ce script va être appelé sur toutes mes pages.

    Merci de ton aide.

  11. #11
    Membre confirmé
    Homme Profil pro
    Ingénieur réseau et sécurité / Consultant
    Inscrit en
    Août 2005
    Messages
    1 068
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur réseau et sécurité / Consultant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 1 068
    Points : 493
    Points
    493
    Par défaut
    hum interressant sa ! sa pourait bien maider si on peut detourner le php.ini comme sa lol ! merci davoir mis ce code ! cependant on voit très bien que les utiliser n'est vraiment pas bien... voici pourquoi

    • Chaque SGBD a ses propres spécificités
    • Toutes nos données ne sont pas systématiquement placées dans une base, il est donc inutile de toutes les protéger
    • Pas toujours pratique
    • Les magic quotes peuvent être activées ou désactivées suivant les serveurs. Développer une application se basant exclusivement sur les magic quotes nuie à sa portabilité.


    voila... jte laisse faire ton choix ! en espérant que jai quand t'etre utile...

    bonne chance
    Il y a 10 types de personnes sur la planète. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 25/08/2009, 11h07
  2. Les sessions chez Free
    Par linsou dans le forum Langage
    Réponses: 4
    Dernier message: 07/02/2007, 21h19
  3. [MySQL] Probleme chez free avec les champs "geometry"
    Par gussoner dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 06/11/2006, 21h15
  4. Réponses: 28
    Dernier message: 09/06/2006, 14h05
  5. Désactiver les touches F1, F2, F3, F4, F5 dans IE
    Par ZiZouJH dans le forum Flash
    Réponses: 7
    Dernier message: 17/02/2003, 09h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo