Problème avec la fonction fopen()
Derbie88
Messages postés
118
Date d'inscription
Statut
Membre
Dernière intervention
-
Derbie88 Messages postés 118 Date d'inscription Statut Membre Dernière intervention -
Derbie88 Messages postés 118 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un problème avec la fonction fopen().
Voici ce que je fais :
Mais immanquablement, ça me sort une erreur (fichier non disponible en écriture). Où me suis-je trompé ?
Par avance merci !
J'ai un problème avec la fonction fopen().
Voici ce que je fais :
<?php $login = $_SESSION['log']; $nom = $_SESSION['nom']; $prenom = $_SESSION['prenom']; $destinationficher = "C:/Documents and Settings/cocha0081/Mes documents/test/essais.html"; $fp = fopen($destinationfichier, 'xb'); $handle = @fopen ( $destinationfichier, 'w' ); $contenu = "<html> <head> <title>Fiche perso de machin</title> </head> <body> <b>Pseudo :</b> ".$pseudo." </body> </html>"; if ( is_writable ( $destinationfichier ) and $handle != FALSE ) { fwrite ( $handle, $contenu ); fclose ( $handle ); } else { echo 'Fichier non disponible en écriture'; } ?>
Mais immanquablement, ça me sort une erreur (fichier non disponible en écriture). Où me suis-je trompé ?
Par avance merci !
A voir également:
- Problème avec la fonction fopen()
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Fonction remplacer sur word - Guide
- Fonction somme excel - Guide
34 réponses
J'ai testé ton code et il ne fonctionnait pas. J'ai donc quasiment refait le code.
<?php $login = $_SESSION['log']; $nom = $_SESSION['nom']; $prenom = $_SESSION['prenom']; $contenu = "<html> <head> <title>Fiche perso de machin</title> </head> <body> <b>Prénom :</b> ".$prenom." </body> </html>"; $fp = @fopen("essais.html","a+"); $resultat = @fwrite($fp,$contenu); if($resultat == true) { echo 'Fiche perso de machin écrite'; } else { echo 'Fichier non disponible en écriture'; } @fclose($fp); ?>
Hum... :
$fp = fopen($destinationfichier, 'xb');
le 'xb' c'est quoi ? C'est pas 'wb' plutôt ?
Tu peux voir la fonction ici:
http://www.punchost.com/php/function.fopen.php
$fp = fopen($destinationfichier, 'xb');
le 'xb' c'est quoi ? C'est pas 'wb' plutôt ?
Tu peux voir la fonction ici:
http://www.punchost.com/php/function.fopen.php
Non, ça ne changer rien, j'ai toujours l'erreur... Mais je pense avoir fait tout ce qu'il fallait, je ne vois pas où ça cloche (mais je sens que c'est stupide).
En tout cas merci !
En tout cas merci !
Ah oui... bon sang !
Tu es en serveur local sur ta bécane j'imagine ?
Le chemin de ton fichier est C:/....
C'est impossible !
Tu dois mettre ton fichier dans le répertoire "www" de ton serveur local, et mettre le lien ou en relatif "pages/monfichier.html", ou alors en absolu "http://localhost/pages/monfichier.html"
Dans tous les cas tu oublies les espaces dans les urls, alors renomme tes répertoires et fichiers !
Tiens-nous au courant.
Tu es en serveur local sur ta bécane j'imagine ?
Le chemin de ton fichier est C:/....
C'est impossible !
Tu dois mettre ton fichier dans le répertoire "www" de ton serveur local, et mettre le lien ou en relatif "pages/monfichier.html", ou alors en absolu "http://localhost/pages/monfichier.html"
Dans tous les cas tu oublies les espaces dans les urls, alors renomme tes répertoires et fichiers !
Tiens-nous au courant.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je ne suis pas sûr d'avoir bien compris. Je dois mettre l'adresse de mon serveur ftp pour dossier de destination ?
Merci !!
Merci !!
Tu es en localhost ?
Tes fichiers sont sur ton ordinateur ET tu as installé wamp serveur, esayphp ou autre...
ou bien tu es sur internet ?
Ma réponse sera différente suivant la tienne
Tes fichiers sont sur ton ordinateur ET tu as installé wamp serveur, esayphp ou autre...
ou bien tu es sur internet ?
Ma réponse sera différente suivant la tienne
Mes fichiers sont sur mon ordinateur et je les upload sur le serveur ftp de mon hébergeur, ma session est dans le réseau de ma fac, mais c'est juste pour tester car les fichiers qui seront par la suite uploadés seront sur mon ordi perso. J'espère avoir répondu !
Y a pas de session dans ce qui nous occupe...
Le tout est que tu me dises si tu tests tes fichiers en local ou sur le serveur.
Si c'est en local ton fichier doit être dans le répertoire "www", et si c'est sur un hébergement alors tu chemins doit être "https://www.hugedomains.com/domain_profile.cfm?d=tondomaine&e=com"
Le tout est que tu me dises si tu tests tes fichiers en local ou sur le serveur.
Si c'est en local ton fichier doit être dans le répertoire "www", et si c'est sur un hébergement alors tu chemins doit être "https://www.hugedomains.com/domain_profile.cfm?d=tondomaine&e=com"
Ah pardon, je test mes fichiers sur le serveur. Je vais voir ce que ça donne !
Merci
Edit : j'ai mis l'adresse du site/essai.html, mais ça ne marche pas... Pourquoi ?
Merci
Edit : j'ai mis l'adresse du site/essai.html, mais ça ne marche pas... Pourquoi ?
Décidément, j'ai beau modifier la destination, tout ce que je veux, rien n'y fait. Qu'est ce que j'ai manqué ?
Merci !
Merci !
Salut
Es-tu sûr d'avoir mis les droits en écriture (CHMOD 666) sur le fichier cible ou sur le répertoire si le fichier n'existe pas ?
Es-tu sûr d'avoir mis les droits en écriture (CHMOD 666) sur le fichier cible ou sur le répertoire si le fichier n'existe pas ?
Donc, pour être sur, j'ai ajouté
Mais j'ai une erreur
Warning: chmod() [function.chmod]: No such file or directory in /www/touscelebres/test.php on line 7
Donc je pense que le prob se situe à la création du fichier, non ?
$destinationficher = "http://touscelebres.olympe-network.com/essais.html"; chmod($destinationfichier,0666); $fp = fopen($destinationfichier, 'wb');
Mais j'ai une erreur
Warning: chmod() [function.chmod]: No such file or directory in /www/touscelebres/test.php on line 7
Donc je pense que le prob se situe à la création du fichier, non ?
Non ! Le droits en écritures doivent être mis via le FTP et pas en PHP. Et après, en PHP, tu ouvres ton fichier de façon à pouvoir écrire dessus.
Et je te conseil d'utiliser une Url relative pour le chemin du fichier :
Et je te conseil d'utiliser une Url relative pour le chemin du fichier :
$destinationficher = "/essais.html";
Je vais peut être encore poser une question stupide, mais je fais ce chmod sur quel fichier ? sur mon test.php ? (le fichier sur lequel je m'échine depuis tout à l'heure) ?
Merci !!
Merci !!
Normalement, c'est sur le fichier essais.html mais si il n'existe pas et que tu souhaite que PHP le crée, il faut mettre les droits sur le dossier qui contiendra la fichier. Je pense que sur Olympe-Network tu ne puisses pas modifier le CHMOD (c'est par défaut à 777 ou 666). Jete un coup d'œil ici
Bon, voila ce que je viens de faire : j'ai créé un repertoire "pages_users" dans le répetoire du site distant dans fileZilla, et j'ai mis les droits à 666. J'ai changé le chemindestination en "/pages_users/essais.html", mais là, ça ne marche pas quand même. Qu'est ce que j'ai encore fait de travers ? Merci de votre patience.