begin process at 2008 07 20 02:53:35
1 213 103 membres
26 nouveaux aujourd'hui
14 166 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

LIVRE D'OR


Information sur la source

Catégorie :Formulaires Classé sous : livre, or, code, php, mysql Niveau : Débutant Date de création : 22/06/2007 Date de mise à jour : 25/06/2007 22:16:49 Vu / téléchargé: 8 154 / 9 301

Note :
4,67 / 10 - par 3 personnes
4,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

Description

Mon script est donc un livre d'or, tres simple à modifier, à completer.
Vous pouvez le mettre sur votre site, il vous suffit de creer une table livreor dans votre base.

Ainsi vous aller pouvoir receuillir les reactions de vos visiteur.

Source

  • ////////////////////////////////////
  • /////Voici la source en PHP////////
  • //////////////////////////////////
  • <! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  • "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  • <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
  • <head >
  • <link href="style.css" rel="stylesheet" type="text/css">
  • <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
  • <title> Livre d'or </title>
  • </head>
  • <body>
  • <p class="en_tete">
  • <IMG src="Livreor.jpg" alt="Livre d'or" align="bottom"><br /><br />
  • BIENVENU SUR MON LIVRE D'OR
  • </p>
  • <br />
  • <!--Formulaire -->
  • <form action="livreor.php" method="post">
  • <p>
  • <label for="pseudo">Pseudo: </label>
  • <input type="text" name="pseudo" size="20" maxlength="40"
  • <?php if (isset($_POST['pseudo']))
  • { echo 'value="' . $_POST['pseudo'] . '"/>'; }
  • ?>
  • </p>
  • <br /><br />
  • <p>
  • <label for="message">Votre message :</label><br />
  • <textarea name="message" id="message" rows="8" cols="45"></textarea>
  • </p>
  • <br />
  • <p>
  • <input type="submit" value="Envoyer" class="bouton"/>
  • </p>
  • <!--Fin du formulaire -->
  • </form>
  • </p>
  • <br />
  • <?php
  • //Connection a la bdd
  • include("connection.php");
  • //Ici on effectue plusieur test consécutifs sur les informations envoyer par le visiteur via le formulaire
  • //Test que le pseudo ne soit pas nul sioui message d'erreur
  • //Test que le message ne soit pas nul sioui message d'erreur
  • //Test de double postage si oui mesage d'erreur
  • //Enregistrement dans la bdd
  • if ( isset($_POST['pseudo']) AND isset($_POST['message']))
  • {
  • if ($_POST['pseudo']==NULL)
  • {
  • echo '<p class="message_erreur">Veuillez entrer un pseudo</p>';
  • }
  • else{ if ($_POST['message']==NULL)
  • {
  • echo '<p class="message_erreur">Veuillez entrer un message</p>';
  • }
  • else{
  • //Recuperation du dernier message enregistrer dans la table
  • $donnees=mysql_fetch_assoc(mysql_query("SELECT pseudo,message FROM livreor ORDER BY ID DESC LIMIT 0,1"));
  • if ($_POST['message']==$donnees['message'] AND $_POST['pseudo']==$donnees['pseudo'])
  • {
  • echo '<p class="message_erreur">Double post interdit</p>';
  • }
  • else{
  • $message=mysql_real_escape_string(htmlspecialchars(stripslashes($_POST['message'])));
  • $pseudo=mysql_real_escape_string($_POST['pseudo']);
  • mysql_query("INSERT INTO livreor VALUES('','$pseudo','$message')");
  • }
  • }
  • }
  • }
  • //fermeture de la bdd
  • mysql_close();
  • ?>
  • <br />
  • <?php
  • //connection à la bdd
  • include("connection.php");
  • //On recupere les 15 dernier message postés
  • $reponse=mysql_query("SELECT pseudo,message FROM livreor ORDER BY ID DESC LIMIT 0,15");
  • //on les place dans un array et on effectu grâce aux regaex un remplacement pour le bbcode
  • while($donnees=mysql_fetch_assoc($reponse))
  • {
  • $texte=preg_replace('!\[b\](.+)\[/b\]!isU','<strong>$1</strong>',$donnees['message']);
  • $texte=preg_replace('!\[i\](.+)\[/i\]!isU','<em>$1</em>',$texte);
  • $texte=preg_replace('!\[u\](.+)\[/u\]!isU','<u>$1</u>',$texte);
  • $texte=preg_replace('!\[color=(red|green|blue|yellow)\](.+)\[/color\]!isU','<span style="color:$1">$2</span>', $texte);
  • $texte=preg_replace('!http://[a-z0-9._/-]+!i', '<a href="$0">$0</a>', $texte);
  • $texte=nl2br($texte);
  • //Puis une fois que c'est fait on affiche les message
  • ?>
  • <label for="pseudo"><? echo ''.$donnees['pseudo'].' : '; ?></label>
  • <?
  • echo ' '.$texte.'<hr>';
  • }
  • //fermeture de la connection
  • mysql_close();
  • ?>
  • <br />
  • <p class="lengende">
  • <!--Voici la "légende pour pouvoir utiliser le bbcode-->
  • Pour le bbcode voici le conditions:<br>
  • [b]texte[/b] ==> votre texte sera en <b>gras</b><br>
  • [i]texte[/i] ==> votre texte sera en <em>italique</em><br>
  • [u]texte[/u] ==> votre texte sera <u>souligne</u><br>
  • [color=couleur]texte[/color] ==> votre texte sera de la couleur indiquee, vous avez le choix entre :<br />
  • red // green // blue // yellow
  • </p>
  • <br><br><br><br>
  • </body>
  • </html>
  • ////////////////////////////////
  • /////Voici la source CSS////////
  • ////////////////////////////////
  • .en_tete
  • {
  • text-align:center;
  • color:#9565F8;
  • font-weight:bold;
  • font-family:Bradley Hand ITC Tempus Sans ITC Time New Roman;
  • font-size:20pt;
  • }
  • p
  • {
  • font-family:"Bradley Hand ITC" "Tempus Sans ITC" "Time New Roman" Arial;
  • font-size:12pt;
  • }
  • form
  • {
  • background-color:#6FBFE6;
  • padding: 10px ;
  • font-weight:bold;
  • border-style:solid outset;
  • border-width:1px;
  • border-color:#6699FF;
  • width:350px;
  • }
  • textarea
  • {
  • background-color:#D5C180;
  • font-family:"Bradley Hand ITC" "Tempus Sans ITC" "Time New Roman" Arial;
  • color:white;
  • border:1px;
  • }
  • label
  • {
  • font-family:"Bradley Hand ITC" "Tempus Sans ITC" "Time New Roman" Arial;
  • font-weight:bold;
  • }
  • input
  • {
  • font-family:"Bradley Hand ITC" "Tempus Sans ITC" "Time New Roman" Arial;
  • background-color:#D5C180;
  • color:green;
  • border:1px;
  • }
  • .message_erreur
  • {
  • font-family:"Bradley Hand ITC" "Tempus Sans ITC" "Time New Roman" Arial;
  • font-size:22pt;
  • color:red;
  • }
  • body
  • {
  • text-align="center";
  • background-color=#C5FA76;
  • }
  • .lengende
  • {
  • text-align:left;
  • }
