tutorials.de-Buchverschenkaktion 08/2010
+ Auf Thema antworten
  1. #1
    Benutzerbild von yaslaw
    yaslaw yaslaw ist offline <will keinen Titel> yaslaw ist berühmt wie kein Zweiter yaslaw ist berühmt wie kein Zweiter yaslaw ist berühmt wie kein Zweiter yaslaw ist berühmt wie kein Zweiter yaslaw ist berühmt wie kein Zweiter yaslaw ist berühmt wie kein Zweiter yaslaw ist berühmt wie kein Zweiter yaslaw ist berühmt wie kein Zweiter yaslaw ist berühmt wie kein Zweiter yaslaw ist berühmt wie kein Zweiter yaslaw ist berühmt wie kein Zweiter
    tutorials.de Premium-User
    Registriert seit
    Dec 2007
    Ort
    Winterthur
    Beiträge
    2.012
    Mittels post oder get werden viele Information an das PHP-Script übergeben. Diese Variablen sollten aber nicht so weiter verwendet werden. AM besten man überträgt die Inhalte in einzelne Variablen. Man sollte auch nur die Inhalte übernehmen die man braucht und erwartet.

    Jedesmal alles von Hand auszuprogrammieren kann relativ anstrengend werden
    PHP-Code:
    $a $_POST['a'];
    $c $_POST['c']; 
    nun, mittels einfacher Array-Funktionen kann man sich diesen Schritt automatisieren
    Code PHP:
    1
    2
    3
    4
    5
    
    //Liste aller erlaubten postitems
    $allowedPost = array('c', 'b');
        
    //Variablen zu allen erlaubten postitems erstellen
    extract(array_intersect_key($_POST, array_flip($allowedPost)));

    Hier hab ich es mal zu einem Beispiel erweitert, das man gleich ausprobieren kann
    Code PHP:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    <?php
        // Diese Zeile simuliert die Post-Übergabe eines Formulars
        $_POST = array('a'=>11, 'b'=>22, 'c'=>33);
        
        //Liste aller erlaubten postitems
        $allowedPost = array('c', 'b');
        
        //Variablen zu allen erlaubten postitems erstellen
        extract(array_intersect_key($_POST, array_flip($allowedPost)));
        
        //Testausgabe um dieses Script zu testen
        echo "a: {$a}";
        echo "b: {$b}";
        echo "c: {$c}";
    ?>
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Formatiert den Code (auch SQL-Statements) sauber - dann kann man ihn auch lesen (Tabulatoren!)
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformartierten Code zu lesen
    item: Für Gastaccounts - erwarte nicht dass ich dir viel Code schreibe, denn ich rechne nicht damit dass du später hier anderen Usern helfen wirst

  2. #2
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.457
    Blog-Einträge
    5
    Zitat Zitat von yaslaw
    Diese Variablen sollten aber nicht so weiter verwendet werden.
    Wieso nicht?

    Zitat Zitat von yaslaw
    AM besten man überträgt die Inhalte in einzelne Variablen.
    Dieses Vorgehen finde ich nur bedingt empfehlenswert. Wird weiter unten im Quellcode die Variable $a verwendet, ist die Herkunft ihres Inhalts nicht unmittelbar klar. Dadurch kann man leicht übersehen, dass es sich um eine Benutzereingabe handelt und auch als solche behandelt werden muss (Überprüfung auf gültige Syntax, unerlaubte Zeichen etc.).

    Grüße,
    Matthias
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

  3. #3
    Benutzerbild von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied Schnitzel Sven Mintel hat die Renommee-Anzeige deaktiviert
    tutorials.de Premium-User
    Registriert seit
    Aug 2003
    Ort
    Prenzlberg
    Beiträge
    18.128
    Blog-Einträge
    38
    Moin,

    mal wieder ein guter Zeitpunkt, meinen Libling filter_input_array() zu promoten

    Er ermöglicht dies alles auch, zusätzlich bietet er mannigfaltige Validierungs-und Reinungsmöglichkeiten, und hat obendrein noch einen nicht zu unterschätzenden Vorteil: er liesse sich von deinem simulierten $_POST nicht beeindrucken, weil er merkt, dass dieser Array nicht vom User kommt.

    Eine sichere Trennung zwischen Skript-und GPCS-Variablen ist somit kein Problem, sofern man es sinnvoll anstellt.

Ähnliche Themen

  1. Weiterleitung mit POST-Variablen
    Von Typh00n im Forum PHP
    Antworten: 9
    Letzter Beitrag: 09.01.10, 11:05
  2. Antworten: 6
    Letzter Beitrag: 01.06.06, 09:29
  3. $POST und Variablen
    Von MatMagic im Forum PHP
    Antworten: 2
    Letzter Beitrag: 07.09.05, 12:48
  4. Post - Variablen & Vergleich
    Von schrenzor im Forum PHP
    Antworten: 2
    Letzter Beitrag: 21.07.05, 23:01
  5. GET- bzw. POST-Variablen entfernbar?
    Von galgenjoe im Forum PHP
    Antworten: 1
    Letzter Beitrag: 23.05.05, 16:13

Lesezeichen

Lesezeichen