2016-11-11 3 views
2

Gibt es eine Möglichkeit, einen $ _GET Parameter mit bestimmtem Wert auf Open von "index.php" zu setzen

Zum Beispiel vorbelegen: Die URL Wesen =“.../index.php? somePara = Wert "

ich versucht, mit:

header("Location: index.php?page=1"); 
exit(); 

Aber ich habe einen Fehler von

" localhost umgeleitet Sie zu oft . "

Edit:
Danke, Qirel, das funktioniert, muss ich es, weil ich Variablen haben, die $ _GET Parameter gebunden sind, so, anstatt sie der Einstellung auf NULL und dann an ihnen vorbei Wert nach einem if ($ _GET) check -> damit sie nicht den Fehler undefined bekommen, habe ich mich gefragt, wie Wert beim Öffnen der Datei übergeben wird.

+2

'if (leer ($ _ GET ['page'])) {header (..); Ausfahrt; } ', obwohl es ziemlich sinnlos erscheint, warum brauchst du das? Wenn Sie diesen Parameter benötigen, weisen Sie ihn einfach einer Variablen zu, wenn im Array GET kein Wert vorhanden ist. – Qirel

+0

Leerzeichen entfernen – devpro

+0

Es ist unklar, was Sie fragen. Das Problem besteht nicht darin, einen solchen Wert/Parameter/Argument zu "setzen". Die Fragen sind _when_ und _where_, die Sie festlegen möchten. Bitte fügen Sie Details zu Ihrer Frage hinzu. Unter Ihrer Frage befindet sich ein Link zum Bearbeiten. _Benutze es._ – arkascha

Antwort

0

Das Problem ist, dass Sie entweder keine Bedingung haben, oder Sie haben, aber es ist in diesem Anwendungsfall immer wahr.

Ihre Frage erwähnt die Bedingung:

Gibt es eine Möglichkeit, einen $ _GET Parameter mit bestimmtem Wert auf Open von "index.php" zu setzen

aber Ihr Code nicht enthält dass:

header("Location: index.php?page=1"); 
exit(); 

So können Sie diese in einen Zustand wickeln:

if (isset($_GET["certain"]) && ($_GET["certain"] === "value")) { 
    header("Location: index.php?page=1"); 
    exit(); 
} 

Beachten Sie, dass der Zeichenfolgenparameter headercertain nicht enthält, da dies zu einer Endlosschleife führen würde. Sie können auch in der if überprüfen, ob es einen page Parameter gibt, wenn Sie beabsichtigen, dort certain aufzunehmen.

Ich habe den Kommentar gelesen, der vorgeschlagen, den entsprechenden Schlüssel von $_GET auf den erwarteten Wert anstelle einer Umleitung zu setzen, aber das ist nicht immer eine Option, da Sie eine URL verschönern oder sogar auf eine andere Website umleiten möchten Seite.

0

Wenn in meinem Code $_GET Parameter verwendet werden, setze ich immer einen Standardwert für diese Variablen, da Sie nie sicher sind, ob sie gesetzt sind.

$name = isset($_GET['name']) ? $_GET['name'] : 'Guest'; 

// This is the shorter version for 
if (isset($_GET['name'])) { 
    $name = $_GET['name']; 
} else { 
    $name = 'Guest'; 
} 

Ihre Methode zur Lösung Ihres Problems bringt Sie in eine Endlosschleife. Sie könnten jedoch tun:

if (!isset($_GET['page'])) { 
    header("Location: index.php?page=1"); 
    exit; 
}