////////////////////////////////////
/////Voici la source en PHP////////
//////////////////////////////////

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
	
	<head >
		<link href="style.css" rel="stylesheet" type="text/css">
		<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
		<title> Livre d'or </title>
	</head>
	
<body>
		<p class="en_tete">
			<IMG src="Livreor.jpg" alt="Livre d'or" align="bottom"><br /><br />
			BIENVENU SUR MON LIVRE D'OR
			</p>
		<br />
		
		<!--Formulaire -->
		<form action="livreor.php" method="post">
			
			<p>
			<label for="pseudo">Pseudo: </label> 
			<input type="text" name="pseudo" size="20" maxlength="40"
			<?php if (isset($_POST['pseudo'])) 
				{	echo 'value="' . $_POST['pseudo'] . '"/>'; }
			?> 
			</p>
			
			<br /><br />
			
			<p>
			<label for="message">Votre message :</label><br />
			<textarea name="message" id="message" rows="8" cols="45"></textarea>
			</p>
			
			<br />
			
			<p>
			<input type="submit" value="Envoyer" class="bouton"/>
			</p>
			
			<!--Fin du formulaire -->
		</form>
		</p>
		<br />
		<?php
			//Connection a la bdd 
			include("connection.php");
			//Ici on effectue plusieur test consécutifs sur les informations envoyer par le visiteur via le formulaire
			//Test que le pseudo ne soit pas nul sioui message d'erreur
			//Test que le message ne soit pas nul sioui message d'erreur
			//Test de double postage si oui mesage d'erreur
			//Enregistrement dans la bdd
			
			if ( isset($_POST['pseudo']) AND isset($_POST['message']))
				{
				if ($_POST['pseudo']==NULL)
					{
						echo '<p class="message_erreur">Veuillez entrer un pseudo</p>';
					}
					else{	if ($_POST['message']==NULL)
								{
									echo '<p class="message_erreur">Veuillez entrer un message</p>';
								}
								else{
										//Recuperation du dernier message enregistrer dans la table
										$donnees=mysql_fetch_assoc(mysql_query("SELECT pseudo,message FROM livreor ORDER BY ID DESC LIMIT 0,1"));
										if ($_POST['message']==$donnees['message'] AND $_POST['pseudo']==$donnees['pseudo'])
											{
												echo '<p class="message_erreur">Double post interdit</p>';
											}		
											else{
													$message=mysql_real_escape_string(htmlspecialchars(stripslashes($_POST['message'])));
													$pseudo=mysql_real_escape_string($_POST['pseudo']);
													
													mysql_query("INSERT INTO livreor VALUES('','$pseudo','$message')");
					
												}
									}
						}
				}
			//fermeture de la bdd
			mysql_close();	
		?>
		
		<br />
		
		<?php
			//connection à la bdd
			include("connection.php");
			
			//On recupere les 15 dernier message postés
			$reponse=mysql_query("SELECT pseudo,message FROM livreor ORDER BY ID DESC LIMIT 0,15");
			
			//on les place dans un array et on effectu grâce aux regaex un remplacement pour le bbcode
			while($donnees=mysql_fetch_assoc($reponse))
				{
					$texte=preg_replace('!\[b\](.+)\[/b\]!isU','<strong>$1</strong>',$donnees['message']);
					$texte=preg_replace('!\[i\](.+)\[/i\]!isU','<em>$1</em>',$texte);
					$texte=preg_replace('!\[u\](.+)\[/u\]!isU','<u>$1</u>',$texte);
					$texte=preg_replace('!\[color=(red|green|blue|yellow)\](.+)\[/color\]!isU','<span style="color:$1">$2</span>', $texte);
					$texte=preg_replace('!http://[a-z0-9._/-]+!i', '<a href="$0">$0</a>', $texte);
					$texte=nl2br($texte);
				//Puis une fois que c'est fait on affiche les message
				?>
				<label for="pseudo"><? echo ''.$donnees['pseudo'].' :  '; ?></label> 
				<?
					echo '   '.$texte.'<hr>';
				}
			//fermeture de la connection
			mysql_close();
		?>
		<br />
		<p class="lengende">	
		<!--Voici la "légende pour pouvoir utiliser le bbcode-->
		Pour le bbcode voici le conditions:<br>
		[b]texte[/b] ==> votre texte sera en <b>gras</b><br>
		[i]texte[/i] ==> votre texte sera en <em>italique</em><br>
		[u]texte[/u] ==> votre texte sera <u>souligne</u><br>
		[color=couleur]texte[/color] ==> votre texte sera de la couleur indiquee, vous avez le choix entre :<br />
		red // green // blue // yellow 
		</p>
		<br><br><br><br>
