Fopen et fwrite
Résolu/Fermé
bartimus37
Messages postés
193
Date d'inscription
samedi 19 novembre 2011
Statut
Membre
Dernière intervention
8 octobre 2014
-
30 juil. 2012 à 19:08
bartimus37 Messages postés 193 Date d'inscription samedi 19 novembre 2011 Statut Membre Dernière intervention 8 octobre 2014 - 3 août 2012 à 11:50
bartimus37 Messages postés 193 Date d'inscription samedi 19 novembre 2011 Statut Membre Dernière intervention 8 octobre 2014 - 3 août 2012 à 11:50
A voir également:
- Fopen et fwrite
- Fputs et fwrite - Forum Webmastering
- Fopen() ✓ - Forum C
- Fopen url - Forum PHP
- Open et fopen en C - Forum C
- Probleme avec fread et fwrite sur dev c++ - Forum C++
9 réponses
Utilisateur anonyme
31 juil. 2012 à 00:36
31 juil. 2012 à 00:36
Bonsoir
Je crois que ce n'est pas tout à fait aussi simple que ça.
En fait, tu essayes de mettre dans $somecontent un texte assez long que tu choisis d'entourer par des "
Mais ce texte s'arrête alors au premier " rencontré - celui de $annee = date("Y"); // année
Si tu veux mettre des " dans une chaîne entre ", il faut échapper les " avec des \.
Je ne donne que le début comme exemple :
J'ai corrigé aussi le début, où tu te mêlais les pinceaux avec $filename, les apostrophes simples. Tu devrais ouvrir le fichier en w+ au moment d'écrire dedans.
Je crois que ce n'est pas tout à fait aussi simple que ça.
En fait, tu essayes de mettre dans $somecontent un texte assez long que tu choisis d'entourer par des "
Mais ce texte s'arrête alors au premier " rencontré - celui de $annee = date("Y"); // année
Si tu veux mettre des " dans une chaîne entre ", il faut échapper les " avec des \.
Je ne donne que le début comme exemple :
<?php $jeux = $_POST['lien']; $filename = "$jeux.php"; $somecontent = "$heures = 0; // les heures < 24 $minutes = 0; // les minutes < 60 $secondes = 15; // les secondes < 60 $annee = date(\"Y\"); // année $mois = date(\"m\"); // mois $jour = date(\"d\"); // jours ...
J'ai corrigé aussi le début, où tu te mêlais les pinceaux avec $filename, les apostrophes simples. Tu devrais ouvrir le fichier en w+ au moment d'écrire dedans.
Utilisateur anonyme
1 août 2012 à 11:11
1 août 2012 à 11:11
Comme l'a dit Autumn'Tears, tu as mis les \ après les " au lieu de les mettre avant à certains endroits.
Et en plus, tu as oublié des \ avant certains $
Mais surtout, comme tu as obéi à une consigne sans la comprendre, tu as mal obéi et tu as mis des \ au-delà de la partie où il en fallait en mettre. Il en fallait UNIQUEMENTdans la partie comprise entre le " initial et le " final de $somecontent = "....";
De plus, dans cette partie, il faut ou il ne faut pas de \ devant les $, ça dépend de l'effet recherché : remplacement de la variable par sa valeur lors de l'exécution de redir.php, ou conservation du nom de variable dans le fichier qui sera créé.
Conclusion : lis le paragraphe du manuel php sur l'écriture des chaines entre " et comment échapper les caractères dans ces chaînes (ça ne fait qu'une page). Après, tu sauras ce qu'il faut vraiment faire - et pourquoi.
Et en plus, tu as oublié des \ avant certains $
Mais surtout, comme tu as obéi à une consigne sans la comprendre, tu as mal obéi et tu as mis des \ au-delà de la partie où il en fallait en mettre. Il en fallait UNIQUEMENTdans la partie comprise entre le " initial et le " final de $somecontent = "....";
De plus, dans cette partie, il faut ou il ne faut pas de \ devant les $, ça dépend de l'effet recherché : remplacement de la variable par sa valeur lors de l'exécution de redir.php, ou conservation du nom de variable dans le fichier qui sera créé.
Conclusion : lis le paragraphe du manuel php sur l'écriture des chaines entre " et comment échapper les caractères dans ces chaînes (ça ne fait qu'une page). Après, tu sauras ce qu'il faut vraiment faire - et pourquoi.
Utilisateur anonyme
1 août 2012 à 19:21
1 août 2012 à 19:21
Ce <?php n'était pas là dans ton script initial.
Et il n'a probablement rien à faire ici, il faudrait avoir le code qui précède l'erreur pour en être sûr. Mais a priori c'est
Tu es en php après le ; car le ?> est à l'intérieur de ta chaîne $somecontent="...<gras>?>"; </gras>
Il ne faut pas de balise <?php puisque tu es déjà en php.
Et il n'a probablement rien à faire ici, il faudrait avoir le code qui précède l'erreur pour en être sûr. Mais a priori c'est
<?php } ?>";
Tu es en php après le ; car le ?> est à l'intérieur de ta chaîne $somecontent="...<gras>?>"; </gras>
Il ne faut pas de balise <?php puisque tu es déjà en php.
bartimus37
Messages postés
193
Date d'inscription
samedi 19 novembre 2011
Statut
Membre
Dernière intervention
8 octobre 2014
14
1 août 2012 à 19:39
1 août 2012 à 19:39
oui j'était déjà en php j'ai corrigé cette erreur mais :
Notice: Undefined variable: heures in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 6
Notice: Undefined variable: minutes in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 7
Notice: Undefined variable: secondes in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 8
Notice: Undefined variable: annee in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 9
Notice: Undefined variable: mois in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 10
Notice: Undefined variable: jour in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 12
Notice: Undefined variable: redirection in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 12
Notice: Undefined variable: secondes in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 13
Notice: Undefined variable: heures in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 16
Notice: Undefined variable: mois in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 17
Notice: Undefined variable: jour in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 18
Notice: Undefined variable: annee in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 26
Notice: Undefined variable: secondes in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 38
Notice: Undefined variable: redirection in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 57
Le fichier $jeux.php n'est pas accessible en écriture.
Notice: Undefined variable: heures in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 6
Notice: Undefined variable: minutes in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 7
Notice: Undefined variable: secondes in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 8
Notice: Undefined variable: annee in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 9
Notice: Undefined variable: mois in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 10
Notice: Undefined variable: jour in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 12
Notice: Undefined variable: redirection in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 12
Notice: Undefined variable: secondes in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 13
Notice: Undefined variable: heures in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 16
Notice: Undefined variable: mois in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 17
Notice: Undefined variable: jour in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 18
Notice: Undefined variable: annee in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 26
Notice: Undefined variable: secondes in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 38
Notice: Undefined variable: redirection in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 57
Le fichier $jeux.php n'est pas accessible en écriture.
Utilisateur anonyme
2 août 2012 à 19:11
2 août 2012 à 19:11
Je vois que tu as décidé de ne pas apprendre le php et d'attendre que je te donne les réponses.
Pourtant ton problème ne porte pas sur des choses compliquées, seulement sur le B A BA de l'écriture des chaînes avec simples et doubles quotes.
Alors dernier tuyau : s'il y a $jeux.php, c'est parce que tu as mis $filename = '$jeux.php';. Si tu mettais $filename = "$jeux.php"; ça marcherait nettement mieux.
Pourtant ton problème ne porte pas sur des choses compliquées, seulement sur le B A BA de l'écriture des chaînes avec simples et doubles quotes.
Alors dernier tuyau : s'il y a $jeux.php, c'est parce que tu as mis $filename = '$jeux.php';. Si tu mettais $filename = "$jeux.php"; ça marcherait nettement mieux.
bartimus37
Messages postés
193
Date d'inscription
samedi 19 novembre 2011
Statut
Membre
Dernière intervention
8 octobre 2014
14
3 août 2012 à 11:50
3 août 2012 à 11:50
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Autumn`Tears
Messages postés
1054
Date d'inscription
samedi 14 mars 2009
Statut
Membre
Dernière intervention
23 octobre 2013
145
30 juil. 2012 à 22:19
30 juil. 2012 à 22:19
Salut,
Ton problème est ici :
$somecontent = "$heures = 0;
En supprimant cette guillemet, ton problème devrait être résolu !
Ton problème est ici :
$somecontent = "$heures = 0;
En supprimant cette guillemet, ton problème devrait être résolu !
bartimus37
Messages postés
193
Date d'inscription
samedi 19 novembre 2011
Statut
Membre
Dernière intervention
8 octobre 2014
14
31 juil. 2012 à 18:49
31 juil. 2012 à 18:49
si je supprimer ce guillemet le fichier créer est vide
Utilisateur anonyme
31 juil. 2012 à 20:59
31 juil. 2012 à 20:59
J'avais oublié de te dire d'en mettre aussi avant les $. Mais ça n'explique pas ton message d'erreur, peux-tu montrer ton code avec les \ ajoutés ?
bartimus37
Messages postés
193
Date d'inscription
samedi 19 novembre 2011
Statut
Membre
Dernière intervention
8 octobre 2014
14
1 août 2012 à 17:55
1 août 2012 à 17:55
J'ai relu tout le fichier redir.php et j'ai corrigé les \ en trops et mal placé mais maintenant j'ai une erreur que je ne comprend pas :
Parse error: syntax error, unexpected '<' in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 58
à ma ligne 58 j'ai le debut de
<?php
// Assurons nous que le fichier est accessible en écriture
if (is_writable($filename)) {
// Dans notre exemple, nous ouvrons le fichier $filename en mode d'ajout
// Le pointeur de fichier est placé à la fin du fichier
// c'est là que $somecontent sera placé
if (!$handle = fopen($filename, 'a')) {
echo "Impossible d'ouvrir le fichier ($filename)";
exit;
}
// Ecrivons quelque chose dans notre fichier.
if (fwrite($handle, $somecontent) === FALSE) {
echo "Impossible d'écrire dans le fichier ($filename)";
exit;
}
echo "L'écriture de ($somecontent) dans le fichier ($filename) a réussi";
fclose($handle);
} else {
echo "Le fichier $filename n'est pas accessible en écriture.";
}
?>
Parse error: syntax error, unexpected '<' in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 58
à ma ligne 58 j'ai le debut de
<?php
// Assurons nous que le fichier est accessible en écriture
if (is_writable($filename)) {
// Dans notre exemple, nous ouvrons le fichier $filename en mode d'ajout
// Le pointeur de fichier est placé à la fin du fichier
// c'est là que $somecontent sera placé
if (!$handle = fopen($filename, 'a')) {
echo "Impossible d'ouvrir le fichier ($filename)";
exit;
}
// Ecrivons quelque chose dans notre fichier.
if (fwrite($handle, $somecontent) === FALSE) {
echo "Impossible d'écrire dans le fichier ($filename)";
exit;
}
echo "L'écriture de ($somecontent) dans le fichier ($filename) a réussi";
fclose($handle);
} else {
echo "Le fichier $filename n'est pas accessible en écriture.";
}
?>
bartimus37
Messages postés
193
Date d'inscription
samedi 19 novembre 2011
Statut
Membre
Dernière intervention
8 octobre 2014
14
1 août 2012 à 20:11
1 août 2012 à 20:11
il était en trops le <?php
bartimus37
Messages postés
193
Date d'inscription
samedi 19 novembre 2011
Statut
Membre
Dernière intervention
8 octobre 2014
14
1 août 2012 à 20:10
1 août 2012 à 20:10
maintenant j'ai :
Notice: Undefined variable: heures in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 6
Notice: Undefined variable: minutes in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 7
Notice: Undefined variable: secondes in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 8
Notice: Undefined variable: annee in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 9
Notice: Undefined variable: mois in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 10
Notice: Undefined variable: jour in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 12
Notice: Undefined variable: redirection in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 12
Notice: Undefined variable: secondes in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 13
Notice: Undefined variable: heures in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 16
Notice: Undefined variable: mois in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 17
Notice: Undefined variable: jour in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 18
Notice: Undefined variable: annee in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 26
Notice: Undefined variable: secondes in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 38
Notice: Undefined variable: redirection in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 57
Le fichier $jeux.php n'est pas accessible en écriture.
Notice: Undefined variable: heures in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 6
Notice: Undefined variable: minutes in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 7
Notice: Undefined variable: secondes in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 8
Notice: Undefined variable: annee in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 9
Notice: Undefined variable: mois in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 10
Notice: Undefined variable: jour in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 12
Notice: Undefined variable: redirection in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 12
Notice: Undefined variable: secondes in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 13
Notice: Undefined variable: heures in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 16
Notice: Undefined variable: mois in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 17
Notice: Undefined variable: jour in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 18
Notice: Undefined variable: annee in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 26
Notice: Undefined variable: secondes in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 38
Notice: Undefined variable: redirection in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 57
Le fichier $jeux.php n'est pas accessible en écriture.
Utilisateur anonyme
2 août 2012 à 00:06
2 août 2012 à 00:06
Tous ces "undefined variable" indiquent que tu as retiré des \ devant des $ alors qu'ils auraient dû y rester.
bartimus37
Messages postés
193
Date d'inscription
samedi 19 novembre 2011
Statut
Membre
Dernière intervention
8 octobre 2014
14
2 août 2012 à 18:32
2 août 2012 à 18:32
maintenant j'ai : Notice: Undefined variable: heures in C:\Program Files (x86)\EasyPHP-12.0\www\redirection\redir.php on line 57
Le fichier $jeux.php n'est pas accessible en écriture.
Et j'aimerai qu'a la place de $jeux.php il y est la valeur entré dans le formulaire .
Le fichier $jeux.php n'est pas accessible en écriture.
Et j'aimerai qu'a la place de $jeux.php il y est la valeur entré dans le formulaire .
31 juil. 2012 à 18:48
Parse error: syntax error, unexpected '\' (T_NS_SEPARATOR) in C:\Program Files (x86)\EasyPHP-12.0\www\redir.php on line 9
31 juil. 2012 à 20:40
$minutes = 0; // les minutes < 60
$secondes = 15; // les secondes < 60
$annee = date(\"Y\"); // année
$mois = date(\"m\"); // mois
$jour = date(\"d\"); // jours ?
31 juil. 2012 à 21:01
On voit bien que bartimus37 crée dynamiquement un fichier php (beurk)
31 juil. 2012 à 21:13
Modifié par bartimus37 le 1/08/2012 à 10:26
https://docs.google.com/document/d/1lVdRe9Snn0YP5S7xjnd5cIksYq1bTyyvqK35eq0z0zk/edit