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 :

fopen plante sur le serveur et pas en local


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Mars 2003
    Messages : 5
    Points : 5
    Points
    5
    Par défaut fopen plante sur le serveur et pas en local
    Je réalise un petit ERP pour notre société.
    J'ai besoin de récupérer des nomenclatures en *.csv, les ouvrir et les mettre dans ma base de donnée.
    Ma variable $fichier contient la localisation du fichier sous forme "D:\temp\test.csv"
    Ceci fonctionne parfaitement sur mon serveur en local sur mon PC, mais une fois mon code porté sur le serveur d'entreprise, il refuse d'ouvrir tout fichier placé en local.
    Le SafeMode est Off sur les 2 serveurs.
    Qu'est ce qui peut clocher ?
    Le serveur d'entreprise ne peut-il voir mon fichier test.csv placé sur mon disque en d:\temp\ ?

    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
     
     
        	if (file_exists($fichier)) {
            	$fp = fopen("$fichier", "r");
           	}else{ // le fichier n'existe pas //
                $ErrMsg = "File $fichier not found !<br> Importation has been stopped.<br><br>";
            	break;
            }
    //print "FICHIER OUVERT <br>";
     
            // On importe les données
    		while (!feof($fp)) {
     
              	// Tant qu'on n'atteint pas la fin du fichier //
                $ligne = fgets($fp,4096); // On lit une ligne //
                // On récupère les champs séparés par ; dans liste//
                $liste = explode(";",format_agile_csv_in_real_csv($ligne));
     
          .....

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 354
    Points : 15 700
    Points
    15 700
    Par défaut
    Citation Envoyé par franzarelli Voir le message
    il refuse d'ouvrir tout fichier placé en local.
    qu'est ce qui te fait dire ça ?

  3. #3
    Membre régulier Avatar de ghost emperor
    Profil pro
    Technicien Help Desk
    Inscrit en
    Septembre 2007
    Messages
    170
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Septembre 2007
    Messages : 170
    Points : 122
    Points
    122
    Par défaut
    Ne serait-ce pas tout simplement un problème de droits ?
    Enfin, je dis ça mais juste pour une ouverture de fichier cela me parait quand même bizarre...

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 131
    Points : 132
    Points
    132
    Par défaut
    d:\temp\ est un chemin local, donc le disque du serveur. Pour un accès à un fichier sur une autre machine il faudrait \\nom_pc\nom_partage\ ou \\adresse_ip\nom_partage

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Mars 2003
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    En fait pour que cela fonctionne il fallait que la variable $fichier soit décrite de la sorte : "/////nom_pc/temp/test.csv" avec D:\temp\ partagé sur mon PC local.
    Je n'ai pas d'explication mais ça fonctionne !

    Mais cela ne résout que ponctuellement mon problème, car tous les utilisateurs ne vont pas déclarer de fichier temp en partage.
    PhpMyAdmin est capable d'ouvrir un fichier source sur n'importe quelle machine en local, comment s'astreint-t-il des droits admin locaux.

    Soit en bref, comment faire pour faire la même chose sans déclarer mon répertoire en partage sur le réseau ?

Discussions similaires

  1. [MySQL] fopen créé un fichier sur le serveur mais pas dans mes dossiers
    Par Poly_Helene dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/06/2013, 18h40
  2. foreach qui bugue sur le serveur mais pas en local
    Par CinePhil dans le forum Langage
    Réponses: 2
    Dernier message: 29/03/2012, 00h14
  3. requete marche sur le serveur marche pas sur le site
    Par ben_skywalker dans le forum Requêtes
    Réponses: 5
    Dernier message: 08/12/2008, 12h07
  4. Erreur de header sur un serveur et pas sur un autre.
    Par AsQuel dans le forum Langage
    Réponses: 7
    Dernier message: 09/05/2007, 09h27
  5. [D7][ADO] TAdoTable plante sur un PC et pas l'autre
    Par EMC51 dans le forum Bases de données
    Réponses: 7
    Dernier message: 19/03/2007, 17h56

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