2012-04-04 5 views
0

Datenbank Zeilen-IDs die URLs wie diese gebunden sind:Wie kann ich einen Link laden eine zufällige PHP ID auf der Seite?

Die Seite für Reihe 2 wird site.com/index.php?id=2

Wenn ich index.php manuell aktualisieren Es wird ein zufälliger Datensatz angezeigt, aber natürlich wird die Datensatz-ID nicht in der Adressleiste angezeigt.

Gibt es eine Möglichkeit, einen Link einen zufälligen Datensatz anzuzeigen, während die ID-Änderung in der Adressleiste angezeigt wird?

Vielen Dank für Ihre Hilfe!

Antwort

1

Anstatt nur den zufälligen Datensatz anzuzeigen, wählen Sie die ID des Datensatzes und führen Sie eine Umleitung auf die Version, die die ID zeigt.

$randomId = // whatever method you use to choose it 
header("Location: http://site.com/index.php?id=$randomId"); 
+0

Kiitoksia, Juhana. Dies funktioniert gut (weil eine zufällige ID schließlich in der URL-Leiste angezeigt wird), verursacht aber eine Umleitungsschleife (310), wenn ich sie ausführe und die Seite nicht geladen wird. Weißt du, wie das zu korrigieren ist? Vielen Dank! – karhu

+1

Stellen Sie sicher, dass Sie die Weiterleitung nur ausführen, wenn die ID nicht angegeben ist ('! Isset ($ _GET ['id'])'). – JJJ

+0

Brilliant. Es funktioniert jetzt. Danke für all deine Hilfe! – karhu

1

Try this:

$randomId = rand(0,100); // if let's say your post IDs go from 0 to 100 
header("Location: http://www.yourdomain.com/post.php?id=$randomId"); 
1

es mehr Möglichkeiten, dies zu tun.

Sie könnten Juhana sagte, mit the header function. Dadurch werden Sie durch Pagereloading auf eine andere Seite weitergeleitet.

Sie könnten HTML5 verwenden, um die Adressleiste ohne Pagereloading zu ändern, indem Sie window.history und jQuery for AJAX verwenden.

Die sicherste Option ist die PHP-Header-Funktion. Denken Sie daran, nichts vor dem Header zu drucken/zu wiederholen. Falls Sie immer noch "Header bereits gesendet" erhalten, verwenden Sie ob_clean()