Fopen fichier TXT sur machine locale a partir d'un serveur PHP

Résolu
villoutj Messages postés 10 Date d'inscription lundi 1 septembre 2003 Statut Membre Dernière intervention 9 juin 2009 - 23 mars 2009 à 11:18
siwil Messages postés 23 Date d'inscription lundi 4 août 2008 Statut Membre Dernière intervention 2 septembre 2009 - 2 sept. 2009 à 15:39
Salut,
voila ma question: J'ai un script PHP qui fonctionne bien  en localhost sur l'ouverture d'un fichier txt et la
lecture et l'écriture:

$text=fopen('c:/fichier.txt','r') or die("Fichier manquant");
$contenu=file_get_contents($fichier);
$pseudonew = 'nouveau';
$contenuMod=str_replace('ancien', $pseudonew, $contenu); 
fclose($text);
//ouverture en écriture
$text2=fopen($fichier,'w+') or die("Fichier manquant");
fwrite($text2,$contenuMod);
fclose($text2);

quant je transfert ce script sur mon serveur www.monserveur.com et que je le test
il me met invariablement "Fichier manquant". le serveur est en linux apache php et mon PC est en windows XP.
Problèmes de droit?  quelle est la solution?
merci pour ceux qui savent de m'aider.

villoutj

6 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
23 mars 2009 à 19:25
Hello,

un serveur web n'a pas accès à une machine cliente. Heureusement...t'imagines si les sites web pouvaient, à loisir, récupérer sans te demander la permission des fichiers présents sur ton disque dur?
Il faut en effet uploader le fichier (et pas de manière automatique...tjrs pour la même raison), puis que l'utilisateur le downloades après modification.
3
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
23 mars 2009 à 11:50
Euhhh ...

$fichier fait reference a quoi ?

ca serai pas plutot ???

Sinon a tu bien verifier le chemin vers ton fichier .txt ? (c:/fichier.txt)
Car le chemin est construit par rapport a la racine de ton ftp.

En aucun cas tu ne peux demander de lire un fichier en local !
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
23 mars 2009 à 11:51
CORRECTION:

ca serai pas plutot ???

devient

ca serai pas plutot $text ???
0
villoutj Messages postés 10 Date d'inscription lundi 1 septembre 2003 Statut Membre Dernière intervention 9 juin 2009
23 mars 2009 à 15:07
Ben en fait tu as répondu a mon pb, mais j'ai pas de solution. le c:\fichier.txt c'est celui que je veux ouvrir pour modifier chez l'utilisateur. Peut etre alors avec un upload automatique (toujours le meme nom de fichier), modification et download automatique avec même nom?
En gros c'est pas comme un cookies mais je veux laisser et modifier des parametres dans ce fichier que les utilisateurs on downloadé la 1ere fois.
Je suis ouvert à toute solution.
Merci
villoutj
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
villoutj Messages postés 10 Date d'inscription lundi 1 septembre 2003 Statut Membre Dernière intervention 9 juin 2009
24 mars 2009 à 13:36
Ok j'ai compris, bon, je change donc de tactique, je vais utiliser du visual basic 2008 express en ".exe" (avec framework préinstallé sur le pc) avec un webbrowser qui récuperera les infos(un n° en fait) du site PHP (je développe les 2).
A propos les parametres utilisateurs que je met ds le vb ".exe", c'est dans le exe ou c'est ailleur sur le PC? j'ai pas trouvé la réponse.

villoutj
0
siwil Messages postés 23 Date d'inscription lundi 4 août 2008 Statut Membre Dernière intervention 2 septembre 2009
2 sept. 2009 à 15:39
Salut les amis!!
voila je vous j'explque,j'ai recuperer les fichiers de mon DD serveur et je reussie a les afficher sous forme de lien sur l'interface client,comme ceci:

<?php

$dir= 'C:\willy';

if(@is_dir($dir)){// On vérifit que le dossier existe

$dh = opendir($dir);// On ouvre le repertoire


while(($file = readdir($dh)) !== false)
{// Boucle pour parcourir le repertoire

$x=$file;

//echo 'Fichier : ',$file,'
';

echo '[download-doc.php?section=willy&file= Fichier : '.$file.']
';
}
closedir($dh);// On ferme le repertoire

unset($nomFich,$dir,$dh);// On supprime les variables qui servent à rien

}else{
echo 'Le dossier ',$dir,' n\'existe pas.

';
}
?>

maintenant je veux pouvoir telecharger ces fichiers lorsqu'on clique sur le lien et voici mon download.php

<?php

if (isset($_GET['file'])) {

$file = preg_replace('/[^0-9a-z\.\_\-]/i','',$_GET['file']);

$dir='c:\\willy\\';

//$dir='c:\willy\ ';

$fullpath = $dir.$_GET["file"];


if (is_file($fullpath)) {

header("Content-disposition: attachment; filename=".$file);

header("Content-length: ".filesize($fullpath));
header('Content-Type: application/octet-stream');
header('Content-Transfer-Encoding: binary');
readfile($fullpath);
}
}
?>

mon probleme maintenant c ke lorsque je clique sur un lien j'ai une page blanche
je ne sais pkoi.
merci pour votre aide les amis.
0
Rejoignez-nous