Prob beim Variablen übergeben via URL
Severin
- php
Hallo Forumbenutzer,
ich habe ein kleines Problem, dass ich einfach so nicht in den Griff kriege. Wäre sehr froh über eine kleine Hilfestellunge...
Folgendes PRob:
Ich übergebe in der URL für meine Seiten jeweils eine Variable $Site, damit ich den Seiteninhalt dynamisch includieren kann.
So in der Art www.meinepage.ch/index.php?site=startseite
Nun kann ich mit der neuen PHP-Version nicht mehr direkt auf die Variable $site zugreiffen.
Ich mach das also mit...
$blub = ($_GET['site']);
include ('./includes/'.$blub.'.php');
Das funzt soweit so gut...
Wenn www.meinepage.ch/index.php?site=startseite geladen wird includiert er die Startseite:)
Wenn aber die Seite www.meinepage.ch/index.php aufgerufen wird fällt das ganze logischerweise auf die Schnauze:(
Gleich vorneweg... ich will kein HTML Redirect machen (find ich unschön)
Hat jemand von euch eine gute Idee wie ich dieses Prob schön lösen könnte?
Wäre sehr dankbar..
Grüesschen von einem Neuling...
servus,
das geht eigentlich ganz einfach, undzwar brauchst du einen default wert. in deine index.php schreibst du also nur folgendes rein:
<?php
switch($go)
{
case "home":
include "home.php";
break;
case "seite2":
include "seite2.php";
break;
default:
include "home.php";
break;
}
?>
das wars auch schon...
ciao fritz
hab was vergessen,
für den fall dass du die variabel "site" weiter benutzen möchtest dann natürlich anstatt:
<?php
switch($go)
{
dannn
<?php
switch($site)
{
gruß fritz
hab was vergessen,
für den fall dass du die variabel "site" weiter benutzen möchtest dann natürlich anstatt:
<?php
switch($go)
{dannn
<?php
switch($site)
{gruß fritz
Hallöchen Fritz,
das mit dem Switch ist nicht so ne verkehrte Idee, aber mein Prob ist, dass ich mit
$blub = ($_GET['site']);
Ja erstmal die Variable site aus der Url abfragen muss. Und dabei bekomme ich eine Fehlermeldung. Mit der Swichlösung includiert er zwar die richtige Datei, bekommt aber trotzdem eine Fehlermeldung!
Der Mist ist einfach, dass man Variablen die man direkt über die URL übergibt nicht mehr einfach mit $Variable ansprechen kann.
z.B. wenn du eine Seite aufrufst
www.mypage.ch/test.php?site=startseite
und in dieser Seite dann ein Echo Befehl steht
echo ($site);
dann gibt das bei der neusten PHP Version nix zurück!
Bei früheren Versionen hätte man schön 'startseite' als Ausgabe bekommen.
Vielleicht eine andere Idee wie ich das hinbekommen könnte?!?!
Ich dreh im Roten:(
use perl;
Hi Eternius,
use perl;
solche Antworten bringens nicht!
Ich entwickle z.B. neben PHP auch in Perl, kenne sowohl Vor- als auch Nachteile der Sprachen.
Was soll in Perl da so viel einfacher sein? In PHP vermisse ich von Perl eigentlich nur die Quote-Befehle (vor allem qq) und die Möglichkeit bei heredoc-Blöcken das Ende-Token einrücken zu können...
MfG
Danny
Hi Serverin
echo ($site);
gibt das bei der neusten PHP Version nix zurück!
Und das ist auch gut so! Auf die alte Weise können sonst nämlich schnell Probleme entstehen, falls eine globale Variable versehentlich überschrieben, bzw. von Hackern absichtlich injeziert wird.
Es ist eigentlich ganz einfach, Du schreibst jetzt
switch($_GET['site']), bzw. echo ($_GET['site'])
Innerhalb einer umfangreichen Funktion kannst Du der Einfachheit halber auch erst mit $site = $_GET['site'] die Variable in den lokalen Bereich kopieren und dann immer mit dieser Kopie in $site arbeiten.
MfG
Danny
hi,
mein Prob ist, dass ich mit
$blub = ($_GET['site']);
Ja erstmal die Variable site aus der Url abfragen muss. Und dabei bekomme ich eine Fehlermeldung. Mit der Swichlösung includiert er zwar die richtige Datei, bekommt aber trotzdem eine Fehlermeldung!
logisch, du versuchst ja in dem fall auf eine variable zuzugreifen, die es gar nicht gibt.
du könntest jetzt entweder das error reporting level runterschrauben, so dass PHP dich nicht mehr mit dieser meldung "nervt" - das wäre aber nicht allzu empfehlenswert.
sauber hingegen ist es, wenn du zunächst abfragst, ob eine variable namens $_GET['site'] existiert - schau dir dazu isset() und empty() im manual an.
gruss,
wahsaga