Comment faire une fortune sur un site ? | résolu (code complet)

Comment faire une fortune sur un site ? | résolu (code complet) - PHP - Programmation

Marsh Posté le 26-05-2003 à 21:52:00    

Bon bin ça avance ce petit script.
Pour le moment, l'idée principale a été mise en place.
 
------
 
- Créer un répertoire fortune
- à la racine de celui-ci, on va trouver
index.php => la page principale avec le formulaire pour envoyer la fortune vers fortune.txt
ok.html => la page pour dire que la fortune a été envoyée, blabla, etc
fortune.txt => le fichier texte qui contiendra les fortunes
 
Source de index.php
 

Code :
  1. <html>
  2.     <head>
  3.         <title>Ajout d'une fortune</title>
  4.     </head>
  5.     <body>
  6. blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla
  7. <br>
  8. <?php
  9.       if(!isset($_POST["texte"]))
  10.       {
  11.  echo "<form method=\"post\" action=\"$PHP_SELF\">
  12.  <textarea name=\"texte\" rows=\"4\" cols=\"50\">Tapez la fortune ici.</textarea>
  13.  <input type=\"submit\" value=\"Poster\">
  14.  </form>";
  15.       }
  16.       else
  17.       {
  18.  $texte=stripslashes($_POST["texte"]);
  19.  $pointeur=fopen("fortune.txt","a" );
  20.  fwrite($pointeur, $texte);
  21.  fwrite($pointeur, "\n%\n" );
  22.  fclose($pointeur);
  23.  echo "<script language=\"javascript\">";
  24.  echo "window.location.href='ok.html'";
  25.      echo "</script>";
  26.       }
  27. ?>
  28. <br>
  29. blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla
  30. </body>
  31. </html>


 
Source de ok.html

Code :
  1. <html>
  2. <head>
  3. <title>Merci !</title>
  4. </head>
  5. <body>
  6. Merci !
  7. blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla blabla
  8. <br>
  9. </body>
  10. </html>


 
 
 
Source de fortune.txt
Ce que vous avez posté :)
 
 
Si j'ai le courage et l'envie, on pourrait faire ce genre de chose pour améliorer le script.
 
 
TODO
- une limite en nombre de ko à envoyer (pour éviter les 40 lignes)
- un nombre de "Poster" limiter par IP (afin d'éviter les floods)
 
 
Voila.


Message édité par vanilla le 11-06-2003 à 22:24:45

---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
Reply

Marsh Posté le 26-05-2003 à 21:52:00   

Reply

Marsh Posté le 27-05-2003 à 09:55:27    

c quoi une fortune?  :??:

Reply

Marsh Posté le 27-05-2003 à 10:46:18    

www.php.net [:arf]
 
faut lire les exemples aussi

Reply

Marsh Posté le 27-05-2003 à 19:02:05    

Donc en gros c'est DMC [:dawa]  
 
J'ai auncune notion de PHP :/


---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
Reply

Marsh Posté le 27-05-2003 à 19:18:46    

et bien profites en pour apprendre! :o
ya bcp d'exemples sur php.net donc spa trop difficile [:dawa]

Reply

Marsh Posté le 27-05-2003 à 19:20:58    

mais j'ai pas trop le temps  :(  
 
tanpis  [:le kneu]


---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
Reply

Marsh Posté le 27-05-2003 à 19:27:17    

bon, un bout de ca devrait te servir :o
 

Code :
  1. chdir( "./content/news/" );
  2. $fp = file("news.txt" );
  3. $top = count($fp);
  4. $fields = split("\t",$fp[$k]);
  5. for ($k=$top; $k >= 0 ; $k--) { echo "${fields[$k]}<br>";
  6.   }

 
comme ca à l'arrache
ca spour lire, après pour écrire  
 
 

Code :
  1. $fp = fopen( $fpi, "a" );
  2.  $out = "ce que tu veux";
  3.  fwrite( $fp, $out );
  4.  fclose( $fp );

 
 
voilà, c'est vite fait mais en tatonant, tu devrais y arriver


Message édité par Profil supprimé le 27-05-2003 à 19:28:19
Reply

Marsh Posté le 27-05-2003 à 19:36:38    

Merci..  :jap:  
 
Je dois intégrer ça dans  
 
<html>
    <head>
        <title>test</title>
    </head>
    <body>
 
<?php
   chdir( "./content/news/" );
   $fp = file("news.txt" );
   $top = count($fp);
  $fields = split("\t",$fp[$k]);
   for ($k=$top; $k >= 0 ; $k--) { echo "${fields[$k]}<br>";
     }
?>
 
    </body>
</html>


Message édité par vanilla le 27-05-2003 à 19:40:54

---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
Reply

Marsh Posté le 27-05-2003 à 19:44:14    

  chdir( "./content/news/" );
 
Pourquoi ya un point devant le / ? C'est obligatoire ?


---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
Reply

Marsh Posté le 27-05-2003 à 19:44:45    

Mr yvele a écrit :

c quoi une fortune?  :??:  


 
Ta question et ma réponse. :D

Reply

Marsh Posté le 27-05-2003 à 19:44:45   

Reply

Marsh Posté le 27-05-2003 à 19:46:04    

vanilla a écrit :

  chdir( "./content/news/" );
 
Pourquoi ya un point devant le / ? C'est obligatoire ?
 

je changeais de répertoire avant pour prendre un autre fichier ;)


