[PHP] News sans bdd

News sans bdd [PHP] - PHP - Programmation

Marsh Posté le 26-11-2007 à 10:29:18    

Salut à tous, j'ai un petit soucis avec un code que j'ai trouvé sur internet, qui me plait beaucoup mais je n'arrive pas à le mettre en place sur mon site.

 

Je souhaiterais faire une page de news sans bdd MySql sur mon site car il y aura que très peu de news et que je n'ai pas vraiment le temps de faire un script plus complexe que celui que j'ai trouvé. Seulement j'ai un petit problème avec le script que j'ai actuellement, j'arrive sans problème à avoir le formulaire pour écrire une news mais je n'arrive pas à envoyer la news dans le fichier texte correspondant.

 

Je pense savoir ou est l'erreur mais je ne trouve pas l'erreur en elle-même.

 

Je vous donne le code:

 
Code :
  1. <form name="form1" method="post" action="projectniouzes.php">
  2. <center><font color="white" face=arial>
  3. Votre Nom :
  4. </font><br>
  5. <input type=text name="nom" maxlenght=40><!--définir ici la taille max du titre en changeant la valuer de maxlenght (40= 40 caractères Max...)-->
  6. <br><font color="white" face=arial>
  7. Titre du commentaire :
  8. </font><br>
  9. <input type=text name="niouzetitle" maxlenght=40><!--définir ici la taille max du titre en changeant la valuer de maxlenght (40= 40 caractères Max...)-->
  10. <br>
  11. <br><font color="white" face=arial>
  12. Votre commentaire :
  13. </font><br>
  14. <textarea name="niouze" rows=4 cols=30>
  15. </textarea>
  16. <br>
  17. <br>
  18. <input type=submit name="send" value="Poster le commentaire">
  19. <input type=reset value="annuler">
  20. </center>
  21. </form>
  22. <?php
  23. if (isset($send)){
  24. if(empty($nom)){
  25. echo "Veuillez définir votre nom";
  26. die;
  27. }
  28. if(empty($niouzetitle)){
  29. echo "Veuillez définir le titre du commentaire";
  30. die;
  31. }
  32. if(empty($niouze)){
  33. echo "veuillez indiquer le contenu du commentaire";
  34. die;
  35. }
  36. $niouzedate = date("d/n/Y à H:i" );
  37. $niouzedate = stripslashes($niouzedate);
  38. $niouzename = stripslashes ($name);
  39. $niouzetitle = stripslashes($niouzetitle);
  40. $niouze = stripslashes($niouze);
  41. echo " $niouzname. $niouzetitle. : $niouze. , le $niouzedate";
  42. //traitement de la niouze pour la mettre avec toutes les autres niouzes
  43. $allniouzes = "allniouzes.txt";
  44. $write1 = "<br><i>le $niouzedate</i><br><br><center><b>$nom</b><br><br><br><b>$niouzetitle</b><br><br><br>$niouze<br><br><br></center><hr color=#00C0FF width=70%>";
  45. $write1 = stripslashes($write1);
  46.  
  47. $fp = fopen($allniouzes,"r" ) or die("écriture sur allniouzes.txt échouée." );
  48. fwrite($fp,$write1);
  49. fclose($fp);
  50. //traitement de la niouze pour l'afficher seule sur une page d'accueil, par exemple...
  51. $derniereniouze = "derniereniouze.txt";
  52. $write2 = "<br><i>le $niouzedate</i><br><br><center><b>$nom</b><br><br><br><b>$niouzetitle</b><br><br><br>$niouze</center>";
  53. $write2 = stripslashes($write2);
  54. $fp = fopen($derniereniouze,"w" ) or die("écriture sur derniereniouze.txt échouée" );
  55. fwrite($fp,$write2);
  56. fclose($fp);
  57. }
  58. ?>
 

Donc selon moi, le problème c'est que l'envoie du formulaire n'est pas traité et je ne comprends pas pourquoi. Ca parait tout simple pourtant mais je ne sais pas ce qui cloche...

 

Si quelqu'un pouvait m'aider à trouver l'erreur ca me rendrait grandement service.

 

Merci à tous!


Message édité par tom_the_cat le 26-11-2007 à 10:31:41

