Se connecter avec
S'enregistrer | Connectez-vous

Probleme enregistrement dans un fichier plat (en PHP)

Dernière réponse : dans Programmation


bonjour a tous, avec mon site de commande en ligne, j'ai voulu enregistrer les informations dans un fichier plat, le probleme c'est que sa ne marche pas , la fonction fopen me retourne false, je ne peux meme pas ouvrir le fichier et je ne comprend pas pourquoi j'aimerai que vous m'aidiez a resoudre ce probleme. Par contre quand j'enleve le sous dossier "commande" tout marche, la page m'indique que le fichier existe et que les enregistrements ont été fait par contre je ne sais pas ou se trouve le fichier.

Je soupçonne DOCUMENT_ROOT car je pense qu'il ne pointe pas a la bonne racine, c'est a dire la ou se trouve les scripts php ce qui rend le chemin d'acces au fichier faux mais je peux me trompé

j'espere que vous m'aiderza a resoudre au plus vite se probleme, merci a tous
voici le script

  1. <?php
  2. // Crée des noms de variables abrégées
  3. $qte_consoles = $_POST['qte_consoles'];
  4. $qte_jeux = $_POST['qte_jeux'];
  5. $qte_manettes = $_POST['qte_manettes'];
  6. $trouver = $_POST['trouver'];
  7. $date = date('H:i, \l\e j-m-Y');
  8. $livraison = $_POST['livraison'];
  9. $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT']; // aller a la racine
  10.  
  11.  
  12. ?>
  13. <html>
  14. <head>
  15. <title>Le magasin de aziz - Résultats de la commande</title>
  16. </head>
  17. <body>
  18. <h1>Le magasin de aziz</h1>
  19.  
  20. <h2>Résultats de la commande</h2>
  21. <?php
  22. echo '<p>Commande traitée à ';
  23. echo $date;
  24. echo '</p>';
  25. echo '<p>Récapitulatif de votre commande :</p>';
  26. echo $qte_consoles . ' consoles<br />';
  27. echo $qte_jeux. ' jeux<br />';
  28. echo $qte_manettes.' manettes<br />';
  29. $qte_totale = 0;
  30. $qte_totale = $qte_consoles+ $qte_jeux+ $qte_manettes;
  31. echo '<br />Articles commandés : '.$qte_totale.'<br />';
  32.  
  33. $montant_total = 0.00;
  34.  
  35. define('PRIX_CONSOLES', 300); //constantes
  36. define('PRIX_JEUX', 70);
  37. define('PRIX_MANETTES', 60);
  38.  
  39. $montant_total = $qte_consoles * PRIX_CONSOLES
  40. + $qte_jeux * PRIX_JEUX
  41. + $qte_manettes * PRIX_MANETTES;
  42.  
  43. echo 'Sous-total : '. number_format($montant_total, 3). '€<br />';
  44.  
  45. $taux_taxe= 0.196; // le taux de la taxe est de 19.6 %
  46. $montant_total = $montant_total * (1 + $taux_taxe);
  47. echo 'Total avec les taxes : ' . number_format($montant_total, 3). '€<br /><br/>';
  48. echo 'nous devrons vous livrer vos futurs prooduits à : '.$livraison.'<br/><br/>';
  49.  
  50. switch($trouver)
  51. {
  52. case 'hasard' :
  53. echo 'vous avez donc prit connaissance de ce site par hasard <br/>';
  54. break;
  55.  
  56. case 'pub' :
  57. echo 'vous avez donc prit connaissance de ce site par le biais de pub <br/>';
  58. break;
  59.  
  60. case 'annuaire' :
  61. echo 'vous avez donc prit connaissance de notre site grâce aux annuaires <br/>';
  62. break;
  63.  
  64. case 'ami' :
  65. echo 'vous avez prix la connaissance de ce site par le biais de vos amis <br/>';
  66. break;
  67.  
  68. default :
  69. echo 'une erreur s\'est produite, nous n\'avons reçu aucune réponse de votre part <br/>';
  70. break;
  71. }
  72.  
  73. $commande = '$date\t$qte_consoles consoles\t$qte_jeux jeux\t $qte_manettes manettes\t$montant_total montant\t$livraison adresse de livraison';
  74.  
  75. if (file_exists("$DOCUMENT_ROOT/../commande/commande.txt"))
  76. {
  77. echo 'le fichier existe <br/>';
  78. }
  79. else
  80. {
  81. echo 'le fichier n\'existe pas <br/>';
  82. }
  83.  
  84. @$fichier = fopen("$DOCUMENT_ROOT/../commande/commande.txt",'ab');// renvoie false si il y a un probleme
  85. /*
  86.  
  87. verouillage du fichier avec flock
  88.  
  89. */
  90. if(!$fichier)
  91. {
  92. echo 'nous sommes désolé nous n\'avons pas pu sauvegarder votre commande, réssayez plus tard';
  93. exit;
  94. ?>
  95. </body>
  96. </html>
  97. <?php
  98. }
  99.  
  100. fwrite($fichier, $commande, strlen($commande));
  101. fclose($fichier);
  102.  
  103. echo 'votre commande à été enregistrée, merci pour votre visite';
  104.  
  105. ?>
  106. </body>
  107. </html>
Lassé par la pub ? Créez un compte

il m'affiche C:/Program Files/EasyPHP-5.3.2i/www
Il y a une chose que je ne comprend pas (j'utilise easyphp) lorque je vais la ou se trouve le fichier et que je l'ouvre il y a rien d'enregistrer par contre quand je vais dans administration et que j'ouvre le fichier, la je vois les enregistrements je ne comprend pas pourquoi sa n'apparait pas lorsque j'ouvre directement le fichier, alors que je vois les enregistrements en passant par l'administration de plus meme en effaçant le fichier (en faisant supprimer) lorsque je vais dans l'administration, je vois toujour le fichier alors que je l'ai effacer manuellement. je ne comprend plus rien

je vois le meme fichier qui se trouve dans le dossier "commande" c'est a dire commande.txt, celui que je vois quand je vais dans l'administration se trouve dans le meme repertoire ou se trouve le script qui permet d'ecrire les commande faite, mais quand je vais dans ce meme repertoire sans passé par l'administration, le fichier n'apparait pas, je le vois en passant par l'administration, mais je ne le vois pas sans passer par l'administration, alors que je vais au meme endroit

je suis d'accord avec toi, c'est logique mais j'ai bien fait attention concernant l'arborescence du fichier, je l'ai fait plusieurs fois, c'est toujours la meme chose.
Mais bon, maintenant c'est le gros bordel, j'ai tout plein de fichier que je peux voir sans les voirs.
Pourtant le chemin qui mene au fichier pour sauvegarder et bon mais il m'indique que le fichier n'existe pas et ne sauvegarde pas, ce n'est pas logique car le mode ajout permet de creer le fichier si celui-ci n'existe pas, est ce un probleme de droit ?
Lassé par la pub ? Créez un compte
Tom's guide dans le monde