perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 14
Click for quality!




12.02.2012 / 02:44

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  PHP: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragBadword Funktion
Seitenanfang
Hallo,

möchte gern eine Badword-Funktion in mein Gaestebuchform. einbauen.
Habe aber keinen Plan wie ich das am besten realisiere. Mein Ansatz ist
die mit Sternen versehenen Wörter schon mit dem "submit" an das Script zu senden,
das den Eintrag in die DB vornimmt, also dort die Funktion aufzurufen (noch keine Ahnung wie).
Oder ist es besser den Eintrag erst in der eintrag-einfuegen.php auszuwerten und dann mit Sternen zu versehen? Wenn ja, wie?

func.inc.php


function BadwordFilter($Nachricht)
{
$Badwords = array("bush", "sau", 'arsch', 'ficken');
foreach($Badwords as $Badword)
{
$Nachricht = str_replace($Badword, str_repeat("*", strlen($Badword)), $Nachricht);
}
return $Nachricht;
}

eintrag.php


require_once "func.inc.php";

echo "<form action='eintrag-einfuegen.php' method='post'>";
echo "<input class='gb' name='Name' maxlength='30' type='text' value='Name' onFocus=\"this.style.backgroundColor='#663300'\" onBlur=\"this.style.backgroundColor='#808080'\">";
echo "<input class='gb' name='Titel' maxlength='50' type='text' value='Thema' onFocus=\"this.style.backgroundColor='#663300'\" onBlur=\"this.style.backgroundColor='#808080'\">";
echo "<textarea class='gb' cols='100' name='Eintrag' rows='3' wrap='hard' onFocus=\"this.style.backgroundColor='#663300'\" onBlur=\"this.style.backgroundColor='#808080'\">Euer Eintrag im Gästebuch</textarea><br>";
echo "<input class='button butt' type='submit' name='senden' tabindex='9' value='Senden' onMouseover=\"this.style.backgroundColor='#663300'\" onMouseout=\"this.style.backgroundColor='#808080'\">";
echo "<input class='button butt' type='reset' name='zurücksetzen' value='Löschen' onMouseover=\"this.style.backgroundColor='#663300'\" onMouseout=\"this.style.backgroundColor='#808080'\">";
echo "</form>";

Wie die Funktion hier einbauen ??

eintrag-einfuegen.php


$DatabasePointer=mysql_connect("localhost", "***", "***");
mysql_select_db("***", $DatabasePointer);

$SQL = "INSERT INTO gaestebuch (Datum, Name, Titel, Eintrag) VALUES (NOW(''), '".$_REQUEST['Name']."', '".$_REQUEST['Titel']."', '".$_REQUEST['Eintrag']."')";
mysql_query($SQL, $DatabasePointer);

if(mysql_affected_rows($DatabasePointer)==1)
{
echo"<div id='danke'>";
echo"Vielen Dank für Deinen Eintrag im Gästebuch.";
echo"<a href='guestbook.php'>Zurück zum Gästebuch</a>";
echo"</div>";
}

Datum: 11.10.2005-22:19

Beitragre: Badword Funktion
Seitenanfang
Aeh.. wie willst Du denn nach der Ausgabe des Formulars in eintrag.php schon pruefen? Da hast Du doch noch gar keine Benutzereingabe die Du pruefen koenntest. Und deine Formular-Action geht ja auch auf eintrag-einfuegen.php - also selbst wenn Du die Pruefung da einbaust, bringt sie nix, weil sie niemals ausgefuehrt wird.

In eintrag-einfuegen.php wuerd ich die Ersetzfunktion noch vor dem Datenbank-Connect erledigen.

Du koenntest auch einfach nur pruefen ob ein Badword enthalten ist und dann - mit Hinweistext zur Maessigung der Ausdrucksweise - das Formular mit den schon eingegebenen Daten nochmals anzeigen. Aber das wuerde wahrscheinlich nur dazu fuehren das die Benutzer "kreativ" werden und andere Faekalausdruecke probieren, bis das Skript den Eintrag akzeptiert.

Datum: 11.10.2005-22:43

-






-
-