Message édité par Profil supprimé le 27-05-2003 à 19:46:11
Reply

Marsh Posté le 27-05-2003 à 19:49:24    


Warning: fopen("", "fortune.txt" ) - Inappropriate ioctl for device in write.php on line 8
 
Warning: fwrite(): supplied argument is not a valid File-Handle resource in write.php on line 10
 
Warning: fclose(): supplied argument is not a valid File-Handle resource in write.php on line 11
 
 
Ouais bon j'abandonne..


---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
Reply

Marsh Posté le 27-05-2003 à 20:01:08    

t'as créé tous les répertoires indiqués dans le script ?

Reply

Marsh Posté le 27-05-2003 à 20:16:03    

Non mais déjà faudrait que ce soit plus clair.
Déjà je pense qu'il faudrait faire un truc comme ça
 
- Créer un répertoire fortune
- à la racine de celui-ci :
add.php
fortune.txt
 
 
c'est bon jusque là ?
 
donc pour la source de add.php
 

Code :
  1. <html>
  2.    <head>
  3.        <title>FORTUNE - ajouter une fortune</title>
  4.    </head>
  5.    <body>
  6. $fp = fopen( $fpi, "a" );
  7. $out = "ce que tu veux";
  8. fwrite( $fp, $out ); 
  9. fclose( $fp );
  10.    </body>
  11. </html>

 
 
que désigne "a" ? "ce que tu veux" => à remplacer par fortune.txt ?
 
 
 
 
 
TODO
- il faut qu'a chaque fois qu'on envoie une fortune, quelle se place à la suite de la dernière... en ajoutant un espace ou un caractère (genre %) pour séparer les fortunes.
- une limite en nombre de ko envoyer
- un nombre de "Poster" limiter par IP (afin d'éviter les floods)
 
PS
pour visualiser on va directement dans fortune/fortune.txt


Message édité par vanilla le 27-05-2003 à 20:20:06

---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
Reply

Marsh Posté le 27-05-2003 à 20:30:32    

pour qqn qui n'a aucune notion en PHP tu te débrouilles plutôt bien ;)
 
Créer un rép fortune, bon début, et le script en lui-même est à peu près correct.
 
Pour ajouter sa fortune, tu ne peux le faire qu'avec un formulaire ! C'est là que ça commence à devenir plus complexe...
 
Vaudrait mieux que tu crées alors une page addfortune.php par exemple, qui reprend le code suivant
 

Code :
  1. <?php
  2. if(!isset($_POST["texte"]))
  3. {
  4. // affichage du formulaire
  5. echo "<form method=\"post\" action=\"$PHP_SELF\">
  6. <input type=\"text\" name=\"texte\">
  7. <input type=\"submit\" value=\"Poster la fortune\">
  8. </form>";
  9. }
  10. else
  11. {
  12. $texte=$_POST["texte"];
  13. $pointeur=fopen("fortune.txt","w" );
  14. fwrite($pointeur, $texte);
  15. fclose($pointeur);
  16. }
  17. ?>


 
 
 
Voilà, c'est le schéma, mais j'me suis ptetre planté :d

Reply

Marsh Posté le 27-05-2003 à 20:33:21    

le 'a'de fopen - Ouvre en écriture seule; place le pointeur de fichier à la fin du fichier file. Si le fichier n'existe pas, on tente de le créer.  
 

Reply

Marsh Posté le 27-05-2003 à 20:35:00    

Oui, j'avais meme pensé à prendre un livre d'or.
 
Merci pour ton aide, je vais voir ce que je peux faire avec ça  ;)


---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
Reply

Marsh Posté le 27-05-2003 à 20:36:04    

Reply

Marsh Posté le 27-05-2003 à 20:39:06    

ça y est ça a marché !  :love:  
 
Faut maintenant améliorer un peu mais dans l'idée c'est exactement ce que je voulais..
 
