php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2004

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.07.2004, 20:44  
Gast
 
Beiträge: n/a
Standard Denkt ihr das reicht aus.....

Hallo Leute!

Denkt ihr so eine Überprüfung mit der Post methode reicht zur Überprüfung der login daten aus?

PHP-Code:

if ( $REQUEST_METHOD=="POST" )
     {

     if ((isset (
$_POST['passwort']) && true) == preg_match ('|[a-zA-Z0-9]{1,20}|'$_POST['passwort']) && (isset ($_POST['login']) && true) == preg_match ('|[a-zA-Z0-9]{1,20}|'$_POST['login']) 
    && (isset (
$_POST['email']) && true) == preg_match ('|^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}|'$_POST['email'])
    && (isset (
$_POST['firma']) && true) == preg_match ('|[a-zA-Z0-9]{1,20}|'$_POST['firma'])
    && (isset (
$_POST['vorname']) && true) == preg_match ('|[a-zA-Z0-9]{1,20}|'$_POST['vorname'])
    && (isset (
$_POST['nachname']) && true) == preg_match ('|[a-zA-Z0-9]{1,20}|'$_POST['nachname'])
    && (isset (
$_POST['adresse']) && true) == preg_match ('|[a-zA-Z0-9]{1,20}|'$_POST['adresse'])
    && (isset (
$_POST['plz']) && true) == preg_match ('|[0-9]{5}|'$_POST['plz'])
    && (isset (
$_POST['ort']) && true) == preg_match ('|[a-zA-Z0-9]{1,20}|'$_POST['ort'])
    && (isset (
$_POST['telefon']) && true) == preg_match ('|[0-9]{1,20}|'$_POST['telefon']))    
    {    
    
$email $_POST['email'];
    
$login $_POST['login'];
    
$passwort $_POST['passwort'];
    
$firma $_POST['firma'];
    
$vorname $_POST['vorname'];
    
$nachname $_POST['nachname'];
    
$adresse $_POST['adresse'];
    
$plz $_POST['plz'];
    
$ort $_POST['ort'];
    
$telefon $_POST['telefon'];

    
// -- Überprüfung der Emailadresse
    
if(!empty($email)){
    
$email1 strip_tags($_POST[email]);
    
$email2 htmlspecialchars($email1);
    
$email3 trim($email2);
    
$email4 stripslashes($email3);
    
$email5 htmlentities($email4);
    
$email6 $email5;
    }    
    
    
// -- Überprüfung des Passwortes
    
if(!empty($passwort)){
    
$passwort1 strip_tags($_POST[passwort]);
    
$passwort2 htmlspecialchars($passwort1);
    
$passwort3 trim($passwort2);
    
$passwort4 stripslashes($passwort3);
    
$passwort5 htmlentities($passwort4);
    
$passwort6 $passwort5;
    } 
ich hab halt für mich eine fortlaufende nummer gewählt damit ich sicher sein kann, dass es auch überprüft wird..... die ....$passwort6 werden dann zur überprüfung in der datenbank verwendet..


ist nur ein beispiel , was denkt ihr, was könnte man noch verbessern.....

Gruß
Jörg

P.S: Oh ich hab vergessen zu schreiben das ich die variablen die später verwendet werden auf der seite als erstes als false deklariert worden sind, damit keine fremden werte über die variablen übergeben werden können...
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 30.07.2004, 21:22  
Gast
 
Beiträge: n/a
Standard

statt
Code:
$REQUEST_METHOD
würde ich
Code:
$_SERVER['REQUEST_METHOD']
schreiben

die fortlaufenden variablennamen sind überflüssig und bersonders
Code:
$email6=$email5;
verlangsamt dein script...

wegen der überprüfung der eingaben könnte man mal überlegen ob man sich eine funktion oder eine kleine klasse bastelt...

und wozu machst du
Code:
$email=$_POST['email']
wenn du nachher schreibst:
Code:
$email1 = strip_tags($_POST[email]);
also ich finde den code ein bisschen vollgepackt mit überflüssigem code
 
Alt 30.07.2004, 21:27  
Gast
 
Beiträge: n/a
Standard

hi

danke endlich ein tipp, werde es ein wenig bereinigen......

ja eine klasse und eine funktion hatte ich mir auch schon geschrieben, aber ich wollte mal ein paar Programmierstile ausprobieren.

gruß
jörg

P.S: für weitere vorschläge bin ich immer offen, will ja sehr viel noch lernen .....
 
Alt 31.07.2004, 01:40  
Gast
 
Beiträge: n/a
Standard

Ist Folgendes nicht auch ressourcensparender :

Code:
$email1 = sprip_tags(htmlspecialchars(trim(stripslashes((htmlentities($_POST[email])))));
?
 
Alt 31.07.2004, 01:59  
Gast
 
Beiträge: n/a
Standard

ja nur dass es andersrum sein muss
strip-tags muss auf jeden fall ganz innen sein, sonst macht das keinen sinn, wenn man erst htmlentities und dann strip-tags verwendet
 
Alt 31.07.2004, 02:22  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

keine profifrage.

moved to anfänger
imported_Ben ist offline  
Alt 31.07.2004, 09:54  
Gast
 
Beiträge: n/a
Standard

Zitat:
preg_match ('|[a-zA-Z0-9]{1,20}|', $_POST['firma'])
Der Benutzer kann immer noch 100 (oder mehr) Zeichen eingeben und der Ausdruck wird passen, da Du Anfang und Ende der Zeichenkette nicht mit einbeziehst.
PHP-Code:
<?php
$text 
'abcdefghijklmnopqrstuvwxyzABC0123456789';

$pattern '|[a-zA-Z0-9]{1,20}|';
if( 
preg_match($pattern$text) )
    echo 
'1 passt'"
\n"
;
    
$pattern '|^[a-zA-Z0-9]{1,20}$|';
if( 
preg_match($pattern$text) )
    echo 
'2 passt'"
\n"
;    
?>
Wenn die Eingaben durch die PCRE-Muster gekommen sind, wieviel haben dann htmlspecialchar(),stripslashes() und (wenn Du ^...$ einfügst) trim() noch zu tun? Eigentlich doch nichts mehr...
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
strip-tags

Alle Zeitangaben in WEZ +2. Es ist jetzt 03:47 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.