Question

Mon site dispose d'une bibliothèque de jeux, de nations, des scénarios de jeux, etc.

library.php reçoit un type=___ & id=___

par exemple library.php?type=scenario&id=ABCD001

library.php enregistre le id à une variable de session et charges comprennent un approprié pour le type

Tout cela fonctionne dandy. Maintenant, je voulais donner à mes utilisateurs la possibilité de tirer un scénario aléatoire. Pour ce faire, j'ai ajouté une id spéciale à la logique au sein lib-scenario.php (include) de telle sorte que si library.php?type=scenario&id=random compte tenu de l'inclure sait exécuter une requête alternative pour un enregistrement au hasard plutôt que pour la id réelle

Cela fonctionne aussi dandy ... à moins que quelqu'un touche le bouton Random Scenario deux + fois de suite, et décide que le scénario aléatoire précédent était beaucoup plus cool, je veux aller retour pour cela.

Parce que l'adresse http est toujours directory/library.php?type=scenario&id=random peu importe combien de fois vous cliquez sur Random Scenario, dès que vous cliquez en arrière, vous serez redirigé vers la dernière page avec une autre adresse que vous avez visité.

Donc, si vous commencez à la page Home, et appuyez sur Random Scenario 35 fois, décider alors la 34e était un ce que vous vouliez et cliquez BACK, vous serez mis en arrière sur la page Home.

Je dois admettre que ce ne fut pas un problème, je l'avais prévu. Un de mes testeurs a été le premier à avoir l'envie de sauvegarder dans le flux de scénario au hasard et nous sommes ici.

Comment puis-je ajouter des fonctionnalités de sauvegarde à mon script?

Était-ce utile?

La solution

Faites le bouton « scénario aléatoire » lien simplement à un identifiant de scénario réel (mais au hasard). Vous aurez sans doute de construire cela avec une requête SQL pour obtenir tous les id de vos scénarios.

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

Bouton:

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

Si votre identifiant de scénario sont de tous les numéros consécutifs, vous pouvez simplement utiliser ceci:

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

Autres conseils

vous pouvez résoudre ce problème en redirigeant vers l'URL canonique pour le scénario, i.e. .: id = réoriente aléatoires id = A92831 ou tout ce qui a été sélectionné. l'URL finale sera enregistrée dans l'histoire, plutôt que l'id = url aléatoire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top