Frage

Meine Website verfügt über eine Bibliothek voller Spiele, Nationen, Spiel-Szenarien etc.

library.php gegeben ein type=___ & id=___

zum Beispiel library.php?type=scenario&id=ABCD001

library.php speichert die id zu einer Session-Variablen und lädt ein zum type entsprechenden umfassen

Das alles funktioniert nur Dandy. Nun wollte ich meine Benutzer die Möglichkeit, Ziehen eines zufälligen Szenario geben. Um dies zu erreichen, habe ich eine besondere id an die Logik innerhalb lib-scenario.php (das sind), so dass dann gegeben, wenn library.php?type=scenario&id=random die umfassen kennt eine alternative Abfrage für einen zufälligen Datensatz zu laufen, anstatt für die eigentliche id

Das funktioniert auch nur Dandy ... es sei denn, jemand die Random Scenario Taste zwei + Mal in Folge trifft, und beschließt, dass die vorherige Zufallsszenario Art und Weise kühler wurde, ich will stark gehen < > zurück , um das.

Da die http-Adresse immer egal directory/library.php?type=scenario&id=random, wie oft Sie Random Scenario klicken, sobald Sie klicken zurück auf die letzte Seite mit einer alternativen Adresse genommen werden werden Sie besucht haben.

Wenn Sie also auf der Home Seite beginnen, und Hit Random Scenario 35 mal, dann die 34. man entscheiden, war das, was man wollte und BACK klicken Sie wieder auf die Home Seite gestellt werden.

Ich muss zugeben, das war kein Problem, das ich erwartet hatte. Einer meiner Tester war der erste, den Drang zu Back-up im Zufalls Szenario Strom haben, und hier sind wir.

Wie kann ich Backup-Funktionalität zu meinem Skript?

War es hilfreich?

Lösung

Machen Sie die 'Random Scenario' Button Link einfach auf eine tatsächliche (aber zufällig) Szenario-ID. Sie werden wahrscheinlich diese mit einer SQL-Abfrage erstellen müssen alle IDs Ihrer Szenarien zu erhalten.

$result = mysql_query("SELECT id FROM scenarios");
while ($row = mysql_fetch_row($result)) {
    $ids[] = $row[0];
}
$randomid = array_rand($ids);

Button:

<a href="directory/library.php?type=scenario&id=<?php echo $randomid; ?>Random Scenario</a>

Wenn Ihr Szenario-IDs alle aufeinander folgenden Zahlen sind, können Sie einfach verwenden Sie diese stattdessen:

$randomid = rand($min, $max);

Andere Tipps

Sie können dieses Problem lösen, indem für das Szenario auf die kanonische URL umleiten, d.h .: id = zufällige Umleitungen id = A92831 oder was auch immer ausgewählt wurde. die endgültige URL wird in der Geschichte gespeichert werden, anstatt die id = zufällige URL.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top