PHP: Get-Funktion ohne Variable?

eXecuTe

Registered User
Hallo!

Ich wollte mal fragen, was das für eine (Get??) Funktion ist, die ohne Variablenname in der Adressleiste etwas übergibt? So zum beispiel: www.test.de/?home

dann soll der mit ner if abfrage die home-seite includen. aber wie gestalte ich die jetzt? Wie bekomm ich das home von da oben runter? ^^

Greetz & Thx,
eXecuTe
 
PHP:
if(isset($_GET['home']))echo "HOME ist da";
   else echo "HOME nicht da";

Das ist einfach nur eine leere Variable.. mehr nicht.
 
WIe lautet die GEt Variable, die ich zuvor nicht im script angegeben habe?
Zum beispiel wie bei so nem diebspiel. Wenn man in der leiste www.klau.de/?nick eingibt, lädt der die variable also den nick in die php datei. aber wie bekomme ich den ?nick in eine variable? ich kann ja nicht einfach $_GET schreiben.

versteht ihr was ich meine? ^^
 
Ich bin nicht sicher, ob ich verstanden habe was du meinst :D
PHP:
foreach ($_GET as $key => $value)
{
    if($key == "action1")
    {
    	# tue irgendwas
    }
    elseif($key == "action2")
    {
    	# tue irgendwas
    }
    else
    {
    	# alles andere
    	$nick = $key;
    }
}

Gruß flyingoffice
 
In meinem Beispiel hat die Variable $nick alles, außer wenn "?action1" oder "?action2" angegeben wird. Du solltest Dir nochmal die PHP Doku reinziehen und verstehen. $_GET ist ein Array und dieses wird mit "foreach" durchlaufen. $key ist der Variablenname $value der Wert.

Gruß flyingoffice
 
Last edited by a moderator:
in $_SERVER['QUERY_STRING'] ist (beim Apache) der komplette Parameter String gespeichert.
Den muss man dann allerdings selber noch mit Stringfunktionen zurecht biegen, wie man ihn benötigt.
 
habs jetzt mal so gemacht und die home seite wird immernoch nicht beim start aufgerufen:

PHP:
foreach ($_GET as $key => $value)
		{
			 if($key == "")               //wenn www.test.de ohne ? variable aufgerufen wird
        		{include('home.php');}
			
   			 elseif($key == "home")               //wenn www.test.de/?home aufgerufen wird usw...
        		{include('home.php');}
				
  		     elseif($key == "anmelden")
     		    {include('register.php');}

		     elseif($key == "info")
     		    {include('info.php');}
					
		     elseif($key == "impressum")
     		    {include('impressum.php');}
  		else
   		{
        $nick = $key;
		include('test.php');
    	}
}
 
PHP:
if($key == "")
wird nicht funktionieren, denn wenn nichts in der URL übergeben wird, ist das $_GET array leer.

Versuch es mal mit
PHP:
$file = 'home.php'; # default wert
foreach ($_GET as $key => $value)
{
	if($key == "home")
    {
    	$file = 'home.php';
    }
    elseif($key == "anmelden")
	{
		$file = 'register.php';
	}
    elseif($key == "info")
	{
		$file = 'info.php';
	}
	elseif($key == "impressum")
	{
		$file = 'impressum.php';
	}
    else
    {
        $nick = $key;
        $file = 'test.php';
    }
} 
include($file);

Gruß flyingoffice
 
Ähm. Für sowas nimmt man üblicherweise case-Blöcke und nicht son Schmarn wie if ... elseif ... else...
 
tty0 said:
Ähm. Für sowas nimmt man üblicherweise case-Blöcke
Stimmt, allerdings bevorzuge ich trotzdem die if/elseif/else Blöcke, weil bei diesen mein Editor (Ultraedit) codefolding unterstützt und somit die Lesbarkeit vom Quellcode deutlich erhöht.

Gruß flyinoffice
 
Back
Top