</body>
</html>

////////////////////////////////
/////Voici la source CSS////////
////////////////////////////////


.en_tete
{
text-align:center;
color:#9565F8;
font-weight:bold;
font-family:Bradley Hand ITC Tempus Sans ITC Time New Roman;
font-size:20pt;
}

p
{
font-family:"Bradley Hand ITC" "Tempus Sans ITC" "Time New Roman" Arial;
font-size:12pt;
}

form
{
background-color:#6FBFE6;
padding: 10px ;
font-weight:bold; 
border-style:solid outset;
border-width:1px;
border-color:#6699FF;
width:350px;

}

textarea
{
background-color:#D5C180;
font-family:"Bradley Hand ITC" "Tempus Sans ITC" "Time New Roman" Arial;
color:white;
border:1px;
}


label
{
font-family:"Bradley Hand ITC" "Tempus Sans ITC" "Time New Roman" Arial;
font-weight:bold;
}

input
{
font-family:"Bradley Hand ITC" "Tempus Sans ITC" "Time New Roman" Arial;
background-color:#D5C180;
color:green;
border:1px;
}

.message_erreur
{
font-family:"Bradley Hand ITC" "Tempus Sans ITC" "Time New Roman" Arial;
font-size:22pt;
color:red;
}

body
{
text-align="center";
background-color=#C5FA76;
}