---------------
Dou bidou bidou bidou...TOUPIDIBOU!
Reply

Marsh Posté le 26-11-2007 à 10:29:18   

Reply

Marsh Posté le 26-11-2007 à 10:34:38    

Si j'ai bien compris la code en PHP traite ce qui vient du formulaire ?
Mais tu récuperes pas les données de ce formulaire via $_POST ou tu l'as pas spécifié :??:


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 26-11-2007 à 10:42:29    

ce script utilise les register globals, il date de matusalem :o


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 26-11-2007 à 10:52:48    

SICKofitALL a écrit :

Si j'ai bien compris la code en PHP traite ce qui vient du formulaire ?
Mais tu récuperes pas les données de ce formulaire via $_POST ou tu l'as pas spécifié :??:


 
Effectivement, ca doit être ca qu'il me manque... Je ne sais pas très bien ce qu'il en est car j'ai reprise ce script tel quel et je l'ai installé telle que c'était expliqué par celui qui l'a écrit mais apparement c'est pas pile poil au point.
 
Tu peux m'expliquer comment je dois faire? Où dois-je intégrer le $_POST? Et tu peux me dire si je n'est que ca a faire?
 
Merci de ton coup de main!
 

kadreg a écrit :

ce script utilise les register globals, il date de matusalem :o


Oui, certainement mais le codage est très simple (vu mes compétences en programmation, ca me convient très bien) et c'est vraiment ca qu'il me faut, je veux juste pouvoir écrire de temps en temps une news ou deux sur mon site, je n'ai rien besoin de plus donc ce script est parfait pour mon utilisation, même s'il est un peu dépassé... Il sera toujours possible plus tard de moderniser ce script mais il faudra d'abord que je développe mes connaissances. Tu penses que ca peut me causer des problèmes de sécurité?
 


---------------
Dou bidou bidou bidou...TOUPIDIBOU!
Reply

Marsh Posté le 26-11-2007 à 11:08:19    

Les données contenues dans un formulaire sont automatiquement placés dans un tableau associatif (tableau['clé'] = valeur). Ce comportement est par défaut depuis php4 si je me souviens bien, alors qu'avant les données du formulaire étaient converties en variables (comme c'est le cas dans ton script), ce qui pose plein de soucis pour la sécurité, etc...
 
Jete un œil là http://www.phpdebutant.org/article113.php pour des explications détaillées et un exemple concret :)


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 26-11-2007 à 12:20:08    

Ok, je te remercie beaucoup, je n'en demandais pas tant mais merci d'avoir passé du temps la dessus.
 
Je vais essayé de me débrouiller maintenant mais si jamais je ne m'en sors pas, vous connaissez un script de news sans bdd qui soit un peu plus récent que celui ci (et à la limite, s'il fonctionne, ca m'arrange aussi  :D )?
 
Merci à tous pour vos conseils!


Message édité par tom_the_cat le 26-11-2007 à 12:21:01

---------------
Dou bidou bidou bidou...TOUPIDIBOU!
Reply

Marsh Posté le 26-11-2007 à 13:19:51    

Ouhla, en fait c'est plus compliqué que ce que je pensais... Finalement, je n'arrive pas à faire fonctionner ton script NazzTazz (j'ai une page blanche quand je l'éxecute avec rien du tout dessus) et j'ai chercher d'autres scripts un peu plus récents. J'ai essayé Sponge News qui à l'air un peu mieux fait mais ca ne fonctionne pas non plus.

 

Je commence à douter de plus en plus que l'on puisse faire des news sans bdd... Si quelqu'un pouvait m'aiguiller un peu, ca me rendrait grandement service.

 

J'ai deja regarder à peu prêt tous les scripts sans bdd de comscript et de toocharger et pour l'instant, j'en suis toujours au même point...


Message édité par tom_the_cat le 26-11-2007 à 13:20:56

---------------
Dou bidou bidou bidou...TOUPIDIBOU!
Reply

Marsh Posté le 26-11-2007 à 14:12:25    

son script fonctionne pourtant :)
 
Copie/colle le tel quel, et remplace le point par un point virgule à la ligne 48
 
Crée le fichier allniouzes.txt d'abord, ou fait un fopen ("a" ) à plutot que un fopen ("r" )


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 26-11-2007 à 14:50:03    

