SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Das Zend Framework

Das Zend Framework zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen
Hilfe Community Kalender Heutige Beiträge Suchen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 16.05.2009, 21:02:36
Salamander89 Salamander89 ist offline
Anfänger
 
Registriert seit: Mar 2009
Alter: 34
Beiträge: 26
Inhalt einer Variablen prüfen

Hallo zusammen,

weiß zufällig jemand, wie man den Inhalt einer Variablen/eines Arrays auf das Vorkommen bestimmter Sonderzeichen (z.B. */\ ...) überprüfen kann?
Ich bräuchte das, um bei einem Login-Formular eventuelle SQL-Injection auszuschliessen.
Danke schon mal im Vorraus.
Mit Zitat antworten
  #2  
Alt 17.05.2009, 00:34:29
CPA CPA ist offline
Anfänger
 
Registriert seit: Feb 2007
Alter: 46
Beiträge: 69
AW: Inhalt einer Variablen prüfen

Bevor du einen String auf etwaige Sonderzeichen prüfst, kannst ja beim einfügen eines Datensatzes in die Datenbank die Funktion mysql_real_escape_string() nutzen.

Bsp.:
PHP-Code:
$input $_POST['formfield'];
mysql_query("INSERT INTO table1 (input) VALUES('".mysql_real_escape_string($input)."')"); 
Auf diese Weise musst den String nicht extra auf Sonderzeichen prüfen, diese werden durch die genannte Funktion einfach maskiert und somit ist kein SQL-Injection möglich.
Mit Zitat antworten
  #3  
Alt 17.05.2009, 07:07:09
Salamander89 Salamander89 ist offline
Anfänger
 
Registriert seit: Mar 2009
Alter: 34
Beiträge: 26
AW: Inhalt einer Variablen prüfen

Ja, das wäre eine Möglichkeit. Aber ich möchte, dass dem User eine Fehlermeldung ausgegeben wird, wenn er in das Formular "nicht erlaubte" Zeichen schreibt.

Ich hab mal ein bisschen gegoogelt und das hier gefunden:


PHP-Code:
if (!preg_match('~\A\S{3,30}\z~'$Username)) {
        return 
'Der Benutzername darf nur aus 3 bis 30 Zeichen bestehen und '.
               
'keine Leerzeichen enthalten.';
    } 
Das klappt ganz gut soweit.
Mit Zitat antworten
  #4  
Alt 17.05.2009, 08:25:00
Salamander89 Salamander89 ist offline
Anfänger
 
Registriert seit: Mar 2009
Alter: 34
Beiträge: 26
AW: Inhalt einer Variablen prüfen

allerdings hab ich jetzt gemerkt, dass die Überprüfung doch nicht so optimal funktioniert.

Das Problem, der Code:
PHP-Code:
$frmbenutzer trim($_POST['Benutzer']);
$frmsecure '/^&$\{}][=+-*"-_./';
if (
preg_match($frmsecure$frmbenutzer)) {
  return 
"Keine unerlaubten Zeichen!";

gibt folgenden Fehler aus:
Code:
Warning: preg_match() [function.preg-match]: Compilation failed: range out of order in character class at offset 11 in [Verzeichnis...] on line 32
Leider werde ich aus der Anleitung zur preg_match Funktion auf php.net auch nicht schlau. Kann jemand helfen?

Danke.
Mit Zitat antworten
  #5  
Alt 17.05.2009, 09:53:03
norbert6 norbert6 ist offline
Anfänger
 
Registriert seit: Apr 2009
Alter: 33
Beiträge: 9
AW: Inhalt einer Variablen prüfen

http://de3.php.net/function.ereg

schau dir das mal an.

(oder http://de3.php.net/function.eregi für keine unterscheidung zwischen groß und kleinschreibung)

Geändert von norbert6 (17.05.2009 um 09:54:02 Uhr)
Mit Zitat antworten
  #6  
Alt 17.05.2009, 10:51:07
Benutzerbild von asipak4you
asipak4you asipak4you ist offline
Anfänger
 
Registriert seit: Jul 2006
Beiträge: 29
AW: Inhalt einer Variablen prüfen

Nein,

er sollte weiterhin preg_match nutzen:

Zitat:
Zitat von php.net
Hinweis: Die Funktion preg_match(), die eine zu Perl kompatible Syntax regulärer Ausdrücke verwendet, ist häufig die schnellere Alternative zu ereg().
Kleiner Tipp: Schreibe deinen Regulären Ausdruck so um, dass nur "erlaubte" Zeichen gefunden.

PHP-Code:
$frmsecure '/^[a-z0-9]*$/i'
if (
preg_match($frmsecure$frmbenutzer)) { 
  return 
"Keine unerlaubten Zeichen"
__________________
HalloPHP

Geändert von asipak4you (17.05.2009 um 10:54:23 Uhr)
Mit Zitat antworten
  #7  
Alt 17.05.2009, 14:47:43
Salamander89 Salamander89 ist offline
Anfänger
 
Registriert seit: Mar 2009
Alter: 34
Beiträge: 26
AW: Inhalt einer Variablen prüfen

Ok, danke für die Tipps. Jetzt klappts.
Vg salamander
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
checkboxen auf inhalt prüfen JuliusCaesar PHP Grundlagen 7 21.09.2007 17:49:19
Anfänger: inhalt von 2 Tabellen auf gleichheit prüfen shinbo-san MySQLi/PDO/(MySQL) 1 17.08.2004 19:01:52
Verzeichnis auf Inhalt prüfen Hanf24 PHP Grundlagen 16 03.02.2004 23:26:41
Prüfen, zahl bzw. buchstabe in EINER VARIABLEN Willy PHP für Fortgeschrittene und Experten 10 17.05.2003 09:03:49
Session Variablen Inhalt wird nicht angezeigt DiJae PHP Grundlagen 3 09.06.2002 13:07:17


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:36:43 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt