• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Ausgabe in PHP

freakXHTML

Mitglied
Hallo,

ich rufe meinen localhost so auf:

http://localhost/?var=<s

Es wird folgender PHP - Code aufgerufen:

PHP:
<?
    $url = $_GET['var'];
    echo $url;
?>

Warum wird nicht "<s" ausgeben, sondern gar nichts? Wenn ich das s entferne, so wird alles richtig ausgegeben, nämlich nur "<".

Danke
 
Nur mal eine Vermutung, vielleicht ist das ein XSS-Schutzmechanismus.
Versuch mal: %3Cs statt <s.
 
wieso möchtest du eigentlich < mit als parameter übergeben? das kannst du doch auch in PHP vor die $_GET variable packen
 
ja, das war nur ein Test :)

Noch eine Frage zu einem regulären Ausdruck. Warum wird "ab" hier nicht gematched?

PHP:
$re = '/^ab/'; //ab wird nicht gematched
    
    if(preg_match($re, $_GET['var'])) {
        echo "FOO";

    }
 
was möchtest du denn genau erreichen?
was hast du bis jetzt und an welcher stelle kommst du nicht weiter um dein ziel zu erreichen?
 
Ich will erreichen, dass FOO ausgegeben wird. Obwohl ich localhost?var=ab aufrufen, ist dies aber nicht der Fall. Laut des regulären Ausdrucks müsste ab aber gematched werden.
 
dein wahres ziel ist aber nicht FOO auszugeben, das ist wieder dein test.

ist der inhalt von $_GET['var'] auf einige wenige "fest definierte" werte beschränkt oder kann da alles drin stehen?
 
ja, ich spiele halt nur mit regulären ausdrücken rum. Es sollte eigentlich alles in $_GET stehen. Mein komplettes Script sieht so aus:

PHP:
    $re = '/^ab/';
    
    if(preg_match($re, $_GET['var'])) {
        echo "FOO";

    }
    else  {
        echo "Bloop";
    }

?>

warum funktioniert das nicht?
 
bist also am php lernen und beschäftigst dich mit regex?
dann ließ tutorials dazu .. gibt so einige die sich damit beschäftigen
 
Zurück
Oben