Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Enigma_Hash en 21 Febrero 2013, 17:51 pm



Título: Desactivar f5
Publicado por: Enigma_Hash en 21 Febrero 2013, 17:51 pm
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.


Título: Re: Desactivar f5
Publicado por: engel lex en 21 Febrero 2013, 17:59 pm
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


Título: Re: Desactivar f5
Publicado por: Enigma_Hash en 21 Febrero 2013, 18:10 pm
Mira tengo el sigiente codigo:

Código:
<!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.


Título: Re: Desactivar f5
Publicado por: OmarHack en 21 Febrero 2013, 18:14 pm
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>


Título: Re: Desactivar f5
Publicado por: engel lex en 21 Febrero 2013, 18:18 pm
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)


Título: Re: Desactivar f5
Publicado por: Enigma_Hash en 21 Febrero 2013, 19:05 pm
Gracias por responder pero he probado esta funcion y funciona

Código:
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.


Título: Re: Desactivar f5
Publicado por: engel lex en 22 Febrero 2013, 04:05 am
insisto... si presionas refrescar en el navegador será el mismo problema :P


Título: Re: Desactivar f5
Publicado por: OmarHack en 22 Febrero 2013, 11:13 am
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...


Título: Re: Desactivar f5
Publicado por: l337* en 11 Abril 2013, 00:37 am
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:
Código:
  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