antiReload

$wv->antiReload($ar); Evita volver a enviar datos al recargar una página con el resultado de un GET o POST.

  • Devuelve true si se detecta una recarga.
  • $ar debe ser un valor único en cada carga de la página, puede generarse con md5(rand());

No debe hacerse más de una llamada al método por cada página, ya que de hacerlo la primera llamada guardará el nuevo hash y los siguientes mostrarán siempre que se recargó la página, si se necesita maś de una instancia por página se puede asignar un flag en una variable dentro de un condicional y usar esta en el resto del código.

Para usarlo, generar un hash aleatorio en el formulario, por ejemplo:

<form action="/proceso" method="GET">
<input name="antireload" type="hidden" value="<?=md5(rand())?>" /> 
email: <input name="email" type="text" value="" />
nombre: <input name="nombre" type="text" value="" />
comentario: <input name="comentario" type="text" value="" />
</form>

En la página de proceso, añadir antiReload para verificar si se pulsó F5:

if (!$wv->antiReload($antireload)) {
    //código para procesar formulario.
}

Usando un flag:

$ar_blk = null;
if ($wv->antiReload($antireload)) {
    $ar_blk = true;
}

if (empty($ar_blk)) {
    //código para procesar formulario.
}
if (empty($ar_blk)) {
    //otro código en la misma página.
}