Desactivar f5

Iniciado por Enigma_Hash, 21 Febrero 2013, 17:51 PM

0 Miembros y 1 Visitante están viendo este tema.

Enigma_Hash

Hola me gustaria saber como puedo desactivar el f5 para que no se pueda recargar la pagina mediante este ya sea php o javascript.

Gracias.

engel lex

desactivar el f5??? explicate con detalles, tu problema y que quieres hacer... con detalles, bien explicado...

para desactivar el boton f5, podrias buscar programas de unbind de teclas e instalarlos en tu pc
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Enigma_Hash

Mira tengo el sigiente codigo:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<?php
session_start
();
if (!
$_SESSION['username'])
{
header("location: login.php");
}
// Conexion con la BD
$conexion mysql_connect("localhost","root","") or die("Error en la conexion");
$bd mysql_select_db("concurso",$conexion) or die("La Base de datos no existe");

$sql "SELECT COUNT(idPregunta) as totalR FROM test WHERE usuario = '{$_SESSION['username']}'";
$registros=mysql_query($sql);
$reg mysql_fetch_array($registros);
$totalR $reg['totalR'];

$sql "SELECT COUNT(idPregunta) as totalP FROM repositorio";
$registros=mysql_query($sql);
$reg mysql_fetch_array($registros);
$totalP $reg['totalP'];

if(
$totalR == $totalP)
  
header("location: login.html");
else
{
$ok=false;
while (!$ok//while ($ok==false)
{
// generamos un numero aleatorio
$num_alea=rand(12,16);

// creo la consulta
$sql="SELECT * FROM repositorio WHERE idPregunta = $num_alea AND idPregunta NOT IN(SELECT idPregunta FROM test WHERE usuario = '{$_SESSION['username']}')";
// Ejecuto la consulta
$registros mysql_query($sql);
$n mysql_num_rows($registros);
if ( $n !=0)
{
$ok=true;
}
  }

// Recupero los registros
$reg=mysql_fetch_array($registros);
$_SESSION['numpreg'] ++;
if (
$_SESSION['numpreg'] > 5)
{
//header("location: resultado.php");
}
?>

<html xmlns="http://www.w3.org/1999/xhtml">
<head profile="http://gmpg.org/xfn/11">
<title>Concurso de preguntas</title>
<div align="center"> <img src="./images/Concurso.png"> </img></div>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" href="demo.css" type="text/css" media="all" /> 
<link rel="stylesheet" type="text/css" href="style2.css" />
<script language="javascript">

function comprobar(ctrl)
{
    ok=false;
    for(i=0;i<ctrl.length;i++)
        if(ctrl[i].checked)
   ok=true;
;
if (ok)
  document.datos.submit();
}
</script>
</head>
<body>
<div align="center">
<form class="form" name="datos" action="registrarTest.php?num=<?php echo $num_alea;?>" method="POST" id="slick-login">
<div> Pregunta Nº: <?php echo $_SESSION['numpreg'];?> </div>
<p class="text">
<textarea name="pregunta"><?php echo $reg['descripcionP'];?>
</textarea>
</p>
<p class="respuesta1">
<input type="text" width="60%" name="respuesta1" id="name" class="placeholder" placeholder="Respuesta 1" value="<?php echo $reg['respuesta1'];?>"/>
<input type="radio" id="radio-1-1" class="regular-radio" / name="correcta" value="1"><label for="radio-1-1"></label>
</p>

<p class="respuesta2">
<input type="text" name="respuesta2" id="email" class="placeholder" placeholder="Respuesta 2" value="<?php echo $reg['respuesta2'];?>"/>
<input type="radio" id="radio-1-2" class="regular-radio"  name="correcta" value="2"/><label for="radio-1-2"></label>
</p>

<p class="respuesta3">
<input type="text" name="respuesta3" id="web" class="placeholder" placeholder="Respuesta 3" value="<?php echo $reg['respuesta3'];?>"/>
<input type="radio" id="radio-1-3" class="regular-radio"  name="correcta" value="3"/><label for="radio-1-3"></label>
</p>



<p class="submit">
<input type="button" onclick="comprobar(correcta)" value="Siguiente" />
</p>

</form>
</div>

<?php 

?>

</body>
</html>


Entonces en "Pregunta Nº:" muestra el numero de la pregunta y al darle a siguiente se aumenta pero también se aumenta al darle al "f5" entonces quiero evitar eso.

OmarHack

Mira este código que encontré, seguro que te sirve, solo tienes que saber que número pertenece a F5 y asignarle otra función, por ejemplo pantalla completa.

<html>
<head>
<script type="text/javascript">
function pulsar(e) {
  if (e.keyCode==34) then {...} // avPag
  if (e.keyCode==33) then {...} // rePag 
}
</script>
</head>
<body>
<form onkeyup="pulsar(event)">
<input type="text" /><input type="text" />
</form>
</body>
</html>
I like to test things.

engel lex

OmarHack, pero no siempre funciona ese codigo, porque depende del scope, y de donde tengas selecto... a demás el problema es que tambien el boton de recargar produciria el problema... y no puedes evitar que el usuario recargue la pagina porque es un "secuestro de navegador" y los navegadores no lo permiten...

cambia tu metodo de conteo... con refrescos no funciona, usa una variable de sesion que se incremente cada vez que el form se envie correcto... (o has que se valide en el php)
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Enigma_Hash

Gracias por responder pero he probado esta funcion y funciona

function Verificar()
{
var tecla=window.event.keyCode;
if (tecla==116) {alert("F5 deshabilitado!"); event.keyCode=0;
event.returnValue=false;}
}


<body onKeyDown="javascript:Verificar()">


Aunque también probare a cambiar el modo de conteo.
Gracias.

engel lex

insisto... si presionas refrescar en el navegador será el mismo problema :P
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

OmarHack

Si, pero el código se lo impedirá a muchos usuarios con poca experiencia en webs, con una busqueda en google lo resolverían pero a algunos perdón por la expresión "se la sudará".
Enigma_Hash acuérdate de bloquear o no permitir el click derecho del ratón si no con un click y un recargar página...
I like to test things.

l337*

#8
mejor advierte que no deben de refrescar  y ya si lo hacen pues ya sabras que medidas drasticas tomar en tu código xD


con jquery:

 var warning = true;

 window.onbeforeunload = function() {
   if (warning) return confirm ('Ha solicitado salir de la pagina. Van a valer madre.');
 }


el warning es para poder desactivar la funcion en caso de ser requerido, por ejemplo, al dar en submit ya le pondrias warning = false  y ya no te tiraria el mensaje