Message intempestif sur mon livre d' or
Forum Programmation : Message intempestif sur mon livre d' or
Bonjour auriez-vous un moyen de stopper ces messages intempestifs sur mon livre d' or:
http://ns23.hosteur.com/~bpzoom/in [...] e=livredor
J' en reçoit une dizaine chaque jour !
Merci d' avance !
utiliser htmlentities avant de le stocker dans une base:
http://php.benscom.com/manual/fr/f [...] tities.php
Auriez vous une réponse plus claire ? Je me suis rendu sur le lien, je ne comprend rien ! Merci d' avance !
Utilises htmlentities() dans le php, avant d'insérer les données dans la base...
Comme tu le vois, j'ai pu mettre du javascript qui ouvre une page d'idn automatiquement... On peut faire bien pire en js...
Gadjet62 je vais essayer de te parler en termes humains, car sans vouloir vexer personne j'ai l'impression que les autres n'ont pas compris ta demande.
D'abord dis-moi, le livre d'or que tu as sur ton site, tu n'as rien du installer toi-même n'est ce pas ? C'est ton hebergeur qui te l'a proposé ?
Si c'est le cas, la seule réponse que je peux te donner est... de changer de livre d'or, car celui-là n'est pas du tout protégé et tu ne peux rien y faire (j'avais le même problème chez free, toujours pas résolu d'ailleurs).
Si ce n'est PAS le cas :
- tu as du installer toi-même un script PHP comme un grand, donne nous le nom du script et on te dira ce qu'il faut faire.
- tu as programmé le livre d'or toi-même en PHP, dans ce cas mets nous ton code ici afin qu'on puisse l'examiner et t'apporter une réponse
. Voilà.
Message édité par glandeur le 28-01-2007 à 01:55:02
Voilà le script:
<?
require("config.inc.php3" );
foreach ($_REQUEST as $key => $val) {
$$key = $val;
}
if($_GET['topic']=='form') // on affiche le formulaire
{
echo "<center><font face=\"$face\" color=\"$color\" size=\"2\"><b>Ajouter un message au Livre d'or</b></font></center><br>";
echo "<form method=\"POST\" action=\"$index"."$signe"."topic=poster\">\n";
echo "<input type=\"hidden\" name=\"topic\" value=\"poster\">\n";
echo "<center><input type=\"\" name=\"nom\" size=\"30\" value=\"votre nom\"></center><br>\n";
echo "<center><textarea name=\"message\" rows=\"12\" cols=\"36\" wrap=\"virtual\">votre message ...</textarea></center>\n";
echo "<center><input type=\"submit\" name=\"submit\" value=\"Poster le message ...\"></center>\n\n";
echo "</form>";
echo "<center><font face=\"$face\" color=\"$color\" size=\"2\"><b><a href=\"$index\"><< Retour au Livre d'or</a></b></font></center>\n";
echo "<hr size=1 width=\"310\">\n";
}
elseif($topic=='poster') // on poste les infos du formulaire
{
if(empty($nom) OR empty($message) OR $nom=='votre nom' OR $message=='votre message ...')
{
echo "<center><font face=\"$face\" color=\"$col_alert\" size=\"2\"><b>Erreur dans les champs !</b></center><br>\n";
echo "<center><a href=\"Javascript:history.back()\"><< Merci de retourner au formulaire</a></font></center>\n";
}
else
{
$db = mysql_connect("$host", "$login", "$password" );
mysql_select_db("$base",$db);
$date = date("d-m-Y" );
$heure = date("H\hi" );
$message = addslashes($message);
$nom = addslashes($nom);
mysql_query("INSERT INTO goldenbook_tbl VALUES('','$nom','$message','$date','$heure')" );
mysql_close();
Header("Location: $index" );
}
}
else // on affiche le livre d'or
{
$db = mysql_connect("$host", "$login", "$password" );
mysql_select_db("$base",$db);
if($limit==''){ $limit = 0; }
$count_req = mysql_query("SELECT id FROM goldenbook_tbl" );
$count = mysql_numrows($count_req);
$comptage_req = mysql_query("SELECT * FROM goldenbook_tbl ORDER BY id DESC LIMIT $limit, 10" );
$comptage = mysql_numrows($comptage_req);
echo "<center><font face=\"$face\" color=\"$color\" size=\"2\"><b>$count messages | ";
echo "<a href=\"$index"."$signe"."topic=form\">Ajouter un message</a> | ";
echo "<hr size=1 width=\"$width\">\n";
$i=0;
WHILE($i!=$comptage)
{
$nom = mysql_result($comptage_req,$i,"nom" );
$message = mysql_result($comptage_req,$i,"message" );
$date = mysql_result($comptage_req,$i,"date" );
$heure = mysql_result($comptage_req,$i,"heure" );
$message = stripslashes(stripslashes($message));
$nom = stripslashes(stripslashes($nom));
echo "<center><div align=\"center\">\n";
echo "<table width=\"$width\" bgcolor=\"$bgcolor\">\n";
echo "<tr><td bgcolor=\"$bgtitre\"><font face=\"$potitre\" color=\"$cotitre\" size=2> <b>$nom</b></font> <font face=\"verdana\" size=\"1\">($date à $heure)</font></td></tr>\n";
echo "<tr><td><font face=\"$pomessa\" color=\"$comessa\" size=2><blockquote>$message</font></td></tr>\n";
echo "</table></div></center><br>\n\n";
$i++;
}
// gestion des liens pages ----------------------------
$pages = $count / 10;
$pages = floor($pages);
if($count>10)
{
$footer = "Pages: <a href=\"$index"."$signe"."limit=0\"><b>index</b></a>\n";
if($count==40){ $i = 1; }else{ $i = 0; }
$comptage = 10;
$page_num = 2;
WHILE($i!=$pages)
{
if($limit==$comptage)
{
$footer .= " | <b>$page_num</b>\n";
$comptage += 10;
$page_num++;
$i++;
}
else
{
$footer .= " | <a href=\"$index"."$signe"."limit=$comptage\"><b>$page_num</b></a>\n";
$comptage += 10;
$page_num++;
$i++;
}
}
}
$reste = $count - $limit - 10;
$reste_limit = $limit + 10;
if($reste<=0)
{
$reste = "Fin des messages";
$avant = "";
$apres = "";
}
else
{
$reste = "10 affichés - Reste ";
$reste .= $count - $limit - 10;
$avant = "<a href=\"$index"."$signe"."limit=$reste_limit\">";
$apres = "</a>";
}
if($count==0)
{
$reste = "Le livre d'or est vide pour le moment";
$avant = "";
$apres = "";
}
echo "<center><font face=\"$face\" color=\"$color\" size=\"2\">[$avant"."$reste"."$apres]</font></center><br>\n";
echo "<center><font face=\"$face\" color=\"$color\" size=\"2\">$footer</font></center>\n";
echo "<hr size=1 width=\"$width\">\n";
mysql_close();
}
?>
il faut remplacer ca:
Code :
|
par
Code :
|
ca n'arrêtera peut etre pas les messages mais enlevera leur interet et ceux qui les envoient se lasseront
Ce sont des tobots hein
Sinon il existe des scripts qui integrent des methodes pour stopper le "spam" des formulaires. Faut chercher un peu sur le net.
Il y a 618 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
