Hallo @all,
ich schreibe im Moment ein Forum und benutzte im Bereich der Useranmeldung, heißt, das neuanlegen von Benutzern, ein paar Funktionen, um Eingabedaten auf Richtigkeit zu überprüfen. "Richtig" ist eine Eingabe, wenn ein Nickname z.B. keine Sonderzeichen, wie das &, enthält. Die gleichen Abfragen wende ich auf Name, Passwort, Adresse etc. an.
Meine Frage ist jetzt dazu, ob diese Funktionen so in dieser Form sicher sind, d.h. mir niemand meinen Query auseinandernimmt, in dem ein ' mit hindurch flutscht....
Jedesmal, wenn ein Fehler auftritt, soll die Funktion false zurückgeben, ansonsten true.
Hier einmal die Funktion, die den Nicknamen auf Richtigkeit überprüft. erlaubt ist [a-z], [A-Z], - _ . und Leerzeichen
Weiter eine ICQ-Nummer. Im Grunde müsste diese Funktion ja reichen, aber vielleicht fällt euch ja etwas auf. Eine ICQ-Nummer besitzt neun Ziffern.
Dann will ich überprüfen, ob eine email-Adresse gültig ist. Hier mache ich eine sehr unschöne Abfrage, ob evtl. ungültige Zeichen enthalten sind und ob kein oder mehrere @-Zeichen eingegeben wurden.
Ich habe schon an eine Änderung gedacht, sowas wie
aber ich wollte erstmal eine zweite Meinung haben.
Hier die Funktion:
Dann kommt die Abfrage, ob die homepage-Adresse gültig ist.
In der nächsten Funktion wird eine Adresse mit Hausnummer, also sowas wie "Schlossallee 23" auf Richtigkeit überprüft:
Hier habe ich noch eine Funktion, mit der ich innerhalb eines Textes, der eventuell PHP und HTML-Tags enthalten könnte, alle Sonderzeichen wie " in " umwandelt möchte
Soweit dazu!
Ich hoffe, ihr könnt mir ein bisschen was zu meinen Funktionen erzählen, weil ich im Nachhinein, wenn das Projekt Online geht, ungerne Böse erwachen möchte
mfg
PHP-Desaster
ich schreibe im Moment ein Forum und benutzte im Bereich der Useranmeldung, heißt, das neuanlegen von Benutzern, ein paar Funktionen, um Eingabedaten auf Richtigkeit zu überprüfen. "Richtig" ist eine Eingabe, wenn ein Nickname z.B. keine Sonderzeichen, wie das &, enthält. Die gleichen Abfragen wende ich auf Name, Passwort, Adresse etc. an.
Meine Frage ist jetzt dazu, ob diese Funktionen so in dieser Form sicher sind, d.h. mir niemand meinen Query auseinandernimmt, in dem ein ' mit hindurch flutscht....
Jedesmal, wenn ein Fehler auftritt, soll die Funktion false zurückgeben, ansonsten true.
Hier einmal die Funktion, die den Nicknamen auf Richtigkeit überprüft. erlaubt ist [a-z], [A-Z], - _ . und Leerzeichen
PHP-Code:
function check_alpha($source){
if(ctype_print($source)){
$token=strtok($source,".-_ ");
do{
if(ctype_alpha($token)){
$switch=true;
}
else $switch=false;
}while($switch AND $token=strtok(".-_ "));
return $switch;
}
else return false;
}
PHP-Code:
function check_icq($source){
if(ctype_digit($source) AND strlen($source)==9 ){
return true;
}
else return false;
}
Ich habe schon an eine Änderung gedacht, sowas wie
PHP-Code:
foreach($source as $value){
if(!in_array($erlaubte_zeichen,$value)){
return false;
}
}
Hier die Funktion:
PHP-Code:
function check_email($source){
if(ctype_print($source)){
if(strpbrk($source,"!\"'§$%*&/=?\\^°()<>|{}[]:;,²³")){
return false;
}
else if( ($token=strrchr($source,"@"))==false OR
strpos($token,".")==false ){
return false;
}
else if( strpos($source,"@")!=strripos($source,"@") OR
strpos($source,"@")==false ){
return false;
}
return true;
}
else return false;
}
PHP-Code:
function check_homepage($source){
if(ctype_print($source)){
if(strpbrk($source,"!\"'§$%*&=?\\^°_()<>|{}[];,@") OR
strpos($source,".")==false ){
return false;
}
return true;
}
else return false;
}
PHP-Code:
function check_address($source){
if(ctype_print($source)){
$token=strtok($source,"-_. ");
do{
if(ctype_alnum($token)){
$switch=true;
}
else $switch=false;
}while($switch AND $token=strtok("-_. "));
return $switch;
}
else return false;
}
Hier habe ich noch eine Funktion, mit der ich innerhalb eines Textes, der eventuell PHP und HTML-Tags enthalten könnte, alle Sonderzeichen wie " in " umwandelt möchte
PHP-Code:
function killAllTags($target){
return quotemeta(htmlentities( $target, ENT_QUOTES ));
}
Soweit dazu!
Ich hoffe, ihr könnt mir ein bisschen was zu meinen Funktionen erzählen, weil ich im Nachhinein, wenn das Projekt Online geht, ungerne Böse erwachen möchte
mfg
PHP-Desaster
Kommentar