.lengende
{
text-align:left;
}

Conclusion

Desolé pour les fautes d'orthographe, je ne suis pas tres fort dans ce domaine.
sinon et bien j'aimerais avoir quelque commentaire, et pourquoi pas des idées d'amelioration.

Ceci est ce que je pourrait appelè la version corriger selon vos commentaire (plus ou moins)
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

25 juin 2007 22:04:12 :
Correction de bug, suppression de variable inutiles, securisation , mise en place d'une feuille de style CSS
25 juin 2007 22:16:49 :
modification du code php Amélioration du code html Utilisation du CSS Tous ça en me reposant sur vos conseil et mes recherche
  • signaler à un administrateur
    Commentaire de webdeb le 22/06/2007 23:01:26

    Ton script est l'exemple de tout ce qu'il ne faut pas faire :

    1/ Remplacer <? par <?php
    2/ SELECT * fortement déconseillé pour des raisons d'optimisation et de maintenance
    3/ mysql_real_escape_string() à la place de htmlentities() avant envoi en bdd
    4/ nl2br() doit se faire en sortie
    5/ protéger les données avec htmlspecialchars() en sortie
    6/ Les variables intermédiaires inutiles
    7/ mysql_fetch_array() à remplacer par mysql_fetch_assoc()
    8/ Le code html laisse fortement à désirer

    Bref, ca sent le script issu du siteduzero. Je t'invite à le modifier car là ton code ne vaut rien.

  • signaler à un administrateur
    Commentaire de Optitech le 23/06/2007 12:38:56

    Bonjour :)

    La première chose que j'ai vu ne connserné pas la PHP mais le HTML ! Je pense et même je suis sûr qu'une petite révision des Tableau en HTMl serai utile :)

    Exemple d'un tableau en HTML :

    <table>
    <tr><!-- On débute une nouvelle ligne -->
    <td>Ligne 1 Colonne 1</td><td>Ligne 1 Colonne 2</td>
    </tr><!-- Ici on fini la ligne -->

    <tr><!-- On débute une nouvelle ligne -->
    <td>Ligne 2 Colonne 1</td><td>Ligne 1 Colonne 2</td>
    </tr><!-- Ici on fini la ligne -->
    </table>
    A autre chose sur le HTML : Je n'ai jamais vu un commentaire en plein mieux d'un tag ! C'es original d'avoir un tag dans un tag je n'ai jamais vu cela : <tag <tag 2> 1>

    Ha on dirait que tu fait du xHTMl (cf <br />) alors au lieu d'utiliser la balise <center> utilise une div <divi align="center"> sinon si tu fait du HTML simple met <br> !


    A je viens de remarqué quelque chose de bizarre, tu met une balise img au début de ton code dans ton head ?!? Pour moi le head c'est pour mettre des script (JS, ...) ou du CSS !

    Maintenant j'ai quelque petit truc pour le PHP.

    J'ai remarqué que tu ouvre et que tu ferme sans arrêt ra connexion à ta base de donnée ; la pauvre elle va souffrir :'(  Pour évité cela je te conseil de mettre ton include pour ta connexion au tout début du fichier et ton mysql_close(); à la toute fin ! Comme cela ta connexion reste ouverte tout le temps, aussi tu gagnera du temps d'exécution de ton script ! Ok a ce niveau ce ne se verra pas mais dans de gros script on moura la voir :)

    Pour les test je trouve que imbriqué de if les un dans les autre ce n'est pas pratique à lire :) Même si parfois on est obligé de le faire, mais ici tu peu  faire autrement ! Tient un petit exemple avec ton code :

    if($_POST["pseudo"]==NULL){
    echo "<h3>Veuillez entrer un pseudo</h3>";
    }elseif($_POST["message"]==NULL){
    [...]
    }elseif( ($_POST["pseudo"]==$pseu) AND ($_POST["message"]==$mess) ){
    [...]
    }else{

    }

    Bon voilà je pense que j'ai tout dit, Ha si une idée pour amélioré ton script : Faire le test du formulaire en JavaScript :) Et tout les problèmes d'un coup :)

  • signaler à un administrateur
    Commentaire de Individu le 23/06/2007 21:02:32

    Je vous remercie pour vos critiques, et je suis en ce moment meme en train de modifier mon script je pense poster la version corriger et ameliorer notament avec l'utilistaion de CSS, et les correction relative a vos observations dans le code php, ce soir.

    Encore Merci.

  • signaler à un administrateur
    Commentaire de Optitech le 23/06/2007 23:18:51

    De rien CodeS-SourceS ca sert à ca ! S'entaider pour s'améliorer :)

    Ha je veins d'avoir une idée en plus baisse le niveau de ta source, met la en débutant car Initié c'est un peu génreux :)

  • signaler à un administrateur
    Commentaire de FhX le 25/06/2007 16:02:33

    "Exemple d'un tableau en HTML :"
    Ouh :s

    <table>
    <tr>
      <th></th>
    </tr>
    <tr>
      <td></td>
    </tr>
    </table>

    "Ha on dirait que tu fait du xHTMl (cf <br />) alors au lieu d'utiliser la balise <center> utilise une div <divi align="center">"
    <div style="margin-left:auto; margin-right:auto;"></div>
    align="center" est dépréciée.

    "Ok a ce niveau ce ne se verra pas mais dans de gros script on moura la voir :)" L'ouverture d'une connection se fait lors de la première requète. Pas avant.
    La fermeture d'une connection se faire lors de la dernière requète, voir à la fin du script.
    C'est bien plus efficace :)

    "7/ mysql_fetch_array() à remplacer par mysql_fetch_assoc()" Oh meuh nan. Mais pourquoi donc vouloir remplacer ? Tu peux l'utiliser en utilisant un flag MYSQL_ASSOC au lieu d'un MYSQL_BOTH par défaut :)
    Ca marche tout aussi bien :)

  • signaler à un administrateur
    Commentaire de Optitech le 25/06/2007 16:37:43

    Oui j'ai pas mit le TH dans nom exemple ! Mais il fuat savoir que en HTML 4.01 Strict le TH n'ai pas obligatoire :) (je viens de faire le test avec le validateur du W3C) Le TH c'est une conlonne d'en-tête, donc tu l'utilise que si tu en as besoin !

    Pour la div tu viens de m'apprendre quelque chose :)

    Ok pour la conenction Mysql Le meiux c'est faire ce que tu dit, mais comme j'ai l'bitude de coder des site qui utilise dès les premières linges la base de données j'ouvre ma connection juste après avoir indiqué nom répoertoire de session et demarer ma session c'est une des raison pourquoi j'ai conseiller cela à notre ami.

  • signaler à un administrateur
    Commentaire de Individu le 25/06/2007 21:59:30

    ALors voilà j'ai ajusté certaine chose et j'ai utilisé du css ^^
    Et j'ai aussi fait une erreur au niveau du code php
    $texte=preg_replace('#\[color=(rouge|vert|bleu|jaune|violet|orange)\](.+)\[/color\]#isU', '<span style="color:$1">$2</span>', $texte);

    cela veux dire si dans le message on trouve
    [color=rouge]le message [/color]
    Il faudrait placé dans la source
    <span style="color:rouge">le message </span>
    Or cela ne risque pas de fonctionner etant donner que ce doit etre
    <span style="color:red"> le message </span>

    Enfin voilà donné moi votre avis sur la nouvelle version et tester là svp ^^

  • signaler à un administrateur
    Commentaire de coucou747 le 30/06/2007 16:51:44

    if ( isset($_POST['pseudo']) AND isset($_POST['message']))
    {
    if ($_POST['pseudo']==NULL)
    tu peux faire une seule condition pour ca

  • signaler à un administrateur
    Commentaire de zogo17 le 15/08/2007 02:57:34

    La table à créé ? elle doit avoire combien de champs et quoi comme nom de champs ?

  • signaler à un administrateur
    Commentaire de zogo17 le 15/08/2007 03:37:46

    enfin, perso, j'ai mis tout ton truck sur un site, j'ai rien touché, je me suis bien connecté sur "connexion.php" et quand je vais sur le site, je fais un teste, sur le contenu, j'écris un truck... rien ne se passe appart que en dessous du pseudo c'est marquer " Mon_Pseudo_Que_J'ai_Choisis/>"...
    on pourrais m'aider svp, j'ai assez besoin de cette source

Ajouter un commentaire

Pub



Appels d'offres

Dessins techniques
Budget : 60€
Animation Flash - Doma...
Budget : 370€
Application flash medi...
Budget : 1 000€

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS