par
Ghaur » 12 févr. 2012, 18:53
Bonjour à tous,
Je suis débutant en php.
J'essaie d'installer dans un livre d'or un code anti spam.
J'ai vraiment tout essayé sans jamais parvenir à une solution finale.
- tout d'abord, des choses simples comme une condition pour interdire des chaines de valeur telle que "http" ou "www" dans les messages...
- puis un code anti robots comme recaptcha mais je ne suis pas arrivé jusqu'au bout...
- et d'autres choses encore, toujours avec un constat d'échec...
Voici une partie de mon code :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="livre.css" />
<title>Livre d'or</title>
</head>
<script type="text/javascript">
function addText(instext) {
var mess = document.formulaire.message;
//IE support
if (document.selection) {
mess.focus();
sel = document.selection.createRange();
sel.text = instext;
document.guestbook.focus();
}
//MOZILLA/NETSCAPE support
else if (mess.selectionStart || mess.selectionStart == "0") {
var startPos = mess.selectionStart;
var endPos = mess.selectionEnd;
var chaine = mess.value;
mess.value = chaine.substring(0, startPos) + instext + chaine.substring(endPos, chaine.length);
mess.selectionStart = startPos + instext.length;
mess.selectionEnd = endPos + instext.length;
mess.focus();
} else {
mess.value += instext;
mess.focus();
}
}
</script>
<body>
<?php include('config.php');?>
<? /// Le titre ///
$chercher = mysql_query ("SELECT * FROM livre WHERE date='xx'");
while ($titre = mysql_fetch_array ($chercher))
{
echo '<div class="titre">'.$titre['pseudo'].'</div>';
}
?>
<p><center><a href="#ajouter"><font face=georgia color=#0000ff>Signer le livre d'or</font></a></center></p>
<!-- MESSAGES -->
<?
// pour les pages :
/* je regarde si une variable page a été envoyée dans l'url */
if (isset ($_GET['page']))
{
$page = $_GET['page'];
}
else
{
$page = 1;
}
/* Je calcule le nombre de messages posté */
$requete = mysql_query ("SELECT COUNT(*) AS nb_messages FROM livre");
$nb_message = mysql_fetch_array ($requete);
$NombreMessage = $nb_message['nb_messages'];
/* Je calcule le nombre de page(s) */
$NombrePage = ceil($NombreMessage / $MessagesParPage);
/* Premier message à afficher */
$PremierMessage = ($page - 1 ) * $MessagesParPage;
/* je fais une boucle pour mes liens */
echo '<div class="lien_page"><a>Page : </a>';
for ($i = 1; $i <= $NombrePage; $i++)
{
echo '<a href="livre_d_or_364.php?page='.$i.'"><font face=georgia color=#0000ff> '.$i.' </font></a>';
}
echo '<br /><br /></div>';
$chercher = mysql_query ("SELECT * FROM livre WHERE date!='xx' ORDER BY id DESC LIMIT $PremierMessage,$MessagesParPage");
while ($voir = mysql_fetch_array ($chercher))
{
$time = date('d-m-y', $voir['date']);
$pseudo = $voir['pseudo'];
/* LES BBCODE ENVOYES */
$avant = array ('8)',
';)',
':coeur:',
':coeur2:',
':colere:',
':desole:',
':fatigue:',
':D',
'oO',
':gne:',
':S',
':heu:',
':?',
':p',
':malade:',
':X',
':O',
':\'(',
':rrr:',
':)',
'[img]',%20'[/img]',
'[url=|', '|]', '[/url]',
'[center]', '[/center]',
'[b]', '[/b]',
'[i]', '[/i]',
'[u]', '[/u]',
);
/* CE QUI REMPLACERA LES BBCODES */
$apres = array ('<img src="smileys/classe.jpg" alt="" />',
'<img src="smileys/clein.jpg" alt="" />',
'<img src="smileys/coeur.jpg" alt="" />',
'<img src="smileys/coeur2.jpg" alt="" />',
'<img src="smileys/colore.jpg" alt="" />',
'<img src="smileys/desole.jpg" alt="" />',
'<img src="smileys/fatigue.jpg" alt="" />',
'<img src="smileys/g_sourire.jpg" alt="" />',
'<img src="smileys/oO.jpg" alt="" />',
'<img src="smileys/gne.jpg" alt="" />',
'<img src="smileys/heu.jpg" alt="" />',
'<img src="smileys/heu2.jpg" alt="" />',
'<img src="smileys/heu3.jpg" alt="" />',
'<img src="smileys/langue.jpg" alt="" />',
'<img src="smileys/malade.jpg" alt="" />',
'<img src="smileys/na.jpg" alt="" />',
'<img src="smileys/oh.jpg" alt="" />',
'<img src="smileys/pleurer.jpg" alt="" />',
'<img src="smileys/rrr.jpg" alt="" />',
'<img src="smileys/sourire.jpg" alt="" />',
'<img src="', '" alt="img" />',
'<a href="', '">', '</a>',
'<center>', '</center>',
'<span id="gras">', '</span>',
'<span id="italique">', '</span>',
'<span id="souligne">', '</span>',
);
$txt = $voir['message'];
$message = str_replace($avant, $apres, $txt);
?>
<center>
<div class="livre">
<div class="pseu"><? echo $pseudo ; ?></div>
<div class="date"><? echo $time ; ?></div>
<div class="mess"><? echo $message ; ?></div>
</div>
</center>
<?
}
?>
<center><a href="#"><font face=georgia color=#0000ff>Remonter</font></a><br /><br /></center>
<form name="formulaire" action="livre_d_or_364.php" method="post">
<input type="hidden" name="date" value="<? echo time() ; ?>" /><center>
<table width="559">
<tr>
<td width="104"><div id="pseudo">Pseudo : </div></td>
<td width="380">
<center>
<input name="pseudo" type="text" class="pseudo" size="61" />
</center>
</td>
</tr>
<tr>
<td width="104"></td>
<td>
<center>
<input class="form2" onclick="addText('[img]Url%20de%20votre%20image[/img]');return(false)" type="button" value="Img" />
<input class="lien" onclick="addText('[url=|http://votre_lien.htm |]Texte du lien image[/url]');return(false)" type="button" value="Lien" />
<input class="form2" onclick="addText('[center]Texte à centrer[/center]');return(false)" type="button" value="Centrer" />
<input class="gras" onclick="addText('[b]Texte en gras[/b]');return(false)" type="button" value="Gras" />
<input class="ital" onclick="addText('[i]Texte en italique[/i]');return(false)" type="button" value="Italique" />
<input class="souligne" onclick="addText('[u]Texte souligné[/u]');return(false)" type="button" value="Souligner" />
</center>
<div><center><font face=georgia color=#000000 size=1>Cliquez sur un de ces boutons et remplacez le texte affiché entre les balises par le votre...</font></center></div>
</td>
</tr>
<tr>
<td><table width="104" border="0" cellspacing="3">
<tr>
<td width="19"><img onclick="addText(' 8) ');return(false)" alt="" src="smileys/classe.jpg" width="19" height="19" /></td>
<td width="19"><img onclick="addText(' ;) ');return(false)" alt="" src="smileys/clein.jpg" width="19" height="19" /></td>
<td width="19"><img onclick="addText(' :coeur: ');return(false)" alt="" src="smileys/coeur.jpg" width="19" height="19" /></td>
<td width="19"><img onclick="addText(' :coeur2: ');return(false)" alt="" src="smileys/coeur2.jpg" width="19" height="19" /></td>
</tr>
<tr>
<td><img onclick="addText(' :colere: ');return(false)" alt="" src="smileys/colere.jpg" width="19" height="19" /></td>
<td><img onclick="addText(' :desole: ');return(false)" alt="" src="smileys/desole.jpg" width="19" height="19" /></td>
<td><img onclick="addText(' :fatigue: ');return(false)" alt="" src="smileys/fatigue.jpg" width="19" height="19" /></td>
<td><img onclick="addText(' :D ');return(false)" alt="" src="smileys/g_sourire.jpg" width="19" height="19" /></td>
</tr>
<tr>
<td><img onclick="addText(' :gne: ');return(false)" alt="" src="smileys/gne.jpg" width="19" height="19" /></td>
<td><img onclick="addText(' :S ');return(false)" alt="" src="smileys/heu.jpg" width="19" height="19" /></td>
<td><img onclick="addText(' :heu: ');return(false)" alt="" src="smileys/heu2.jpg" width="19" height="19" /></td>
<td><img onclick="addText(' oO ');return(false)" alt="" src="smileys/oO.jpg" width="19" height="19" /></td>
</tr>
<tr>
<td><img onclick="addText(' :? ');return(false)" alt="" src="smileys/heu3.jpg" width="19" height="19" /></td>
<td><img onclick="addText(' :p ');return(false)" alt="" src="smileys/langue.jpg" width="19" height="19" /></td>
<td><img onclick="addText(' :malade: ');return(false)" alt="" src="smileys/malade.jpg" width="19" height="19" /></td>
<td><img onclick="addText(' :X ');return(false)" alt="" src="smileys/na.jpg" width="19" height="19" /></td>
</tr>
<tr>
<td><img onclick="addText(' :O ');return(false)" alt="" src="smileys/oh.jpg" width="19" height="19" /></td>
<td><img onclick="addText(' :\'( ');return(false)" alt="" src="smileys/pleurer.jpg" width="19" height="19" /></td>
<td><img onclick="addText(' :rrr: ');return(false)" alt="" src="smileys/rrr.jpg" width="19" height="19" /></td>
<td><img onclick="addText(' :)');return(false)" alt="" src="smileys/sourire.jpg" width="19" height="19" /></td>
</tr>
</table></td>
<td valign="top"><center><textarea cols="70" rows="9" name="message" class="message"></textarea></center>
</td>
</tr>
<td></td>
<td><center><input type="reset" class="envoyer" value="Supprimer" /> <input type="submit" class="envoyer" value="Envoyer" /></center></td>
</tr>
</table>
</center>
</form>
<? if ($page != 1)
{
echo '<div class="lien_page"><a>Page : </a>';
for ($i = 1; $i <= $NombrePage; $i++)
{
echo '<a href="livre_d_or_364.php?page='.$i.'"> '.$i.' </a>';
}
echo '<br /><br /></div>';
}
else {}
?>
<a id="ajouter" class="ajouter"></a>
<? if (isset ($_POST['pseudo']) AND isset ($_POST['message']))
{
if ( $_POST['pseudo'] != NULL AND $_POST['message'] != NULL)
{
$date = $_POST['date'];
$pseudo = $_POST['pseudo'];
$message = nl2br(htmlentities($_POST['message']));
$inserer = mysql_query ("INSERT INTO livre VALUES ('', '$date', '$pseudo', '$message')");
echo "<script>document.location.href=\"livre_d_or_364.php\";</script>";
}
else { echo "<center><font face=georgia>Remplissez tous les champs</font></center>"; }
}
else
{}
mysql_close();
?>
</body>
</html>
Qui peut m'aider car là, je suis à bout de solutions malgré ma bonne volonté et j'ai été obligé de bloquer ce livre d'or car il était infesté de spams...
Merci à tous.
Bonjour à tous,
Je suis débutant en php.
J'essaie d'installer dans un livre d'or un code anti spam.
J'ai vraiment tout essayé sans jamais parvenir à une solution finale.
- tout d'abord, des choses simples comme une condition pour interdire des chaines de valeur telle que "http" ou "www" dans les messages...
- puis un code anti robots comme recaptcha mais je ne suis pas arrivé jusqu'au bout...
- et d'autres choses encore, toujours avec un constat d'échec...
Voici une partie de mon code :
[php]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" type="text/css" href="livre.css" />
<title>Livre d'or</title>
</head>
<script type="text/javascript">
function addText(instext) {
var mess = document.formulaire.message;
//IE support
if (document.selection) {
mess.focus();
sel = document.selection.createRange();
sel.text = instext;
document.guestbook.focus();
}
//MOZILLA/NETSCAPE support
else if (mess.selectionStart || mess.selectionStart == "0") {
var startPos = mess.selectionStart;
var endPos = mess.selectionEnd;
var chaine = mess.value;
mess.value = chaine.substring(0, startPos) + instext + chaine.substring(endPos, chaine.length);
mess.selectionStart = startPos + instext.length;
mess.selectionEnd = endPos + instext.length;
mess.focus();
} else {
mess.value += instext;
mess.focus();
}
}
</script>
<body>
<?php include('config.php');?>
<? /// Le titre ///
$chercher = mysql_query ("SELECT * FROM livre WHERE date='xx'");
while ($titre = mysql_fetch_array ($chercher))
{
echo '<div class="titre">'.$titre['pseudo'].'</div>';
}
?>
<p><center><a href="#ajouter"><font face=georgia color=#0000ff>Signer le livre d'or</font></a></center></p>
<!-- MESSAGES -->
<?
// pour les pages :
/* je regarde si une variable page a été envoyée dans l'url */
if (isset ($_GET['page']))
{
$page = $_GET['page'];
}
else
{
$page = 1;
}
/* Je calcule le nombre de messages posté */
$requete = mysql_query ("SELECT COUNT(*) AS nb_messages FROM livre");
$nb_message = mysql_fetch_array ($requete);
$NombreMessage = $nb_message['nb_messages'];
/* Je calcule le nombre de page(s) */
$NombrePage = ceil($NombreMessage / $MessagesParPage);
/* Premier message à afficher */
$PremierMessage = ($page - 1 ) * $MessagesParPage;
/* je fais une boucle pour mes liens */
echo '<div class="lien_page"><a>Page : </a>';
for ($i = 1; $i <= $NombrePage; $i++)
{
echo '<a href="livre_d_or_364.php?page='.$i.'"><font face=georgia color=#0000ff> '.$i.' </font></a>';
}
echo '<br /><br /></div>';
$chercher = mysql_query ("SELECT * FROM livre WHERE date!='xx' ORDER BY id DESC LIMIT $PremierMessage,$MessagesParPage");
while ($voir = mysql_fetch_array ($chercher))
{
$time = date('d-m-y', $voir['date']);
$pseudo = $voir['pseudo'];
/* LES BBCODE ENVOYES */
$avant = array ('8)',
';)',
':coeur:',
':coeur2:',
':colere:',
':desole:',
':fatigue:',
':D',
'oO',
':gne:',
':S',
':heu:',
':?',
':p',
':malade:',
':X',
':O',
':\'(',
':rrr:',
':)',
'[img]',%20'[/img]',
'[url=|', '|]', '[/url]',
'[center]', '[/center]',
'[b]', '[/b]',
'[i]', '[/i]',
'[u]', '[/u]',
);
/* CE QUI REMPLACERA LES BBCODES */
$apres = array ('<img src="smileys/classe.jpg" alt="" />',
'<img src="smileys/clein.jpg" alt="" />',
'<img src="smileys/coeur.jpg" alt="" />',
'<img src="smileys/coeur2.jpg" alt="" />',
'<img src="smileys/colore.jpg" alt="" />',
'<img src="smileys/desole.jpg" alt="" />',
'<img src="smileys/fatigue.jpg" alt="" />',
'<img src="smileys/g_sourire.jpg" alt="" />',
'<img src="smileys/oO.jpg" alt="" />',
'<img src="smileys/gne.jpg" alt="" />',
'<img src="smileys/heu.jpg" alt="" />',
'<img src="smileys/heu2.jpg" alt="" />',
'<img src="smileys/heu3.jpg" alt="" />',
'<img src="smileys/langue.jpg" alt="" />',
'<img src="smileys/malade.jpg" alt="" />',
'<img src="smileys/na.jpg" alt="" />',
'<img src="smileys/oh.jpg" alt="" />',
'<img src="smileys/pleurer.jpg" alt="" />',
'<img src="smileys/rrr.jpg" alt="" />',
'<img src="smileys/sourire.jpg" alt="" />',
'<img src="', '" alt="img" />',
'<a href="', '">', '</a>',
'<center>', '</center>',
'<span id="gras">', '</span>',
'<span id="italique">', '</span>',
'<span id="souligne">', '</span>',
);
$txt = $voir['message'];
$message = str_replace($avant, $apres, $txt);
?>
<center>
<div class="livre">
<div class="pseu"><? echo $pseudo ; ?></div>
<div class="date"><? echo $time ; ?></div>
<div class="mess"><? echo $message ; ?></div>
</div>
</center>
<?
}
?>
<center><a href="#"><font face=georgia color=#0000ff>Remonter</font></a><br /><br /></center>
<form name="formulaire" action="livre_d_or_364.php" method="post">
<input type="hidden" name="date" value="<? echo time() ; ?>" /><center>
<table width="559">
<tr>
<td width="104"><div id="pseudo">Pseudo : </div></td>
<td width="380">
<center>
<input name="pseudo" type="text" class="pseudo" size="61" />
</center>
</td>
</tr>
<tr>
<td width="104"></td>
<td>
<center>
<input class="form2" onclick="addText('[img]Url%20de%20votre%20image[/img]');return(false)" type="button" value="Img" />
<input class="lien" onclick="addText('[url=|http://votre_lien.htm |]Texte du lien image[/url]');return(false)" type="button" value="Lien" />
<input class="form2" onclick="addText('[center]Texte à centrer[/center]');return(false)" type="button" value="Centrer" />
<input class="gras" onclick="addText('[b]Texte en gras[/b]');return(false)" type="button" value="Gras" />
<input class="ital" onclick="addText('[i]Texte en italique[/i]');return(false)" type="button" value="Italique" />
<input class="souligne" onclick="addText('[u]Texte souligné[/u]');return(false)" type="button" value="Souligner" />
</center>
<div><center><font face=georgia color=#000000 size=1>Cliquez sur un de ces boutons et remplacez le texte affiché entre les balises par le votre...</font></center></div>
</td>
</tr>
<tr>
<td><table width="104" border="0" cellspacing="3">
<tr>
<td width="19"><img onclick="addText(' 8) ');return(false)" alt="" src="smileys/classe.jpg" width="19" height="19" /></td>
<td width="19"><img onclick="addText(' ;) ');return(false)" alt="" src="smileys/clein.jpg" width="19" height="19" /></td>
<td width="19"><img onclick="addText(' :coeur: ');return(false)" alt="" src="smileys/coeur.jpg" width="19" height="19" /></td>
<td width="19"><img onclick="addText(' :coeur2: ');return(false)" alt="" src="smileys/coeur2.jpg" width="19" height="19" /></td>
</tr>
<tr>
<td><img onclick="addText(' :colere: ');return(false)" alt="" src="smileys/colere.jpg" width="19" height="19" /></td>
<td><img onclick="addText(' :desole: ');return(false)" alt="" src="smileys/desole.jpg" width="19" height="19" /></td>
<td><img onclick="addText(' :fatigue: ');return(false)" alt="" src="smileys/fatigue.jpg" width="19" height="19" /></td>
<td><img onclick="addText(' :D ');return(false)" alt="" src="smileys/g_sourire.jpg" width="19" height="19" /></td>
</tr>
<tr>
<td><img onclick="addText(' :gne: ');return(false)" alt="" src="smileys/gne.jpg" width="19" height="19" /></td>
<td><img onclick="addText(' :S ');return(false)" alt="" src="smileys/heu.jpg" width="19" height="19" /></td>
<td><img onclick="addText(' :heu: ');return(false)" alt="" src="smileys/heu2.jpg" width="19" height="19" /></td>
<td><img onclick="addText(' oO ');return(false)" alt="" src="smileys/oO.jpg" width="19" height="19" /></td>
</tr>
<tr>
<td><img onclick="addText(' :? ');return(false)" alt="" src="smileys/heu3.jpg" width="19" height="19" /></td>
<td><img onclick="addText(' :p ');return(false)" alt="" src="smileys/langue.jpg" width="19" height="19" /></td>
<td><img onclick="addText(' :malade: ');return(false)" alt="" src="smileys/malade.jpg" width="19" height="19" /></td>
<td><img onclick="addText(' :X ');return(false)" alt="" src="smileys/na.jpg" width="19" height="19" /></td>
</tr>
<tr>
<td><img onclick="addText(' :O ');return(false)" alt="" src="smileys/oh.jpg" width="19" height="19" /></td>
<td><img onclick="addText(' :\'( ');return(false)" alt="" src="smileys/pleurer.jpg" width="19" height="19" /></td>
<td><img onclick="addText(' :rrr: ');return(false)" alt="" src="smileys/rrr.jpg" width="19" height="19" /></td>
<td><img onclick="addText(' :)');return(false)" alt="" src="smileys/sourire.jpg" width="19" height="19" /></td>
</tr>
</table></td>
<td valign="top"><center><textarea cols="70" rows="9" name="message" class="message"></textarea></center>
</td>
</tr>
<td></td>
<td><center><input type="reset" class="envoyer" value="Supprimer" /> <input type="submit" class="envoyer" value="Envoyer" /></center></td>
</tr>
</table>
</center>
</form>
<? if ($page != 1)
{
echo '<div class="lien_page"><a>Page : </a>';
for ($i = 1; $i <= $NombrePage; $i++)
{
echo '<a href="livre_d_or_364.php?page='.$i.'"> '.$i.' </a>';
}
echo '<br /><br /></div>';
}
else {}
?>
<a id="ajouter" class="ajouter"></a>
<? if (isset ($_POST['pseudo']) AND isset ($_POST['message']))
{
if ( $_POST['pseudo'] != NULL AND $_POST['message'] != NULL)
{
$date = $_POST['date'];
$pseudo = $_POST['pseudo'];
$message = nl2br(htmlentities($_POST['message']));
$inserer = mysql_query ("INSERT INTO livre VALUES ('', '$date', '$pseudo', '$message')");
echo "<script>document.location.href=\"livre_d_or_364.php\";</script>";
}
else { echo "<center><font face=georgia>Remplissez tous les champs</font></center>"; }
}
else
{}
mysql_close();
?>
</body>
</html>[/php]
Qui peut m'aider car là, je suis à bout de solutions malgré ma bonne volonté et j'ai été obligé de bloquer ce livre d'or car il était infesté de spams...
Merci à tous.