Php Gross/Kleinschreibung
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abschicken
auto
begriff
code
datum
formular
funktion
http
kleinbuchstaben
kleinschreibung
machen
manual
setzen
string
testen
url
variable name
verhindern
verwenden
weile
-
Folgendes, ich hab ein Formular (formular.htm)
UND eine php seite die das Formular dann auswertet (formular-auswertung.php)
In dem Formular wird ein Username und eine E-mailadresse gespeichert - php gibt die daten an mysql weiter.
Ich hab dafür gesorgt, dass man das Formular nicht abschicken kann, wenn nichts angegeben ist - um leere einträge zu verhindern.
So, da das Formular eine weile online sein wird, hab ich mir eine kleine maßnahme überlegt, um es vor spambots zu schützen. Das es keinen 100%igen schutz gibt, ist mir klar. Ein Bild auf dem z.B ein Auto zu sehen ist.
Der User MUSS (ist ein pflichtfeld) angeben was er sieht.
PHP macht natürlich einen unterschied ob da 'AUTO' , 'auto' oder 'Auto' steht.
Wie kann ich denn das verhindern?
Ich lasse prüfen ob in feld $spam 'auto' steht UND ob $name NICHT leer ist
if ($spam == "auto" && $name != "")
{
dann verbindet er mit MYSQL...
[...]
Beitrag zuletzt geändert: 26.1.2009 15:15:35 von nadsche -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Du kannst entweder alles in Großbuchsataben umwandeln, alles in kleinbuchstaben umwanden oder die Funktion strcasecmp verwenden. Alle Infos auf http://de2.php.net/manual/de/function.strcasecmp.php
mfg
drafed-map -
Hi,
Tillorgias empfiehlt heute:
strtoupper($string)
und
strtolower($string)
Wenn du also einen begriff wie "Auto" hast, dann vergleich so:
if(strtolower($_POST['usereingabe']) == strtolower($begriff)) { //Welt in Ordnung }
Beide strings werden in kleinbuchstaben umgewandelt. damit müssen sie dann, egal welche groß/kleinschreibung, gleich sein.
Gruß Tillorgias -
wenn du testen willst ob eine variable ein leerstring ist nutz doch lieber empty($var)
wenn die variable einen leerstring enthält oder nich gesetzt ist gibt es ein true zurück. setz in deine if-schliefe also ein: !empty ($name)
das heißt nur wenn die variable $name nicht leer ist ist ok.
http://www.php.net/manual/de/function.empty.php
mit den in lowercase setzen haben meine vorgänger alles gesagt:
http://www.php.net/manual/de/function.strtolower.php
hier wird die funktion nochmal erklärt
viel spaß damit -
Hallo,
das ist vielleicht keine elegante Lösung, aber so müsste es funktionieren:
if ($spam == "auto" && $name != "" || $spam == "Auto" && $name != "" || ...)
{
dann verbindet er mit MYSQL...
[...]
einfach ein logisches oder verwenden
ich hoffe, es klappt -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage