Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: Fonsiman en 30 Diciembre 2010, 04:46 AM

Título: Fallo en formulario
Publicado por: Fonsiman en 30 Diciembre 2010, 04:46 AM
Hola a todos. Empezar diciendo que es la primera vez que posteo en el foro y que además soy nuevo en esto de programar, así que por favor no me peguéis si digo una burrada :D
Bueno, el problema que tengo es que quiero crear un sistema de votación. Por un lado tengo el siguiente código ¡QUE ESTÁ DENTRO DE UN ECHO! (El código es mucho más extenso, pero pongo la parte que interesa)

Código (php) [Seleccionar]

<?php

<form name="votacionListas" action="../sumarVotos.php" method="post">

<
input type="hidden" name="posicionVoto" value="'.$posicionM.'"/>

<
input type="submit" value="VOTAR" name="ok"/>

?>



Como veis he en el value del input oculto paso una variable que se llama $posicionM.
Por otro lado el codigo de sumarVotos.php es:

Código (php) [Seleccionar]

<?php

include (
"usarTopListas.php");

$consulta="UPDATE tablaVotocion SET votos_semana = votos_semana +1 WHERE posicion='".$posicionVoto."';";

        
$hacerConsulta mysql_query ($consulta$conectado);


  if ($hacerConsulta){
    echo (
"SE HA GRABADO EL REGISTRO.");
  } else {
    echo (
"NO SE HA PODIDO GRABAR EL REGISTRO.");
  echo ("El problema es el siguiente:<br>");
  echo ("Código: <b>".mysql_errno ()."</b><br>");
  echo ("Descripción:: <b>".mysql_error ()."</b><br>");
  }
  
?>



Lo único que hago es incrementar en uno el contador de votos. La pantalla de error me dice que $posicionVoto esta indefinida.

Lo voy haciendo por posición porque lo que tengo son varias posibilidades ordenadas del 1 al 25 según el número de votos y cada uno tiene su botón para votarlo.

Lo peor es que el código que pongo abajo para detectar errores me dice que puedo grabar el registro...

Supongo que el fallo lo tendré en las comillas. Las he cambiado ya no sé cuantas veces ya, y estoy bastante saturado porque llevo un par de días con lo mismo y no consigo solucionarlo. Supongo que será una chorrada, pero es que estoy algo cansado y he decidido comentarlo en el foro.

Muchas gracias por adelantado ., espero haberme explicado bien :D Y FELIZ NAVIDAD!
Título: Re: Fallo en formulario
Publicado por: cassiani en 30 Diciembre 2010, 06:32 AM
antes de esta linea:

$consulta="UPDATE tablaVotocion SET votos_semana = votos_semana +1 WHERE posicion='".$posicionVoto."';";

Debes almacenar el valor enviado desde el formulario
$posicionVoto = $_POST['posicionVoto'];
Título: Re: Fallo en formulario
Publicado por: Fonsiman en 30 Diciembre 2010, 19:21 PM
Muchas gracias tio! Un fallo tonto de novato...

Ahora te hago otra pregunta. Tal como lo he hecho, al apretar el botón el formulario me lleva a la página sumarVotos.php. ¿Cómo puedo hacer para que siguiendo en la página que está me sume el voto?

Gracias y espero no ser muy pesado :S
Título: Re: Fallo en formulario
Publicado por: Devilboy.Devil en 30 Diciembre 2010, 20:58 PM
no entendi muy bien pero

en el action del form pon el nombre de tu pagina.php

y asi te direcciona a la misma
Título: Re: Fallo en formulario
Publicado por: xassiz~ en 30 Diciembre 2010, 21:00 PM
Pon:
Código (html4strict) [Seleccionar]
<form name="votacionListas" action="" method="post">

Y junta los dos .php en el mismo archivo, comprobando si fueron enviados datos:
Código (php) [Seleccionar]

<?php

if(isset($_POST['posicionVoto'])){
    ...
}
Título: Re: Fallo en formulario
Publicado por: Fonsiman en 3 Enero 2011, 21:31 PM
Muchas gracias por todo!