J'y comprends rien, j'ai fait exactement ce que tu m'as dit, en plus, j'ai viré les autres fioritures qui étaient sur la page pour être sur que rien ne vienne entacher le code et il n'y a pas moyen de le faire fonctionner!

 

Le pire c'est de se dire que toi tu y arrives! A mon avis, on peut commencer à m'élire sur le podium des grands boulets du forum! [:ethique]

 

Bref, je te donne ma page complète de code, comme ca ce sera plus simple:

 
Code :
  1. <html>
  2. <head>
  3. <div><title>News</title></div>
  4. </head>
  5. <body>
  6. <?php
  7.  
  8. # Script remis au gout du jour.
  9. #
  10. # Contribution forum.hardware.fr
  11.  
  12.  
  13. if (isset($_POST['send']))
  14. {
  15.  $msg = '';
  16.  
  17.  if(empty($_POST['nom']))
  18.    $msg .= "Veuillez définir votre nom\n";
  19.  
  20.  if(empty($_POST['niouzetitle']))
  21.    $msg .=  "Veuillez définir le titre du commentaire\n";
  22.  
  23.  if(empty($_POST['niouze']))
  24.    $msg .= "veuillez indiquer le contenu du commentaire\n";
  25.  
  26.  if (empty($msg)):
  27.    $niouzedate = date("d/n/Y à H:i" );
  28.    $niouzedate = stripslashes($niouzedate);
  29.    $niouzename = stripslashes ($name);
  30.    $niouzetitle = stripslashes($niouzetitle);
  31.    $niouze = stripslashes($niouze);
  32.    echo " $niouzname. $niouzetitle. : $niouze. , le $niouzedate";
  33.    //traitement de la niouze pour la mettre avec toutes les autres niouzes
  34.    $allniouzes = "allniouzes.txt";
  35.    $write1 = "<br><i>le $niouzedate</i><br><br><center><b>$nom</b><br><br>".
  36.              "<br><b>$niouzetitle</b><br><br><br>$niouze<br><br><br></center><hr color=#00C0FF width=70%>";
  37.    $write1 = stripslashes($write1);
  38.    
  39.    $fp = fopen($allniouzes,"a" ) or die("écriture sur allniouzes.txt échouée." );
  40.    fwrite($fp,$write1);
  41.    fclose($fp);
  42.    //traitement de la niouze pour l'afficher seule sur une page d'accueil, par exemple...
  43.    $derniereniouze = "derniereniouze.txt";
  44.    $write2 = "<br><i>le $niouzedate</i><br><br><center><b>$nom</b><br>".
  45.              "<br><br><b>$niouzetitle</b><br><br><br>$niouze</center>";
  46.    $write2 = stripslashes($write2);
  47.    $fp = fopen($derniereniouze,"w" ) or die("écriture sur derniereniouze.txt échouée" );
  48.    fwrite($fp,$write2);
  49.    fclose($fp);
  50.  
  51.    $msg = "News ajoutée".
  52.  else:
  53.    $msg = '<div class="error"><strong>';
  54.           nl2br($msg).'</strong></div>';
  55.  endif;
  56. }
  57. ?>
  58. <style type="text/css">
  59. <!--
  60. .form span {
  61.  width: 30%;
  62.  font-weight: bold;
  63. }
  64. .error {
  65.  border: 1px solid #F00;
  66.  background: #FAA;
  67.  padding: 10px;
  68.  margin: 10px;
  69. }
  70. -->
  71. </style>
  72. <form name="form1" method="POST" action="projectniouzes.php">
  73. <?php echo $msg; ?>
  74. <div class="form">
  75. <span>Votre Nom :</span> <input type="text" name="nom" maxlenght="40" value="<?php echo $_POST['nom']; ?>"/>
  76. <span>Titre du commentaire :</span> <input type="text" name="niouzetitle" maxlenght="40" value="<?php echo $_POST['niouzetitle']; ?>"/>
  77. <span>Votre commentaire :</span> <textarea name="niouze" rows="4" cols="30" value="<?php echo $_POST['niouze']; ?>"> </textarea>
  78. <br />
  79. <input type="submit" name="send" value="Poster le commentaire" />
  80. <input type="reset" value="annuler" />
  81. </div>
  82. </form>
  83. </body>
  84. </html>
 

