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 :

[Upload] Variable global_on et upload d'un fichier


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 59
    Points : 44
    Points
    44
    Par défaut [Upload] Variable global_on et upload d'un fichier
    Bonjour à tous,
    je m'occupe actuellement d'un site web et suite a une modif de l'hebergeur de l'option de sécurité php "global_register", qui a été mis à off le site que nous avons acheté n'étant pas prévu avec cette option, ne fonctionnait plus. J'ai donc essayé de récupérer les variables locales à l'aide des variables d'environnement comme $GETpar exemple dans une partie du script. J'ai supprimé des erreurs mais pas toutes.
    J'ai donc contacté mon hébergeur qui m'as dit de créer un fichier ".htaccess" et de mettre la ligne "php_flag global_registers_on", ce que j'ai fais sous "public_html", mon répértoire ou je charge mon site...
    Suite a encore 2 erreurs j'ai donc modifier le fichier "lib.php" comme suit
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function read_file($name_file)
    {
    	//Modif perso suite modif hebergeur sur récupérations de variable 
    	$name_file=$_FILES['$name_file']; // erreur à cette ligne avec un Warning
    	//echo "@".$name_file."@";
    	$p=fopen(trim($name_file),"r"); 
    	$ret = fread($p,filesize(trim($name_file))); 
    	fclose($p);
    	return $ret;
    }
    Mais voilà j'ai toujours ces erreurs.
    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Warning: fread(): supplied argument is not a valid stream resource in /home/nuovagc/public_html/lib.php on line 3657
    
    Warning: fclose(): supplied argument is not a valid stream resource in /home/nuovagc/public_html/lib.php on line 3658
    
    Warning: fread(): supplied argument is not a valid stream resource in /home/nuovagc/public_html/lib.php on line 3657
    
    Warning: fclose(): supplied argument is not a valid stream resource in /home/nuovagc/public_html/lib.php on line 3658
    Est ce que quelqu'un pourrait m'aider SVP ?
    Merci.

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 240
    Points : 15 542
    Points
    15 542
    Par défaut
    tu as un "$" en trop là :
    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    	$name_file=$_FILES['name_file'];

    regarde là :
    http://antoine-herault.developpez.co...ls/php/upload/

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 59
    Points : 44
    Points
    44
    Par défaut
    Ok merci mathieu, j'ai fais la modif mais j'ai toujours les mêmes erreurs citées precedaments.
    C'est peut être du à ca que la déclaration de la variable global_registers à on n'a pas été prise en compte dans le fichier ".htaccess"d'après toi ?
    (Voir ce que j'ai mis dans mon 1er post.)

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Points : 585
    Points
    585
    Par défaut
    Salut,

    pas sûr mais ce srait pas plutôt:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $name_file=$_FILES[$name_file];

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 59
    Points : 44
    Points
    44
    Par défaut
    J'ai essayé et c'est idem.
    J'ai la même syntaxe ailleurs et c'est ok:
    T'aurais une autre idée ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $Id_capitolo = $_GET['Id_capitolo'];
    	$campo = $_GET['campo'];
    	//
    	include('mysql.php');
    	$requete = "SELECT * from capitoli where Id=$Id_capitolo";
    	$res = mysql_query ($requete,$db);
    	$ret= mysql_fetch_array($res);
    	return $ret[$campo];

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Points : 585
    Points
    585
    Par défaut
    Comme register_globals est passé à off, tu peux plus atteindre $_FILES depuis une fonction.

    Donc au lieu de faire ca dans ta fonction
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $name_file=$_FILES['$name_file'];

    essaie en appelant ta fonction avec ton $_FILES en parametre.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 59
    Points : 44
    Points
    44
    Par défaut [Resolu]
    Tu veux dire comme ceci ?:
    function read_file($_FILES['$name_file'])
    {}
    En fait je viens de résoudre le pbm.
    J'explique brièvement, j'ai pas tout compris mais cela pourra peut être reservir à quelqu'un...
    >>J’ai remis les quelques modifs que j’avais faites dans le fichier ou était indiqué les erreurs comme à l'origine et c'est tout.
    J'avais fais quelques modifs pour récupérer des variables à partir de variables d'environnement $GET ou $POST par ex comme ceci en rouge:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function get_capitoli_val($Id_capitolo,$campo)
    {
    	//Modif  sur récupérations de variable 
    	//$Id_capitolo = $_GET['Id_capitolo'];
    	//$campo = $_GET['campo'];	//
    	include('mysql.php');
    	$requete = "SELECT * from capitoli where Id=$Id_capitolo";
    	$res = mysql_query ($requete,$db);
    	$ret= mysql_fetch_array($res);
    	return $ret[$campo];
    }
    >>Et j'ai retiré également la récupération de fichier par la variable d'env $_FILES:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function read_file($name_file)
    {
    	//Modif perso suite modif hebergeur sur récupérations de variable 
    	//$name_file=$_FILES['$name_file']; // erreur à cette ligne avec un Warning
    	//echo "@".$name_file."@";
    	$p=fopen(trim($name_file),"r"); 
    	$ret = fread($p,filesize(trim($name_file))); 
    	fclose($p);
    	return $ret;
    }
    En fait comme tu l'as dit je pense que je ne pouvais pas récupérer directement un fichier à partir de $_FILES directement dans une fonction, mais il a fallut que j'enlève également les récupérations de variables par $GET et $POST que j'avais faites, pourquoi ?...??? Si tu sais ...

    Pour info mon fichier “.htaccess” que j'avais mis à la racine du site avec la mention "php_flag register_globals on" pour dévalidé l'option global registers à off sur le serveur Apache de mon hébergeur (hosteur.com) fonctionnait bien.(J'ai revérifié par la suite en faisant la manip inverse, en enlevant "php_flag register_globals on" et le site s'était replanté..)

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Points : 585
    Points
    585
    Par défaut
    Citation Envoyé par romca
    Tu veux dire comme ceci ?:
    function read_file($_FILES['$name_file'])
    {}
    Je voulais plutôt dire comme ça:
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function read_file($name_file)
    {}
     
    read_file($_FILES['ton_fichier']);

    Sinon j'ai vu ici que register_global n'empêche pas d'accéder aux tableaux superglobaux à l'intérieur d'une fonction...désolé d'avoir dit n'importe quoi .

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 59
    Points : 44
    Points
    44
    Par défaut
    Merci quand même, le fait d' aider les autres est déjà très bien !

    A bientôt peut être.

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

Discussions similaires

  1. [Upload] Problème suite à un upload de fichier
    Par rieppe dans le forum Langage
    Réponses: 6
    Dernier message: 28/08/2007, 17h20
  2. [EasyPHP] Upload d'image sous EasyPHP en local : fichier de destination
    Par camzo dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 28/12/2006, 12h32
  3. [Upload] un bug ds un code de fichiers
    Par jack_1981 dans le forum Langage
    Réponses: 7
    Dernier message: 09/12/2005, 12h44
  4. [Upload]Telechargement grâce à une servlet : nom du fichier
    Par xtremax3 dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 23/11/2005, 22h25
  5. [Upload] Barre de chargement pour envoi de fichier
    Par Caerbannog dans le forum Langage
    Réponses: 3
    Dernier message: 08/11/2005, 12h27

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