php get, registros aleatorios, y el botón de retroceso
-
21-09-2019 - |
Pregunta
Mi sitio tiene una biblioteca completa de juegos, naciones, escenarios de juego, etc.
library.php
se le da un type=___
y id=___
por ejemplo library.php?type=scenario&id=ABCD001
library.php
guarda el id
a una variable de sesión y cargas incluyen un apropiado para el type
Todo esto funciona igual de dandy. Ahora, quería dar a mis usuarios la opción de tirar de un escenario al azar. Para hacer eso, he añadido un id
especial a la lógica dentro lib-scenario.php
(el include) tal que si library.php?type=scenario&id=random
dada la incluyen sabe para ejecutar una consulta alternativa para un registro aleatorio en lugar de para el id
real
Esto también funciona dandy ... menos a alguien pulsa el botón Random Scenario
dos + veces seguidas, y decide que el escenario al azar anterior era mucho más cool, quiero ir Atrás para eso.
Debido a que la dirección http es siempre directory/library.php?type=scenario&id=random
no importa cuántas veces se hace clic Random Scenario
, tan pronto como haga clic en la espalda se le llevará a la última página con una dirección alternativa que ha visitado.
Por lo tanto, si se inicia en la página Home
, y golpear Random Scenario
35 veces, y luego decidir el número 34 era lo que quería y haga clic BACK
, se le pone de nuevo en la página Home
.
He de reconocer que esto no era un problema que había anticipado. Una de mis probadores fue el primero en tener el impulso de copia de seguridad en el flujo de escenario al azar y aquí estamos.
¿Cómo puedo añadir la funcionalidad de copia de seguridad de mi guión?
Solución
Hacer el botón 'Escenario aleatoria' simplemente enlazar a un real (pero al azar) Identificación del escenario. Es probable que tenga para construir esto con una consulta SQL para obtener todos los identificadores de sus escenarios.
$result = mysql_query("SELECT id FROM scenarios");
while ($row = mysql_fetch_row($result)) {
$ids[] = $row[0];
}
$randomid = array_rand($ids);
botón:
<a href="directory/library.php?type=scenario&id=<?php echo $randomid; ?>Random Scenario</a>
Si es tu identificación de escenarios son todos los números consecutivos simplemente puede utilizar esto en su lugar:
$randomid = rand($min, $max);
Otros consejos
puede resolver este redirigiendo a la URL canónica para el escenario, es decir .: id = redirecciones al azar a id = A92831 o lo que fue seleccionado. la URL final se almacena en la historia, en lugar de la de id = url azar.