C'est un copier coller intégrale de ma page, donc j'ai fait ce que tu m'as conseillé, j'ai changé le . en ; et j'ai changer le "r" en "a" mais rien n'y fait, j'ai une page blanche quand j'ouvre mon lien...

 

S'il te plait, je veux bien encore un petit coup de pouce, j'aimerais vraiment réussir à intégrer ca sur mon site. Merci beaucoup pour ton aide.


Message édité par tom_the_cat le 26-11-2007 à 14:52:48

---------------
Dou bidou bidou bidou...TOUPIDIBOU!
Reply

Marsh Posté le 26-11-2007 à 14:59:41    

dans ton code
- ligne 3 : "<div><title>..." est faux, on mlet juste "<title>BLABLA</title"

 

- ligne 51, pas de point en fin de ligne, mais un point-virgule ;)

 

sinon une fois ces 2 trucs modifiés, ca affiche qqch chez moi :spamafote:


Message édité par SICKofitALL le 26-11-2007 à 14:59:51

---------------
We deserve everything that's coming...
Reply

Marsh Posté le 26-11-2007 à 14:59:41   

Reply

Marsh Posté le 26-11-2007 à 15:11:56    

Yes!!!
 
Tout ca pour un point virgule tout pourri!
 
Je te remercie mille fois! Maintenant au moins j'ai quelque chose qui s'affiche. Par contre ca marche pas l'enregistrement des commentaires. Y a quelque chose qui s'enregistre dans mon fichier .txt c'est a dire ca:
<br><i>le 26/11/2007 à 15:06</i><br><br><center><b></b><br><br><br><b></b><br><br><br><br><br><br></center><hr color=#00C0FF width=70%> Ca veut dire qu'il enregistre la date et l'heure mais le commentaire, le nom et le titre c'est pas encore au point. Je vais encore me pencher sur la question et essayé de trouvé la solution.
 
Si jamais tu la connais je suis preneur, sinon je vais chercher.
 
Merci encore ;)


---------------
Dou bidou bidou bidou...TOUPIDIBOU!
Reply

Marsh Posté le 26-11-2007 à 15:26:16    

oui, regarde de la ligne 29 à 31, remplace ce que tu vois par :

Code :
  1. $niouzename = stripslashes ($_POST['name']);
  2. $niouzetitle = stripslashes ($_POST['niouzetitle']);
  3. $niouze = stripslashes ($_POST['niouze']);


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 26-11-2007 à 15:31:36    

Ok, je vais essayer. Je vois encore deux trucs qui peuvent peut-être être problématiques:
 
En ligne 35-36 et 44-45, est ce que je ne devrais pas remplacer le code existant par ca:
 

Code :
  1. $write1 = "<br><i>le $niouzedate</i><br><br><center><b>$nom</b><br><br><br><b>$niouzetitle</b><br><br><br>$niouze<br><br><br></center><hr color=#00C0FF width=70%>";


 
EDIT: Ok bah ca marche nickel avec ta dernière modification, je ne touche plus à rien. Merci 1000 fois pour ton aide précieuse!


Message édité par tom_the_cat le 26-11-2007 à 15:36:01

---------------
Dou bidou bidou bidou...TOUPIDIBOU!
Reply

Marsh Posté le 26-11-2007 à 15:37:47    

tant mieux :)
 
Si tu compte persévérer, je ne peux que te conseiller de bien décomposer le script plus haut, afin d'en suivre le cheminement logique et de l'améliorer le cas écheant.
Bonne chance :hello:


---------------
We deserve everything that's coming...
Reply

Marsh Posté le 26-11-2007 à 15:43:52    

Super, je te remercie beaucoup, le seul truc que j'aimerais améliorer c'est de pouvoir modifier les commentaires postés directement depuis mon site mais je ne sais pas vraiment si ca va être faisable de modifier un fichier .txt de cette manière.
 
Je me pencherais sur la question plus tard, mais tu as raison, je vais essayer de bien lire le code et bien le comprendre pour l'améliorer.
 
Merci encore, à bientot ;)


---------------
Dou bidou bidou bidou...TOUPIDIBOU!
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed