Tom: Wie ist es besser? (wegen $_GET & Co.)

Moin!

Wie ist es besser damit es bei unterschiedlichen PHP-Versionen geht, so:

<?php
if (isset($_GET['geklickt'])) echo "geklickt!"; else echo "<a href="test.php?geklickt=true">hier klicken</a>";
?>

...oder so:

<?php
if (isset($_GET['geklickt'])) $geklickt = $_GET['geklickt'];
if (isset($geklickt)) echo "geklickt!"; else echo "<a href="test.php?geklickt=true">hier klicken</a>";
?>

$_GET, $_POST & Co. gibt es ja erst seit PHP 4.1. Die zweite Variante würde aber auch mit älteren PHP-Versionen laufen, wenn register_globals (wie es da ja noch war) ON wäre, oder? Also lieber so schreiben?

Danke!
TOM

  1. Hallo Tom,

    $_GET, $_POST & Co. gibt es ja erst seit PHP 4.1. Die zweite Variante würde aber auch mit älteren PHP-Versionen laufen, wenn register_globals (wie es da ja noch war) ON wäre, oder? Also lieber so schreiben?

    Nein. Wer immernoch PHP 4.0.x einsetzt, handelt meiner Ansicht nach gemeingefährlich, denn es gab einige Sicherheitslücken, die erst in neueren Versionen gefixed worden sind. Daher kannst Du getrost $_GET nehmen. Außerdem dürfte der Code viel logischer erscheinen, wenn Du überall $_GET verwendest, denn dann musst Du Dich nie fragen, woher diese Variable plötzlich herkommt, wenn Du den Code nach einiger Pause wieder sichtest.

    Viele Grüße,
    Christian

    1. Moin!
      Danke für die schnelle Antwort!
      TOM