Quick-Navigation Problem

Wenn Du den Code so uebernommen hast wie auf dieser Page, oder das Dein Code ist, dann ist der voller Fehler.
Zum Beispiel wird einmal von $HTTP_GET_VARSE und einmal von $HTTP_GET_VARS gesprochen. Da sollte es offensichtlich sein, dass da was nicht richtig ist.
Ausserdem benutzt man "heutzutage" $_GET anstelle von $HTTP_GET_VARS.

Im header() ist auch was schief. Das steht location:newpase.
Zuvor wird mit der Variable $newpage gearbeitet. Also auch ziemlich offensichtlicher Fehler.
Besser waere da wohl:
PHP:
header("Location:".$newpage);

Das exit() ist ueberfluessig.

Weiterhin kann das Script nicht funktionieren, da vor header() bereits eine Ausgabe stattfindet.

Und zu guter Letzt fehlt der Button zum Absenden der Form.
 
Die Funktion urlcode() ist mir unbekannt.


@reptiler.... das exit() ist nicht unbedingt überflüssig.
PHP-Skripte werden weiter abgearbeitet, auch wenn der Client schon vondannen gezogen ist.
Im speziellen Fall ist das nicht weiter schlimm, in anderen Situationen kann das aber fatale Auswirkungen haben.
 
@Sven:
Die Funktion urlcode() hab ich doch glatt noch uebersehen. ;)

Okay, das mit dem exit(); kann man machen, ist hier aber, wie Du selbst sagst, nicht wirklich noetig.

Weiter unten wird dann aber auch urlencode() eingesetzt.
Wie gesagt, der Code ist voll mit offensichtlichen Fehlern, und diese sollten selbst einem Laien auffallen.

Nachtrag: Ach ja, <option>-Tags sollten im Sinne des W3C-Standards auch mittels </option> geschlossen werden, auch wenn das im Sinne der Funktionalitaet nicht zwingend notwendig ist.
 
Zuletzt bearbeitet:
Danke für die ausführliche Fehlerbetrachtung... ich muss zugeben die Fehler kommen teilweise durch mich, da ich etwas zu schnell getippt habe. Ich hab aber trotzdem noch ein paar Fragen: (update : http://nopaste.php-q.net/143600 )

1.
Was bedeutet das "<option value=\"%s\">%s\r\n"
2. Wie mach ich so einen Submit Button und wo an dieser Stelle schreib ich ihn rein?
 
Zuletzt bearbeitet:
Bitte poste Deinen Quelltext doch hier. Damit machst Du es uns etwas leichter auf Dein Problem einzugehen.

Den Submit-Button musst Du im HTML-Teil in die Form setzen.
Zu Forms und dementsprechend auch Buttons findest Du hinreichend Informationen bei SelfHTML.
%s wird bei printf() als Platzhalter genutzt um nach dem eigentlichen Text die Variablen anzuhaengen die an Stelle des %s eingesetzt werden sollen.

Beispiel:
PHP:
printf("Anzahl User in der Datenbank: %s<br>",$num_users);
Dabei wird zwischen : und<br> die Variable $num_users eingefuegt.

Weitere Informationen zu printf() und dessen Platzhaltern findest Du auf php.net.
 
So weit hab ich es jetzt durch deine Hilfe gebracht. Jedoch wird beim click auf Go! nicht wirklich das erreicht was ich will.


PHP:
<?php
if (isset($_GET ["p_rurl"]))
{
	$newpage = urldecode($_GET ["p_rurl"]);
	header("Location: newpage");
	exit();
}
?>
</head>

<body>
<form action="quicknav.php" method="get">
<select name="p_rurl">
<?php
	$links = array(
		"PHP - Homepage" => "http://www.php-homepage.de",
		"PHP - Center" => "http://www.php-center.de",
	);

	foreach($links as $title => $url)
	{
		printf ("<option value=\"%s\">%s\r\n",
			urlencode ($url), $title);
	}
?>

</select>
<input type="submit" value="Go!">
</form>
 
Was passiert denn wenn Du auf Go! klickst?
Gibt es vielleicht eine Fehlermeldung?

Wird zumindest die Seite abgeschickt und neu geladen?
 
Ich wuerde das eh ueber POST anstatt ueber GET machen.

Probier mal das hier:
PHP:
<?php 
if (isset($_POST ["p_rurl"])) 
{ 
    $newpage = $_POST["p_rurl"]; 
    header("Location:".$newpage); 
    exit(); 
} 
?> 
</head> 

<body> 
<form action="quicknav.php" method="post"> 
<select name="p_rurl"> 
<?php 
    $links = array( 
        "PHP - Homepage" => "http://www.php-homepage.de", 
        "PHP - Center" => "http://www.php-center.de", 
    ); 

    foreach($links as $title => $url) 
    { 
        printf ("<option value=\"%s\">%s\r\n", $url, $title); 
    } 
?> 

</select> 
<input type="submit" value="Go!"> 
</form>
 
Zurück