1 votes

php get, les enregistrements aléatoires, et le bouton retour

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

library.php se voit attribuer un type=___ & id=___

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

library.php sauvegarde le id à une variable de session et charge un include approprié pour l'utilisateur. type

Tout cela fonctionne à merveille. Maintenant, je voulais donner à mes utilisateurs la possibilité d'afficher un scénario aléatoire. Pour ce faire, j'ai ajouté une fonction spéciale id à la logique de l'intérieur lib-scenario.php (l'inclure) de telle sorte que si l'on donne library.php?type=scenario&id=random l'inclusion sait qu'il faut exécuter une autre requête pour un enregistrement aléatoire plutôt que pour l'enregistrement réel. id

Cela fonctionne aussi très bien... sauf si quelqu'un frappe le Random Scenario deux+ fois de suite, et décide que le scénario aléatoire précédent était bien plus cool, je veux y aller. arrière à cela.

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

Donc, si vous commencez à la Home et cliquez sur Random Scenario 35 fois, puis décider que la 34ème était celle que vous vouliez et cliquer sur BACK vous serez remis sur le Home page.

Je dois admettre que ce n'était pas un problème que j'avais prévu. L'un de mes testeurs a été le premier à avoir l'envie de sauvegarder dans le flux de scénarios aléatoires et nous y voilà.

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

1voto

Lotus Notes Points 3287

Faire en sorte que le bouton "Scénario aléatoire" renvoie simplement à un identifiant de scénario réel (mais aléatoire). Vous devrez probablement construire cela avec une requête SQL pour obtenir tous les identifiants 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 les identifiants de votre scénario sont tous des numéros consécutifs, vous pouvez simplement utiliser ceci à la place :

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

1voto

user262976 Points 1232

Vous pouvez résoudre ce problème en redirigeant vers l'url canonique du scénario, par exemple : id=random redirige vers id=A92831 ou tout ce qui a été sélectionné. l'url finale sera stockée dans l'historique, plutôt que l'url id=random.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X