Comunidad de diseño web y desarrollo en internet online

Problema con valor que se adiciona autamaticamente a una encuesta

Citar            
MensajeEscrito el 27 Ago 2011 03:17 am
Estoy construyendo un encuesta básica en PHP y mySql y percibí que cada vez que entro en la página un voto es computado. Imagino que el problema está en el condicional del INSERT, ya intenté colocar las comillas juntas o como aqui, separadas, pero el resultado siempre es el mismo. Cada vez que entro en la página un nuevo voto es computado.

Alguien tiene una idea de dónde está el problema?

Código PHP :

<?php
   $servidor = "nombre.del.servidor";
   $usuario = "crp11_claudio";
   $senha = "*******";
   $bd = "crp11_desmembramento";
   
   $conexao = mysql_connect($servidor, $usuario, $senha)or die ("Error al conectarse");
   $seleciona = mysql_select_db($bd);
   
   $voto = $_POST['radio'];
   
   
   if ($voto <> " ") {
      $query = mysql_query("INSERT INTO votos(voto) VALUES('$voto')");
   }
   
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
</head>

<body>
<h2>Alguna pregunta</h2>
<form action="" method="post" name="encuesta" id="encuesta">
  <p>
      <input type="radio" name="radio"  id="radio" value="1" />SI<br />
       <input type="radio" name="radio"  id="radio" value="2" />NO</p>
  <p>
    <input type="submit" name="button" id="button" value="Votar">
    <br />
  </p>
</form>
</body>
</html>

Por Ishkandar

Claber

303 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 28 Ago 2011 09:31 pm
lo que pasa es esta ene sta linea

Código PHP :

 if ($voto <> " ") { 

cambiala, usa funciones como trim,isset o empty :)

http://es2.php.net/empty
http://es2.php.net/isset

Por tuadmin

Claber

598 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 29 Ago 2011 12:26 pm
La inserción debería hacerse si y solo si el método de petición de la página es POST.

Código PHP :

<?php 
   $servidor = "nombre.del.servidor"; 
   $usuario = "crp11_claudio"; 
   $senha = "*******"; 
   $bd = "crp11_desmembramento"; 

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    
   $conexao = mysql_connect($servidor, $usuario, $senha)or die ("Error al conectarse"); 
   $seleciona = mysql_select_db($bd); 
    
  if (isset($_POST['radio']) {
    $voto = trim($_POST['radio']);
     $query = mysql_query("INSERT INTO votos(voto) VALUES('$voto')"); 
  } // if
} // if
?>

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 29 Ago 2011 12:28 pm
Primeramente, gracias por tu respuesta. Después que abrí este tópico hice eso y colocando las sisguientes líneas

Código PHP :

if(isset($voto)) {
      $query = mysql_query("INSERT INTO votos(voto) VALUES('$voto')");
      header( 'location: resultados.php' );
        exit();
   }


Como podes ver tube que redireccionar para otra página llamada resultados.php. Porque por algún motivo que desconosco el voto siempre era computado. Lo coloqué como null como "" y nada, cada vez que se saba un refresh en la página él se sumaba.

Por Ishkandar

Claber

303 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.