Varieblen in URL geht bei PHP5 nicht mehr

djnelly

Erfahrenes Mitglied
Hallo..

ich habe folgendes Script unter PHP5:
PHP:
<?php

if(!isset($page) { $page = "5"; }

if($page == "1") { echo "Page: 1"; }
if($page == "2") { echo "Page: 2"; }
if($page == "3") { echo "Page: 3"; }
if($page == "4") { echo "Page: 4"; }
if($page == "5") { echo "Page: 5"; }
?>

Das Script gibt keine Ausgabe:
http://web12.webbox1135.server-home.net/test_page.php

Kann mir einer sagen, warum das nicht geht?

Hier ein Auszug aus phpinfo():
Code:
Configure Command  '../configure' '--prefix=/usr' '--datadir=/usr/share/php5' '--mandir=/usr/share/man' '--bindir=/usr/bin' '--with-libdir=lib64' '--includedir=/usr/include' '--sysconfdir=/etc/php5/apache2' '--with-config-file-path=/etc/php5/apache2' '--with-config-file-scan-dir=/etc/php5/conf.d' '--with-exec-dir=/usr/lib64/php5/bin' '--enable-magic-quotes' '--enable-libxml' '--enable-session' '--with-mm' '--with-pcre-regex' '--enable-xml' '--enable-simplexml' '--enable-spl' '--enable-safe-mode' '--disable-debug' '--enable-memory-limit' '--enable-inline-optimization' '--enable-zend-multibyte' '--disable-rpath' '--with-apxs2=/usr/sbin/apxs2' '--disable-all' '--disable-cli'

Danke
 
register_globals wird wohl off sein. Entsprechend solltest Du mit den Arrays $_GET und $_POST (und so weiter) arbeiten, je nachdem woher die Daten kommen. Da Du hier von Uebergabe per URL sprichst musst Du mit $_GET arbeiten.
Such im Forum einfach mal nach register_globals, da wirst Du so einiges finden koennen.
 
Hallo...

dann wäre doch laut deiner Aussage das Script so richtig:

PHP:
<?php

if(!isset($_GET(page) { $page = "5"; }

if($_GET(page) == "1") { echo "Page: 1"; }
if($_GET(page) == "2") { echo "Page: 2"; }
if($_GET(page) == "3") { echo "Page: 3"; }
if($_GET(page) == "4") { echo "Page: 4"; }
if($_GET(page) == "5") { echo "Page: 5"; }
?>

Oder? Denn es geht trotzdem nicht

register_globals steht auf Off
 
$_GET ist ein Array und keine Funktion. Wenn dann so:
PHP:
<?php
$page = !empty($_GET['page']) ? $_GET['page'] : "";

if($page == 1) echo "Page: 1";
if($page == 2) echo "Page: 2";
if($page == 3) echo "Page: 3";
if($page == 4) echo "Page: 4";
if($page == 5) echo "Page: 5";
?>
 
Hallo...

eigentlich ist $_GET doch klar. Weiß auch nicht wie ich das geschrieben habe.
Da ich noch nicht sicher programmiere, schreibe ich noch viel im kompletten Stil. Nicht verkürzt.

Kannst du mir noch kurz diese Zeile erläutern:
PHP:
$page = !empty($_GET['page']) ? $_GET['page'] : "";

Der Anfang ist klar. Wenn $_GET Page keinen Wert enthällt. Wie erörter ich das Fragezeichen und den Doppelpunkt?

Danke
 
Das ist sozusagen eine verkürzte [phpf]if[/phpf]-Bedingung.

Die ausgeschrieben Version würde so aussehen:

PHP:
$page = !empty($_GET['page']) ? $_GET['page'] : "";

if(!empty($_GET['page']) {
  $page = $_GET['page'];
} else {
  $page = "";
}

Grob gesagt also:

Code:
Bedingung ? true : false
 
Zurück