add.php => on ajoute sa fortune => on poste => ça écrit sur fortune.txt.


---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
Reply

Marsh Posté le 27-05-2003 à 20:47:14    

Tiens, chez moi ça marche pas ! :o

Reply

Marsh Posté le 27-05-2003 à 21:56:51    


problème :
- du cadre (trop petit)
- du fait qu'a chaque fois qu'on poste, le fichier est remis à zéro (en gros ya tjs qu'une fortune sur fortune.txt)
- une fois qu'on a posté, il faudrait renvoyer vers une page !
 
comment faire tout ça ? :/


Message édité par vanilla le 27-05-2003 à 22:05:08

---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
Reply

Marsh Posté le 27-05-2003 à 22:18:30    

dans ton fopen, tu as bien mis 'a' pour ouvrir le fichier en ecriture et se positionner a la fin du fichier?

Reply

Marsh Posté le 27-05-2003 à 22:25:43    

$pointeur=fopen("fortune.txt","a" );
 
 'a' - Ouvre en écriture seule; place le pointeur de fichier à la fin du fichier file. Si le fichier n'existe pas, on tente de le créer.
 
ça n'écrit plus aussi...
 
faudrait pas mettre r+ ?
 
#  'r' - Ouvre en lecture seule, et place le pointeur de fichier au début du fichier.
# 'r+' - Ouvre en lecture et écriture, et place le pointeur de fichier au début du fichier.
# 'w' - Ouvre en écriture seule; place le pointeur de fichier au début du fichier et réduit la taille du fichier à 0. Si le fichier n'existe pas, on tente de le créer.
# 'w+' - Ouvre en lecture et écriture; place le pointeur de fichier au début du fichier et réduit la taille du fichier à 0. Si le fichier n'existe pas, on tente de le créer.
# 'a' - Ouvre en écriture seule; place le pointeur de fichier à la fin du fichier file. Si le fichier n'existe pas, on tente de le créer.
# 'a+' - Ouvre en lecture et écriture; place le pointeur de fichier à la fin du fichier. Si le fichier n'existe pas, on tente de le créer.


Message édité par vanilla le 27-05-2003 à 22:29:41

---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
Reply

Marsh Posté le 27-05-2003 à 22:41:23    

Bon avec a ça marche sauf que tout est écrit à la suite...
et puis à chaque ' ya un \ ...


Message édité par vanilla le 27-05-2003 à 22:42:46

---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
Reply

Marsh Posté le 27-05-2003 à 23:14:03    

Citation :

sujet: Comment faire fortune sur un site ?

 
 
en faisant un site de boule [:spamafote]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 28-05-2003 à 00:42:51    

vanilla a écrit :

Bon avec a ça marche sauf que tout est écrit à la suite...
et puis à chaque ' ya un \ ...


 
www.php.net/stripslashes

Reply

Marsh Posté le 28-05-2003 à 10:23:40    

cmotsch a écrit :


Ta question et ma réponse. :D


 
Quelle reponse? quoi? hein? qui? ou? comment? quesque l'univers?
 :??:  :??:  :??:  lol
 
(Heu si j'ai bien compris, une fortune c'est une sorte de livre d'or.. enfin les visiteurs peuvent poster des trucs a la suite.. bref bon..)

Reply

Marsh Posté le 28-05-2003 à 11:57:39    

[:rofl]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 28-05-2003 à 12:18:45    

Mr yvele a écrit :


(Heu si j'ai bien compris, une fortune c'est une sorte de livre d'or.. enfin les visiteurs peuvent poster des trucs a la suite.. bref bon..)


tu viens d'en pondre une deuxieme... félicitations :jap:

Reply

Marsh Posté le 28-05-2003 à 13:55:49    

[:yaisse2v]

Reply

Marsh Posté le 28-05-2003 à 14:03:23    


 
Bin ouais mais je mets cette fonction où ?  :??:
 
 

Code :
  1. <?php
  2.    
  3.     if(!isset($_POST["texte"]))
  4.     {
  5.        
  6.         echo "<form method=\"post\" action=\"$PHP_SELF\">
  7.        
  8.         <input type=\"text\" name=\"texte\">
  9.        
  10.         <input type=\"submit\" value=\"Poster la fortune\">
  11.        
  12.         </form>";
  13.        
  14.     }
  15.     else
  16.     {
  17.         $texte=$_POST["texte"];
  18.        
  19.         $pointeur=fopen("fortune.txt","a" );
  20.        
  21.         fwrite($pointeur, $texte);
  22.        
  23.         fclose($pointeur);
  24.        
  25.     }
  26.    
  27. ?>


Message édité par vanilla le 28-05-2003 à 14:03:46

---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
Reply

Marsh Posté le 28-05-2003 à 15:40:40    

J'arrive même pas à obtenir une zone de texte et non un champ de texte dans le script PHP
 
au lieu de ça :


<input type=\"text\" name=\"texte\">


(qui est en fait en HTML :

<imput type="text" name="texte">

)
 
 
il me faudrait ça


<TEXTAREA NAME=Message rows=5 cols=30></textarea>


Mais comment le traduire en langage PHP ?


Message édité par vanilla le 28-05-2003 à 15:41:23

---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
Reply

Marsh Posté le 28-05-2003 à 17:28:41    

vanilla a écrit :

J'arrive même pas à obtenir une zone de texte et non un champ de texte dans le script PHP
 
au lieu de ça :


<input type=\"text\" name=\"texte\">


(qui est en fait en HTML :

<imput type="text" name="texte">

)
 
 
il me faudrait ça


<TEXTAREA NAME=Message rows=5 cols=30></textarea>


Mais comment le traduire en langage PHP ?


 
je t'arrête, c'est du HTML dont tu as besoin... PHP est un langage de programmation serveur, qui ne rentre pas du tout en compte pour l'affichage d'une page web
 
Donc tu peux y aller, remplace directos le input par le textarea dans le echo du code PHP et... voilà !
 
ps : c'est mieux d'écrire

Code :
  1. <textarea name="texte" rows="2" cols="30">Tapez votre texte ici !</textarea>


 
à la place de :

Code :
  1. <TEXTAREA NAME=Message rows=5 cols=30></textarea>


Message édité par HORNY-Grandcornu le 28-05-2003 à 17:29:18
Reply

Marsh Posté le 28-05-2003 à 19:44:27    

Parse error: parse error, unexpected T_STRING, expecting ',' or ';' in index.php on line 43
 
Et la ligne 43 c'est le fameux <textarea (...)
 
 


        echo "<form method=\"post\" action=\"$PHP_SELF\">
         
        <textarea name="texte" rows="2" cols="30">Tapes donc ta fortune ici !</textarea>
         
        <input type=\"submit\" value=\"Poster la fortune\">
         
        </form>";

 
 
Où est l'erreur ?
 
 
C'est pas que je dois le mettre à l'extérieur du code PHP par hasard  :heink:


Message édité par vanilla le 28-05-2003 à 19:45:31

---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
Reply

Marsh Posté le 02-06-2003 à 20:37:49    

:bounce:  [:le kneu]


---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
Reply

Marsh Posté le 02-06-2003 à 20:38:33    

\" :cry:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 02-06-2003 à 20:43:31    

ah ben oui ;)
 
ps : zen -- :p


Message édité par HORNY-Grandcornu le 02-06-2003 à 20:44:47
Reply

Marsh Posté le 02-06-2003 à 22:15:42    

Merci  :jap:  
 
Bon il me faudrait deux choses essentielles :
 
- une fois qu'on a posté, renvoyer vers une page disant que la fortune a bien été posté.
 
- à chaque ajout de fortune, qu'on est le caractère % s'intercalant comme ceci en fait ;
 
<blabla> blabla blabla ?
<blabla> blabla blabla !
<blabla> blabla blabla
%
<blabla> blabla blabla :-)
<blabla> blabla blabla !
%
<blabla> blabla blabla
<blabla> blabla blabla
<blabla> blabla blabla :-(
 
 
Seulement comment faire ? pour le revoie vers une page ça doit pas etre bien dur mais pour l'autre ?


---------------
Membre du Front de Libération de Datoune | Soutenez le FLD | A Tribute To Datoune
Reply

Marsh Posté le 02-06-2003 à 22:19:50    

<?php
   
  if(!isset($_POST["texte"]))
  {
     
    echo "<form method=\"post\" action=\"$PHP_SELF\">
     
    <input type=\"text\" name=\"texte\">
     
    <input type=\"submit\" value=\"Poster la fortune\">
     
    </form>";
     
  }
  else
  {
    $texte=$_POST["texte"];
     
    $pointeur=fopen("fortune.txt","a" );
     
    fwrite($pointeur, $texte);
 
    fwrite($pointeur, "%" );
     
    fclose($pointeur);
 
    echo "Votre fortune a bien été postée, merci blablabla";
     
  }
   
  ?>
    </body>
</html>


Message édité par HORNY-Grandcornu le 02-06-2003 à 22:20:25
Reply

Marsh Posté le 02-06-2003 à 22:20:58    

je reve ou vous lui avez fait son truc et il a rien branlé là?  :heink:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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