Ergebnis 1 bis 11 von 11

Thema: PHP/MYSQL addslaches

  1. #1
    Master Sergeant Avatar von cyoshi
    Registriert seit
    28.04.2005
    Ort
    Münster
    Beiträge
    903

    Standard PHP/MYSQL addslaches

    Habe da mal eine Frage an die etwas erfahrenen php-Programmierer.
    Ihr kennt ja den addslashes Befehl um bestimmte Zeichen zu schützen.

    Nun habe ich nur mehre Seiten, wo 30 oder mehr EIngaben zu machen sind.
    Gibt's irgendeine Möglichkeit beim insert automatisch addslashes durchlaufen zu lassen, oder muss ich das für jede Variable einzeln daklarieren?
    Mein System:
    Gigabyte GA-K8NF-9
    AMD 3200+ Venice E6
    Arctic Silencer 64 Ultra TC
    4 * 1024MB Kingston
    ATI Radeon HD 4300
    128GB Samsung SSD 830
    NEC ND-3500AG
    iijama ProLite E2209HDS

  2. #2
    Master Gunnery Sergeant
    Registriert seit
    14.12.2005
    Beiträge
    1.760

    Standard

    Du kannst doch alle übergebenen Variablen als Einträge eines Arrays ansprechen. Also geh sie alle in einer Schleife durch.

  3. #3
    Master Sergeant
    Themenstarter
    Avatar von cyoshi
    Registriert seit
    28.04.2005
    Ort
    Münster
    Beiträge
    903

    Standard

    Das hört sich schonmal gut an, aber wie spreche ich sie denn an? Habe davon noch nie was gehört.
    Mein System:
    Gigabyte GA-K8NF-9
    AMD 3200+ Venice E6
    Arctic Silencer 64 Ultra TC
    4 * 1024MB Kingston
    ATI Radeon HD 4300
    128GB Samsung SSD 830
    NEC ND-3500AG
    iijama ProLite E2209HDS

  4. #4
    Master Gunnery Sergeant
    Registriert seit
    14.12.2005
    Beiträge
    1.760

    Standard

    'foreach' wird Dir helfen: http://de.php.net/foreach
    (Aber beachte, dass Du dabei nur auf einer Kopie der Variablen operierst.)

  5. #5
    Master Sergeant
    Themenstarter
    Avatar von cyoshi
    Registriert seit
    28.04.2005
    Ort
    Münster
    Beiträge
    903

    Standard

    Ok, aber wie heist denn mein array, das ich durchlaufen muss?
    So wie das Formular?
    Mein System:
    Gigabyte GA-K8NF-9
    AMD 3200+ Venice E6
    Arctic Silencer 64 Ultra TC
    4 * 1024MB Kingston
    ATI Radeon HD 4300
    128GB Samsung SSD 830
    NEC ND-3500AG
    iijama ProLite E2209HDS

  6. #6
    Master Gunnery Sergeant
    Registriert seit
    14.12.2005
    Beiträge
    1.760

    Standard

    $_POST oder $_GET, je nachdem wie Du die Daten an die PHP-Seite übergeben hast.
    http://de.php.net/manual/de/language...predefined.php

    http://de.php.net/manual/de/reserved...variables.post
    http://de.php.net/manual/de/reserved....variables.get

    Also z.B. wenn Du folgende Seite aufrufst: test.php?name=hanswurst
    dann enthält $_GET ['name'] den Wert 'hanswurst'.

  7. #7
    Gunnery Sergeant
    Registriert seit
    30.10.2005
    Beiträge
    464

    Standard

    hat $_POST und $_GET nicht die majic quotes?
    $signatur

  8. #8
    Private Avatar von mikelike
    Registriert seit
    22.02.2005
    Ort
    Rot am See
    Beiträge
    43

    Standard

    Zitat Zitat von Nemesis
    hat $_POST und $_GET nicht die majic quotes?
    kommt auf deinen webspace-provider an, meistens jedoch schon, also ist addslashes (wahrscheinlich) nicht erforderlich...

  9. #9

    Standard

    Ah PHP mein Fachgebiet es ist schonmal loblich, das du deine Eingabevariablen absichern willst, deswegen will ich dir noch ein paar Fortgeschritten technicken zeigen:


    Zuerst löschst du alle Variablen die eventuell per Register Globals=on geliefert wurden.
    PHP-Code:
    // register globals hack, remove all global input vars
    if( @ini_get'register_globals' ) )
    {
        foreach ( 
    $_REQUEST as $k )
        {
            unset( $
    $k );
        }



    Ein weitere Trick bei Formularen in Html ist, das man auch dort Arrays verwenden kann bsp:
    Code:
    <input name="vars[name]"
    Inerhalb von PHP würdest du dann mittels $_POST['vars']['name'] auf diese Variable zugreifen (wenn du denn Post zum übermitteln der Daten nimmst ansonsten $_GET['vars']['name']).
    Nun kannst du ganz einfach diese Variablen überprüfen mittels
    PHP-Code:
    foreach( $_POST['vars'] as $k => $v )
    {
        
    $_POST['vars'][ "$k] = trim(addslashes($v));


    Denn im Normalfall wirst du wohl kaum alle Eingabevariablen escapen wollen oder , desweiteren kannst du so z.B. sehr einfach mit überprüfen ob leere Felder vorhanden sind.


    Achso noch was am Rande, falls das ganze in eine Mysql Datenbank geschrieben werden soll, verwende anstelle von addslashes() mysql_real_escape_string().

  10. #10
    First Sergeant Avatar von weebi
    Registriert seit
    10.01.2006
    Beiträge
    1.131

    Standard

    Zitat Zitat von daniel987
    PHP-Code:
    foreach( $_POST['vars'] as $k => $v )
    {
        
    $_POST['vars'][ "$k] = trim(addslashes($v));

    Ich würde da erstmal prüfen, ob $_POST['vars'] überhaupt ein array ist, denn sonst kann das ganze schnell nach hinten losgehen

    Aber der Thread ist auch schon etwas alt.

  11. #11

    Standard

    Zitat Zitat von weebi
    Ich würde da erstmal prüfen, ob $_POST['vars'] überhaupt ein array ist, denn sonst kann das ganze schnell nach hinten losgehen

    Aber der Thread ist auch schon etwas alt.
    In meinem Script mache ich das auch, aber es hätte hier der Übersicht ein wenig geschadet wenn ich das auch noch dazugeschrieben hätte. Wie man das ganze letztendlich implentiert variert ja sowieso ziemlich.

Aktive Benutzer

Aktive Benutzer

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

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •