Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/03/2011, 15:05
Avatar de VbOkonly
VbOkonly
 
Fecha de Ingreso: julio-2009
Ubicación: San Justo, Buenos Aires, Argentina
Mensajes: 490
Antigüedad: 15 años, 4 meses
Puntos: 5
Engañar al navegador para evitar reenvio de variables

Hola a todos!, estoy implementando en mi sitio algo asi como "votar", intente hacerlo con ajax pero soy muy novato en ese lenguaje, tendré que practicar con algo mas facil ...
Lo hize con php, les paso el codigo y despues les cuento mi gran problema:

en el header:

Código PHP:
<?php if($_POST['verificate'] == "ok"){
mysql_query('INSERT votos SET noticia_id = "'.$var.'"',$db);
$_POST['verificate'] = "";
unset(
$_POST['verificate']);
 } 
?>
En el body en un formulario:

Código PHP:
<div id="voto">
      <?php if($_COOKIE["idform".$var] != $_SERVER['PHP_SELF']."?mascota=".$var){ ?>
      <form action="<?php $_SERVER['PHP_SELF']."?mascota=".$var?>" method="post" name="votar" id="votar">
      <input type="hidden" id="verificate" name="verificate" value="ok" />
      <input type="hidden" id="noticia_id" name="noticia_id" value="<?php echo $var?>"/>
      <a href="javascript:cookie();
      javascript:votar();"><img id="mascotear" src="Images/mascotear.gif" /></a>
      </form><?php } else { ?>
       <img src="Images/yahasmascoteado.gif" /> <?php ?>
      </div>
y si necesitan el javascript para variar ... :

Código Javascript:
Ver original
  1. <script>
  2. function votar()
  3. {
  4. document.votar.submit()
  5. }
  6. function cookie()
  7. {
  8. document.cookie= "<?php echo "idform".$var; ?> = <?php echo $_SERVER['PHP_SELF']."?mascota=".$var; ?>";
  9. }
  10. </script>

Inserté php en las cookies de javascript, por ahora todos contentos, me funciona todo, pero cuando le doy f5 (haciendo testing), en mi caso, uso firefox, me pide reenviar las variables, y chan!, ya intente vaciar la variable, destruirla pero me sigue llenando la database ... Digamos que una persona comun no sabría este error de codigo, pero alguien que entiende seguro me llenará la tabla "votos" con votos falsos xD. lo demás todo bien, mi unico problema es el f5.

¿Como puedo evitar que los navegadores envien los datos nuevamente? hace mucho lei que como medida de seguridad, los navegadores guardan las ultimas variables que se pasan, pero ahi está mi problema, cuando las guardan me hacen la vida imposible :P
¿Existe otro metodo logico o alguna funcion para que cuando reenvie entre por falso?

Saludos!