$_GET Filtern

Alice

Erfahrenes Mitglied
Hallo Leute.

Ich habe mir kurz einen einfachen GET-Filter programmiert.

PHP:
       // Erlaubte Keys
       $Get_WL1 = array('action', 'postid', 'threadid', 'page');

       // Arrays vergleichen
       $Get_WL2 = array_diff(array_keys($_GET), $Get_WL1);

       // Prüfen ob etzwas gefunden wurde
       if ($Get_WL2)
       {
           echo 'Nicht erlaubten Schlüssen gefunden: '.print_r($Get_WL2, 1).'<br />';
       }

Es funktioniert... ABER...

Wenn ich ein GET-Parameter mit "page" übergebe, wird der als "nicht erlaubt" erkannt.

ABER nicht als "page" sondern als "pagenumber".

HÖÖÖ?

Ich habe doch "page" übergeben und nicht "pagenumber"? Den Key "pagenumber" gibt es überhaupt nicht!
 
Verstehe die Frage nicht so recht. Das wirkt auf mich spontan richtig:

PHP:
<?php

$_GET = array(
    'page'       => 1,
    'pagenumber' => 1,
    'action'     => 'foo'
);

// Erlaubte Keys
$Get_WL1 = array('action', 'postid', 'threadid', 'page');

// Arrays vergleichen
$Get_WL2 = array_diff(array_keys($_GET), $Get_WL1);

// Prüfen ob etzwas gefunden wurde
if ($Get_WL2)
{
    echo 'Nicht erlaubten Schlüssen gefunden: '.print_r($Get_WL2, 1).'<br />';
}

// Nicht erlaubten Schlüssen gefunden: Array
// (
//     [1] => pagenumber
// )
// <br />

Edit: Die vielen Typos mal geschenkt. ;) Und bitte aussagekräftige Variablennamen verwenden. Dann musst du auch keinen Kommentar hinzufügen, wozu die gut sein sollen. ;)
 
Zuletzt bearbeitet:
Hallo.

Ich habe den Fehler gefunden, war aber im Kino und konnte es nicht "auflösen". :D

Sobald ich $_GET['page'] verwende, meint meine vBulletin-Software ein $_GET['pagenumber'] mit übergeben zu müssen.

Es liegt also an der Software...

PHP:
$Get_WL1 = array('action', 'postid', 'threadid', 'page', 'pagenumber');

... oder ich muss mir einen anderen "Key" aussuchen. :D
 

Neue Beiträge

Zurück