Warning: fopen ?
Sihpe
-
macgawel Messages postés 664 Date d'inscription Statut Membre Dernière intervention -
macgawel Messages postés 664 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai fait une page pour créer d'autre page comme cela:
Mais le soucis c'est qu'il me dit pour fopen:fopen(../Page_a_Valider/test) [function.fopen]: failed to open stream: No such file or directory in ../includes/creer_la_page.php on line 48.
Pour fputs():Warning: fputs(): supplied argument is not a valid stream resource in ../includes/creer_sa_page.php on line 56
et fclose():Warning: fclose(): supplied argument is not a valid stream resource in ../includes/creer_sa_page.php on line 58
Alors la je ne comprend pas pourquoi :s Surtout qu'il ne me créer pas la page au final!
Donc si quelqu'un peut m'aider je lui en serais reconnaissant.
J'ai fait une page pour créer d'autre page comme cela:
<h1>Proposer sa page !</h1> <?php if($pun_user['username'] == "" or $pun_user['username'] == "Guest"){ { echo "Pour y acceder vous devez vous connecter: <br />"; } ?> <br /> <br /> <br /> <center><form method="post" action="forum/login.php?action=in"> <input type="hidden" name="form_sent" value="1" /> <input type="hidden" name="redirect_url" value="../index.ph?p=creer_la_page&action=creer" /> <input type="text" name="req_username" size="20"/><br /> <input type="password" name="req_password" size="20" /><br /> <input type="submit" id="submit" value="Se connecter et créer la page" /><br /> </form> </center> <br /> <br /> <br /> <?php if($pun_user['username'] == "" or $pun_user['username'] == "Guest") { echo "<br /><p font=\"2px\">Pas encore inscrit ?!<br /> <a href=\"http://monsite.fr/forum/register.php\">Enregistrez vous !</a>"; } ?> <br /> <br /> <br /> <?php }elseif($pun_user['username'] != "Guest" or $_POST["action"] == "creer") { echo "<form method=\"post\" action=\"../index.php?p=creer_la_page\" name=\"creer_la_page\">" ; echo "<fieldset><legend>Créer une nouvelle page</legend>" ; echo "<label for=\"nom\">Nom de la page :</label><input type=\"text\" name=\"nom\" maxlength=\"30\" id=\"nom\" /><br />" ; echo "<label for=\"titre\">Titre de la page :</label><input type=\"text\" name=\"titre\" maxlength=\"20\" id=\"titre\" /><br />" ; echo "<label for=\"contenu\">Contenu de la page :</label><textarea name=\"contenu\" cols=\"50\" rows=\"30\" id=\"contenu\" /></textarea><br />" ; echo "<input type=\"hidden\" name=\"action\" value=\"creer\" /><input type=\"submit\" name=\"Envoyer\" /> " ; echo "<input type=\"reset\" name=\"Annuler\" />" ; echo "</fieldset></form>" ; } if($_POST["action"] == "creer") { $nom=stripslashes($_POST["nom"]) ; $contenu=stripslashes($_POST["contenu"]) ; $pun_user=stripslashes($_POST["username"]); $titre=stripslashes($_POST["titre"]) ; $$fichier=fopen('../Page_a_Valider/'.$nom .$pun_user, 'w+') ; $contenufichier='<!DOCTYPE html PUBLIC "-//W3C\\DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> <title>'.$titre.'</title> <body>'.$contenu.'</body></html>' ; fputs($fichier, $contenufichier) ; fclose($fichier) ; echo "Fichier créé avec succès" ; } ?>
Mais le soucis c'est qu'il me dit pour fopen:fopen(../Page_a_Valider/test) [function.fopen]: failed to open stream: No such file or directory in ../includes/creer_la_page.php on line 48.
Pour fputs():Warning: fputs(): supplied argument is not a valid stream resource in ../includes/creer_sa_page.php on line 56
et fclose():Warning: fclose(): supplied argument is not a valid stream resource in ../includes/creer_sa_page.php on line 58
Alors la je ne comprend pas pourquoi :s Surtout qu'il ne me créer pas la page au final!
Donc si quelqu'un peut m'aider je lui en serais reconnaissant.
A voir également:
- Warning: fopen ?
- Warning zone telechargement - Accueil - Outils
- Téléchargement et streaming illégal : voici les adresses des sites pirates que les FAI vont bloquer - Accueil - Services en ligne
- Cpu fan fail warning control - Forum Matériel & Système
- Symbole warning word ✓ - Forum Word
- Comment faire le symbole attention ✓ - Forum Loisirs / Divertissements
12 réponses
1. Tu testes if($_POST["action"] == "creer")
Problème : au premier passage (en tout cas sur ma page de test...) il n'est pas défini.
Solution :
if((isset($_POST["action"])) && ($_POST["action"] == "creer"))
2. Ton formulaire renvoie sur la page ../index.php
Ca fonctionne chez toi ? Je veux dire, quand tu cliques sur "Envoyer", ça te ramène à quelle page ?
Normalement, ça devrait te ramener à cette même page (celle dont tu me donnes le code, avec le formulaire).
Sinon, tu n'exécutes pas le code qui suit (celui qui créer le fichier).
Pour moi (au vu du code,si ça tombe je me plante complètement !) :
Ton site est organisé +- comme ça :
Répertoire racine :
index.php
Page_a_Valider/
pages/
Répertoire pages :
creer_sa_page.php
Dans index, tu appelles la page passée en paramètre p=
Si ce n'est pas ça, ça veut dire que ton formulaire renvoie sur la page index.php qui ne contient pas le code de création du fichier...
Et l question que je me pose, si c'est bien organisé comme ça : Quand tu cliques, tu arrives bien sur ta page index.php ?
Parce que chez moi, pour que ça fonctionne, j'ai dû modifier l'action du formulaire, pour pointer vers ./index.php et pas ../index.php
Ce qui fait qu'il faudrait peut-être essayer en faisant
$fichier=fopen('./Page_a_Valider/'.$nom .$pun_user, 'w+') ;
plutôt que
$fichier=fopen('../Page_a_Valider/'.$nom .$pun_user, 'w+') ;
Problème : au premier passage (en tout cas sur ma page de test...) il n'est pas défini.
Solution :
if((isset($_POST["action"])) && ($_POST["action"] == "creer"))
2. Ton formulaire renvoie sur la page ../index.php
Ca fonctionne chez toi ? Je veux dire, quand tu cliques sur "Envoyer", ça te ramène à quelle page ?
Normalement, ça devrait te ramener à cette même page (celle dont tu me donnes le code, avec le formulaire).
Sinon, tu n'exécutes pas le code qui suit (celui qui créer le fichier).
Pour moi (au vu du code,si ça tombe je me plante complètement !) :
Ton site est organisé +- comme ça :
Répertoire racine :
index.php
Page_a_Valider/
pages/
Répertoire pages :
creer_sa_page.php
Dans index, tu appelles la page passée en paramètre p=
Si ce n'est pas ça, ça veut dire que ton formulaire renvoie sur la page index.php qui ne contient pas le code de création du fichier...
Et l question que je me pose, si c'est bien organisé comme ça : Quand tu cliques, tu arrives bien sur ta page index.php ?
Parce que chez moi, pour que ça fonctionne, j'ai dû modifier l'action du formulaire, pour pointer vers ./index.php et pas ../index.php
Ce qui fait qu'il faudrait peut-être essayer en faisant
$fichier=fopen('./Page_a_Valider/'.$nom .$pun_user, 'w+') ;
plutôt que
$fichier=fopen('../Page_a_Valider/'.$nom .$pun_user, 'w+') ;
Bonjour.
Le message important, c'est le premier qui te dis qu'il ne peut pas créer le fichier.
Les autres sont logiques (vu que tu ne crées pas le fichier, tu ne peux ni écrire dedans, ni le fermer)
Le répertoire Page_a_Valider existe ? Il a le bon chmod ?
Vérifie dans quel répertoire tu es quand tu exécutes le script (si tu l'appelle via un incude, il me semble que PHP considère que tu es encore dans le répertoire du script appelant.)
Le message important, c'est le premier qui te dis qu'il ne peut pas créer le fichier.
Les autres sont logiques (vu que tu ne crées pas le fichier, tu ne peux ni écrire dedans, ni le fermer)
Le répertoire Page_a_Valider existe ? Il a le bon chmod ?
Vérifie dans quel répertoire tu es quand tu exécutes le script (si tu l'appelle via un incude, il me semble que PHP considère que tu es encore dans le répertoire du script appelant.)
Oui ce n'est pas chmod non plus car j'ai tjrs la même erreur, par contre je ne sais pas comment faire pour vérifier le répertoire ? Ainsi comment le modifier car j'ai indiqué qu'il devait être dans Page_a_Valider ainsi que il doit partir de la racine ...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ah non c'est pire, quand je met .test.htm il me met quand même l'érreur de
Warning: fputs(): supplied argument is not a valid stream resource in ../includes/creer_sa_page.php on line 56
Warning: fclose(): supplied argument is not a valid stream resource in ../includes/creer_sa_page.php on line 58
Alors que logiquement ça devrais le faire non ? :o
Warning: fputs(): supplied argument is not a valid stream resource in ../includes/creer_sa_page.php on line 56
Warning: fclose(): supplied argument is not a valid stream resource in ../includes/creer_sa_page.php on line 58
Alors que logiquement ça devrais le faire non ? :o
Ah oui ,
mais avant ça n'y était pas, et la je viens de le refaire
et ça ne marche pas :'(
$fichier=fopen('../Page_a_Valider/'.$nom .$pun_user, 'w+') ;
j'ai même fait sous d'autre repertoire changer le chmod en 777 et tout ..
mais avant ça n'y était pas, et la je viens de le refaire
et ça ne marche pas :'(
$fichier=fopen('../Page_a_Valider/'.$nom .$pun_user, 'w+') ;
j'ai même fait sous d'autre repertoire changer le chmod en 777 et tout ..
PLS help me !
Je ne comprend pas, je n'y arrive toujours pas !
Pourtant si je ne fait que le code de création de page ça marche, alors peut être que c'est le formulaire qui le bloque ?!!
Je ne comprend pas, je n'y arrive toujours pas !
Pourtant si je ne fait que le code de création de page ça marche, alors peut être que c'est le formulaire qui le bloque ?!!
oui, c'est le même presque:
Je ne vois vraiment pas d'où viens l'erreur !
<h1>Proposer sa page !</h1> <?php if($pun_user['username'] == "" or $pun_user['username'] == "Guest"){ { echo "Vous pouvez aider le site et donc l'association Nhorrat tout en faisant des pages sur le notre, bien évidemment nous devons le valider avant parution de votre page. <br /> Si vous vous êtes inscrit sur notre site, vous aurez la possibilité de modifier vos pages ... <br /><br />Pour y acceder vous devez vous connecter: <br />"; } ?> <br /> <br /> <br /> <center><form method="post" action="forum/login.php?action=in"> <input type="hidden" name="form_sent" value="1" /> <input type="hidden" name="redirect_url" value="../index.ph?p=creer_sa_page&action=creer" /> <input type="text" name="req_username" size="20"/><br /> <input type="password" name="req_password" size="20" /><br /> <input type="submit" id="submit" value="Se connecter et créer sa page" /><br /> </form> </center> <br /> <br /> <br /> <?php if($pun_user['username'] == "" or $pun_user['username'] == "Guest") { echo "<br /><p font=\"2px\">Pas encore inscrit ?!<br /> <a href=\"http://nhorrat.fr/forum/register.php\">Enregistrez vous !</a>"; } ?> <br /> <br /> <br /> <?php }if($pun_user['username'] != "Guest" or $_POST["action"] == "creer") { echo "<form method=\"post\" action=\"../index.php?p=creer_sa_page\" name=\"creer_sa_page\">" ; echo "<fieldset><legend>Créer une nouvelle page</legend>" ; echo "<label for=\"nom\">Nom de la page :</label><input type=\"text\" name=\"nom\" maxlength=\"30\" id=\"nom\" /><br />" ; echo "<label for=\"titre\">Titre de la page :</label><input type=\"text\" name=\"titre\" maxlength=\"20\" id=\"titre\" /><br />" ; echo "<label for=\"contenu\">Contenu de la page :</label><textarea name=\"contenu\" cols=\"50\" rows=\"30\" id=\"contenu\" /></textarea><br />" ; echo "<input type=\"hidden\" name=\"action\" value=\"creer\" /><input type=\"submit\" name=\"Envoyer\" /> " ; echo "<input type=\"reset\" name=\"Annuler\" />" ; echo "</fieldset></form>" ; } if($_POST["action"] == "creer") { $nom=stripslashes($_POST["nom"]) ; $contenu=stripslashes($_POST["contenu"]) ; $pun_user=stripslashes($_POST["username"]); $titre=stripslashes($_POST["titre"]) ; $fichier=fopen('../Page_a_Valider/'.$nom .$pun_user, 'w+') ; $contenufichier='<!DOCTYPE html PUBLIC "-//W3C\\DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> <title>'.$titre.'</title> <body>'.$contenu.'</body></html>' ; fputs($fichier, $contenufichier) ; fclose($fichier) ; echo "Fichier créé avec succès" ; } ?>
Je ne vois vraiment pas d'où viens l'erreur !
Merci de ton aide, d'une part moi avec tes deux codes ça ne me donne jamais le formulaire ... !
Si je veux avoir le formulaire il me faut cette variable }if($pun_user['username'] != "Guest" or $_POST["action"] == "creer")
Et je ne sais pas si tu parle du premier formulaire ou du deuxiemmes je suppose que c'est pour le 2 e et donc moi il me renvois sur la même page "../index.php?p=creer_sa_page" donc je reste tout le temps sur creer_sa_page.
Et oui c'est le bon plan de mon site:
Mon repertoire racine:
-index.php
-Page_a_Valider et dedans ---La pagequejecréeraveclesite.php/html
-include: et dedans creer_sa_page.php
"
Dans index, tu appelles la page passée en paramètre p=
Si ce n'est pas ça, ça veut dire que ton formulaire renvoie sur la page index.php qui ne contient pas le code de création du fichier... " ça j'ai pas bien compris ce que tu voulais dire ? :s
Mon dieu quand j'ai fait ./Page_à_Valider ça marche !!!!!!
MERCI mais pourquoi ? :o
Si je veux avoir le formulaire il me faut cette variable }if($pun_user['username'] != "Guest" or $_POST["action"] == "creer")
Et je ne sais pas si tu parle du premier formulaire ou du deuxiemmes je suppose que c'est pour le 2 e et donc moi il me renvois sur la même page "../index.php?p=creer_sa_page" donc je reste tout le temps sur creer_sa_page.
Et oui c'est le bon plan de mon site:
Mon repertoire racine:
-index.php
-Page_a_Valider et dedans ---La pagequejecréeraveclesite.php/html
-include: et dedans creer_sa_page.php
"
Dans index, tu appelles la page passée en paramètre p=
Si ce n'est pas ça, ça veut dire que ton formulaire renvoie sur la page index.php qui ne contient pas le code de création du fichier... " ça j'ai pas bien compris ce que tu voulais dire ? :s
Mon dieu quand j'ai fait ./Page_à_Valider ça marche !!!!!!
MERCI mais pourquoi ? :o
Je vais essayer d'être plus clair...
En gros :
1. Tu es dans la page index.php
2. Tu fais un include ('rep1/rep2/rep3/.../fichier.php').
Que se passe-t'il ? Le code qui es dans le fichier rep1/rep2/rep3/.../fichier.php est "collé" dans la page index.php.
Donc, les chemins relatifs (../Page_à_Valider/) sont calculés à partir de l'endroit où tu es : la page index.php, et pas à partir de l'endroit où se trouve la page que tu as appelé par l'include.
Pour ton problème avec le nom de fichier qui ne prend pas $pun_user :
$pun_user est un tableau. Essaye avec $pun_user['username']...
En gros :
1. Tu es dans la page index.php
2. Tu fais un include ('rep1/rep2/rep3/.../fichier.php').
Que se passe-t'il ? Le code qui es dans le fichier rep1/rep2/rep3/.../fichier.php est "collé" dans la page index.php.
Donc, les chemins relatifs (../Page_à_Valider/) sont calculés à partir de l'endroit où tu es : la page index.php, et pas à partir de l'endroit où se trouve la page que tu as appelé par l'include.
Pour ton problème avec le nom de fichier qui ne prend pas $pun_user :
$pun_user est un tableau. Essaye avec $pun_user['username']...