furious Gontran Posté 7 Mars 2005 Posté 7 Mars 2005 Salut, J'inscris des mail dans un fichier texte. Le code marche chez moi. Mais des qu'il est sur le serveur il me dis: Warning: fopen(newsletter/mail.txt ): failed to open stream: Permission denied in /disque2/home/laurentviel/www/New/Contact.php on line 13 C'est le "permission denied" qui me gene. Je suis sur register.com... Y'as t'il quelques chose que je dois modifier dans la configuration de la securité de php sur mon serveur? Je me suis penché sur le safe mode mais n'ais pas trouvé de moyen de le modifier par mon script...
Dan Posté 7 Mars 2005 Posté 7 Mars 2005 Regardes sous quel utilisateur tourne Apache/php et quelles sont les permissions du répertoire dans lequel tu veux écrire ton fichier. Idem pour tous les répertoires intermédiaires sous le www qui permettent d'accéder à ce fichier
furious Gontran Posté 7 Mars 2005 Auteur Posté 7 Mars 2005 (modifié) Heeeuuuu... Comment on fais ca ? C'est bon, j'ais trouvé.. ca se fais dans le ftp, tout betement.... Modifié 7 Mars 2005 par furious Gontran
furious Gontran Posté 7 Mars 2005 Auteur Posté 7 Mars 2005 (modifié) Ah non, ca ne marche pas... Bon, sur le ftp, bouton droit proprietes sur le dossier et le fichier texte j'ais mis tout en ecriture pour n'importequel utilisateur. J'ais permis l'ecriture et l'execution sur mon fichier txt, le php y faisant reference et le dossier contenant le fichier txt. Je n'ais plus les messages d'erreur... Cependant,les emails ne s'inscrivent pas dans le ficheir texte, je ne sais pas trop quoi faire... Modifié 7 Mars 2005 par furious Gontran
Dan Posté 7 Mars 2005 Posté 7 Mars 2005 Salut, Plutôt que de dire "ça ne marche pas", ce qui ne nous aide pas vraiment, tu pourrais poster le code à partie de ton appel à fopen(). Au moins on verrait ce que tu essaies d'écrire Dan
furious Gontran Posté 7 Mars 2005 Auteur Posté 7 Mars 2005 (modifié) Le probleme maintenant c'est qu'un mail.txt est crée, contenant les mails. Par contre quand je le regarde dans le ftp, il ne le reconnait pas comme un fichier texte. mais comme un fichier sans extension. Ce qui fais quem on code de lecture ne fonctionne pas (d'apres moi) LE code d'ecriture: <?if (isset($_POST['Mail'])) { $fichier="newsletter/mail.txt "; $mail=$_POST['Mail']; $fp=fopen($fichier, "a+"); fwrite($fp, "$mail"); fwrite($fp, "\n"); echo "<body bgcolor=\"#000000\" text=\"#FFFFFF\" link=\"#FFFFFF\" vlink=\"#FFFFFF\" OnLoad=\"alert ('Votre inscription a bien été prise en compte, à bientot')\">"; }else{ echo "<body bgcolor=\"#000000\" text=\"#FFFFFF\" link=\"#FFFFFF\" vlink=\"#FFFFFF\">"; } ?> code de l'ecture: <?$o=1; $fp=fopen("mail.txt", "a+"); while (!feof ($fp)) { if ($o==1) { echo fgets($fp); }else{ echo ",".fgets($fp); } $o++; } ?> ------------------------------------------- En relisant nexen, je me demande si mon fochier est binaire... Enfin, je ne pense pas puisque l'option a+ de f open ne fais pas de fichiers binaire.... Mais bon c'est la seule piste que j'ais trouvé. Modifié 7 Mars 2005 par furious Gontran
Dan Posté 7 Mars 2005 Posté 7 Mars 2005 Il n'y a pas de "fichier texte" sous Linux. Un fichier est un fichier et tous sont accédés de la même façon. Les extensions n'ont aucune valeur, pas comme sous Windows. Par contre, en utilisant le flag "a+" tu positionnes le pointeur de lecture en fin de fichier, là où il n'y a rien à lire Utilises le flag "a" ou "a+" pour écrire si tu veux, mais "r" pour lire. Dan
furious Gontran Posté 7 Mars 2005 Auteur Posté 7 Mars 2005 (modifié) Hola, je dois pas etre tres fort en pingouin... En fait... Le probleme, maintenant c'est qu'il me repete: Warning: fopen(mail.txt): failed to open stream: No such file or directory in /disque2/home/laurentviel/www/New/newsletter/Mail_Newsletter.php on line 12 pour chaques ligne. Le fichier est pourtant bien nommé mail.txt et se trouve bien dans le meme repertoire... Est ce a cause de linux ? Comment faire ? Modifié 7 Mars 2005 par furious Gontran
Dan Posté 7 Mars 2005 Posté 7 Mars 2005 Warning: fopen(mail.txt): failed to open stream: No such file or directory in /disque2/home/laurentviel/www/New/newsletter/Mail_Newsletter.php on line 12 Tu as mis les parenthèses autour du nom de fichier ? Donnes-moi le code de lecture Il est vrai que le Php n'est manifestement pas ta langue maternelle Dan
furious Gontran Posté 7 Mars 2005 Auteur Posté 7 Mars 2005 Voici le code: <?$i=1; $fp=fopen("mail.txt", "r"); while (!feof ($fp)) { echo $i; echo " : ".fgets($fp)."<br>"; $i++; } ?>
Titag Posté 8 Mars 2005 Posté 8 Mars 2005 Bonjour, Il y a deux choses que tu peux vérifier. 1 - Vérifie que ton fichier se trouve bien dans le même répertoire que ton script (puisque tu ne lui donne pas de chemin) 2 - Fait gaffe aux majuscules. Sous Linux, elles sont importantes... le plus confortable étant de tout mettre en minuscules
Guest Xavir Posté 8 Mars 2005 Posté 8 Mars 2005 bonjour, je crois avoir trouvé : G bien vu dans ton premier code ceci : <?if (isset($_POST['Mail'])){$fichier="newsletter/mail.txt ";$mail=$_POST['Mail']; hors, a moins d'un bug de copiage, je vois un espaxe entre /mail.txt et "; Ce qui voudrai dire que ton fichier possède une extension ".txt(espace)" C'est peut être aussi pour ça que le ftp ne le reconnait pa comme un fichier txt é ke avec la seconde source qui veux ouvrir de fichier sans espaces à la fin ne peux pa..... J'èspère pour toi que c'était tout aussi bête qua ça...
furious Gontran Posté 9 Mars 2005 Auteur Posté 9 Mars 2005 Ah ben wouais... j'avais pas vu l'espace, je vous dis ca des que je le teste...
furious Gontran Posté 10 Mars 2005 Auteur Posté 10 Mars 2005 C'etait bien ca.. Le fichier txt crée est maintenant bon et ma lecture marche... Merci encore de votre patience. (Paske la c'etait reellement l'erreur con)
yyaann Posté 20 Février 2006 Posté 20 Février 2006 Bonjour, je me permets de réveiller ce sujet car j'ai un problème assez similaire. Je voudrais mettre en cache de l'XML dans un fichier qui n'existe pas encore. Je voudrais donc que PHP le crée. Mais apparement i' veux pas. Voilà le code : $XML = "du code xml"; // de l'XML généré dynamiquement que je veux mettre en cache$b = "xml.txt"; // ça c'est le fichier que je veux créer$ecriture = fopen ( $b , "w" ) or die ( "Impossible d ouvrir $b en ecriture" );fwrite ( $ecriture , $XML , strlen ( $XML ) ); fclose ( $ecriture ); Et le résultat : Warning: fopen(xml.txt): failed to open stream: Permission denied in /home/www/e1c5cba3270802a5261442d68be6ae59/web/xml.php on line 19Impossible d ouvrir xml.txt en ecriture Merci d'avance !
xorax Posté 21 Février 2006 Posté 21 Février 2006 c'est un probleme de permission d'acces. vérifie si t'as les bonnes permissions pour écrire dans le repertoire avec php. ya peut-être un .htaccess qui traine dans le coin ou alor peut-être que ton hebergeur ne te permet pas d'écrire de fichiers avec php. regarde également si le fichier n'existe pas déjà avec des permission restreintes, supprime le si c'est le cas.
petit-ourson Posté 21 Février 2006 Posté 21 Février 2006 C'est fait côté serveur, donc il peut pas y avoir de pb de htaccess.
yyaann Posté 21 Février 2006 Posté 21 Février 2006 Merci pour vos réponses, Xorax et Petit-ourson ! Le fichier n'existe pas encore, j'ai bien vérifié. J'ai bien un .htaccess dans mon répertoire. A tout hasard je peux essayer de le modifier, même si c'est côté serveur. Comment je fais ? Je modifie les permissions de .htaccess et comme ça elles s'appliqueront aussi aux autres fichiers ? Ou bien chuis complètement à côté de la plaque ? Indulgence s'il vous plait, je débute. Enfin, y'a-t-il un moyen simple et rapide de vérifier que mon hébergeur m'autorise à écrire des fichiers avec PHP ? Merci !
Dan Posté 21 Février 2006 Posté 21 Février 2006 Mets ce code dans un fichier se terminant par .php et exécute-le... Ensuite donne-nous le résultat de l'affichage <?phpif (ini_get('safe_mode')){ echo "[safe_mode activé]\n\n";}else{ echo "[safe_mode désactivé]\n\n";}?>
yyaann Posté 21 Février 2006 Posté 21 Février 2006 Salut Dan ! Ben j'obtiens tout simplement une page blanche !
yyaann Posté 21 Février 2006 Posté 21 Février 2006 (modifié) OK, je viens de voir dans les FAQs de mon hébergeur : Safe Mode de php est il enclenché ?Non, safemode n'est pas utilisé. Nous utilisons les contraintes "openbasedir". Donc c'est pas une question d'authorisation. Alors est-ce que ça pourrait avoir un lien avec ce .htaccess qui se trouve dans mon répertoire ? [EDIT] j'ai trouvé également sur leur FAQs : Puis-je utiliser la fonction Fopen (pour aller lire un fichier qui se trouve sur un autre site internet) ?Oui vous pouvez utiliser cette fonction. Etrange non ? Modifié 21 Février 2006 par yyaann
xorax Posté 22 Février 2006 Posté 22 Février 2006 C'est fait côté serveur, donc il peut pas y avoir de pb de htaccess. j'ai connu des serveurs où je n'avais que les autorisation de lecture et où il m'était impossible d'écrire ou de modifier des fichiers avec php. Notament lorsqu'une extension frontpage est installé, frontpage créé des .htaccess dans ce genre. essaye de renommer le htaccess et reteste ton script tu verra bien si c'est ça.
Dan Posté 22 Février 2006 Posté 22 Février 2006 Ben j'obtiens tout simplement une page blanche ! Une page blanche ? Pas possible ! Tu dois avoir un problème avec php alors.... il faut que cela t'affiche une ligne. Dan
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant