Site web de Benoit Isaac : Sources - PHP / MySQL - Tribune Libre
isaac Sources - PHP / MySQL - Tribune Libre
 
Menu pour ceux (comme Google !) qui n'ont pas le plug-in Flash :
Accueil - Mon CV - CONTACT
Expériences[Web - Prog - Divers]
Sources[PHP/MySQL - HTML/Flash - Caml/OCaml - C/C++ - Divers]
Annexes[News - Tribune Libre - Liens]
Vous êtes ici : Sources > PHP/MySQL > Tribune Libre

Voici le code-source de la Tribune Libre.


1
<?
2
3
/***************************************************************************
4
 *                               tribune.php                               *
5
 *                            -------------------                          *
6
 *   application   : Tribune Libre <http://benoit.helicos.com>             *
7
 *   author        : Benoit Isaac <tribunelibre@helicos.com>               *
8
 *   version       : 1.01 - 2 Février  2005                                *
9
 ***************************************************************************/
10
         
11
/***************************************************************************
12
 *   Copyright 2005 - Benoit Isaac.                                        *
13
 *   This program is free software; you can redistribute it and/or modify  *
14
 *   it under the terms of the GNU General Public License as published by  *
15
 *   the Free Software Foundation;                                         *
16
 *   See http://www.fsf.org/licenses/gpl.html or http://www.gnu.org        *
17
 ***************************************************************************/
18
19
20
// VOUS DEVEZ CHANGER LES VALEURS DES VARIABLES CI-DESSOUS 
21
// Adresse de votre serveur MySQL
22
$serveur= 'sql.mondomaine.com';
23
// Nom de la base de donnees
24
$base='nom_base';
25
// Nom du compte utilisateur de la base de donnees (BDD)
26
$login='user';
27
// Mot de passe pour acceder a la base de donn&eacute;es
28
$pwd='password';
29
// Nom de la table creee pour enregistrer les messages
30
$table_tribune='table_tribune' ;
31
32
// Nombre de messages a afficher
33
$nb_affiches = 10 ;
34
// Mettre "true" (sans les guillemets !) comme valeur ci-dessous 
35
//si vous souhaitez que le programme conserve l'historique dans la BDD
36
$conserve_historique = false ;
37
38
39
// Si vous rencontrez des problemes, mettez le nom du script appelant la tribune
40
// comme valeur pour $nom_page
41
$nom_page = $HTTP_SERVER_VARS['SCRIPT_NAME'];
42
43
44
// VOUS N'AVEZ RIEN A CHANGER DANS LE CODE QUI SUIT.
45
46
?>
47
48
<FONT FACE="Verdana" size=2>
49
<BR>Voici les <?= $nb_affiches ?> derniers messages post&eacute;s sur la tribune libre...
50
<BR>
51
<FONT SIZE="-2">
52
R&eacute;actualisez cette page (pour voir les nouveaux messages) en tapant sur [Entr&eacute;e].
53
</FONT>
54
<font size=1>
55
<BR><BR>
56
57
<!-- Début de la tribune -->
58
<?
59
// connexion a la base
60
$db=mysql_connect($serveur, $login, $pwd);
61
62
if(!$db){
63
print "Erreur connection $db<br>";
64
exit;
65
}
66
67
if(!mysql_select_db($base,$db)){
68
print "erreur ".mysql_error()."<br>";
69
mysql_close($db);
70
exit;
71
}
72
73
// recuperation des donnees du formulaire
74
$date=date(YmdHis) ;
75
$texte_tribune=$HTTP_POST_VARS["texte_tribune"];
76
$auteur=$HTTP_POST_VARS["auteur_tribune"];
77
if(trim($auteur) == "")
78
$auteur= "Nom";
79
80
// si un texte a ete tape, on l'enregistre
81
if( isset($texte_tribune) && (ltrim($texte_tribune) != "") && $texte_tribune && $texte_tribune != "Texte" )
82
{
83
    $sql="INSERT INTO $table_tribune VALUES('$auteur','$texte_tribune','$date')";
84
    $result=mysql_query($sql,$db);
85
    $invite_texte="";
86
}
87
else
88
{		$invite_texte="Texte"; }
89
90
// Si $conserve_historique = false, on efface les messages anciens
91
if(!$conserve_historique)
92
{
93
  // recuperation de tous les messages
94
  $sql="SELECT * FROM $table_tribune ORDER BY tri_date ";
95
  $result=mysql_query($sql,$db);
96
  $num=0 ;
97
  if($result)
98
  $num=mysql_num_rows($result);
99
  
100
  // on efface les messages trop vieux si $conserve_historique = false
101
  if(($num > $nb_affiches))
102
  {
103
      $efface=mysql_result($result,$num - $nb_affiches -1,"tri_date");
104
      $sql2="DELETE FROM $table_tribune WHERE tri_date <= '$efface' " ;
105
      $result2=mysql_query($sql2,$db);
106
  }
107
}
108
// Affichage des N derniers messages
109
110
// recuperation des N derniers messages
111
$sql="SELECT * FROM $table_tribune ORDER BY tri_date DESC LIMIT $nb_affiches";
112
$result=mysql_query($sql,$db);
113
$num=mysql_numrows($result);
114
$i=$num-1 ;  // pour afficher le message le plus recent tout en bas
115
while($i>=0) 
116
{
117
   $identifiant=htmlspecialchars(mysql_result($result,$i,"tri_auteur"));
118
   $texte=htmlspecialchars(mysql_result($result,$i,"tri_message"));
119
   $d=mysql_result($result,$i,"tri_date");
120
   $date=substr($d,6,2)."-".substr($d,4,2)." &agrave; ".substr($d,8,2).":".substr($d,10,2);
121
   $date.=":".substr($d,12,2) ;
122
	 // on rend cliquables les URLs de type http ftp mailto callto
123
	$texte=eregi_replace("((http)
124
(mailto)
125
(callto)
126
(ftp)]+)://([^([:space:]'*<>
127
)>]*)",
128
"<A HREF=\"0\" TARGET=\"_blank\">0</A>",$texte);
129
   echo "[".$date."]"." <b>".$identifiant."</b> : ".$texte."<BR> \n";
130
  $i--;
131
}
132
133
// Liberation des resultats
134
mysql_free_result($result);
135
// Fermeture de la connexion
136
mysql_close($db);
137
138
echo "</font>";
139
// Affichage du formulaire
140
echo "<FORM ACTION=\"".$nom_page."\" METHOD=\"POST\" NAME=\"tribune\">";
141
echo "<INPUT style=\"FONT-FAMILY: verdana,arial,helvetica; FONT-SIZE: 10pt; \" 
142
TYPE=\"text\" NAME=\"auteur_tribune\" MAXLENGTH=\"30\" SIZE=\"15\" VALUE=\"$auteur\"> \n ";
143
echo "<INPUT style=\"FONT-FAMILY: verdana,arial,helvetica; FONT-SIZE: 10pt;  \" 
144
TYPE=\"text\" NAME=\"texte_tribune\" MAXLENGTH=\"300\" SIZE=\"40\" VALUE=\"$invite_texte\"> \n ";
145
echo "&nbsp; <INPUT style=\"FONT-FAMILY: verdana,arial,helvetica; FONT-SIZE: 8pt; \" 
146
TYPE=\"submit\" VALUE=\"Envoyer [entr&eacute;e]\">";
147
echo "</FORM>";
148
149
150
?>
151
<!-- Fin de la tribune - MERCI DE LAISSER LE MESSAGE DE COPYRIGHT -->
152
<div align="center"><FONT SIZE="1">
153
Code PHP de la tribune : <A HREF="http://benoit.helicos.com">Benoit Isaac</A><BR>
154
  </font></div>
155
<br>
156
157


Vous pouvez cliquer ici pour télécharger ce source.


   
http://benoit.helicos.com - site web de benoit isaac - © 1999-2007. All rights reserved.