Foros del Web » Programando para Internet » PHP »

PHP No muestra los resultados pero tampoco da mensajes de error

Estas en el tema de PHP No muestra los resultados pero tampoco da mensajes de error en el foro de PHP en Foros del Web. Buen día tenga todos... Soy nueva con PHP y estoy tratando de hacer un sistema de encuesta, guiándome por varios ejemplos que he conseguido. Y ...
  #1 (permalink)  
Antiguo 07/05/2009, 08:05
 
Fecha de Ingreso: mayo-2009
Mensajes: 12
Antigüedad: 14 años, 10 meses
Puntos: 0
PHP No muestra los resultados pero tampoco da mensajes de error

Buen día tenga todos... Soy nueva con PHP y estoy tratando de hacer un sistema de encuesta, guiándome por varios ejemplos que he conseguido. Y aunque ya logre que funcionara la pagina para administrar las encuestas y que se muestre la pregunta y las opciones de la encuesta, además de que se guarden en la BD la votación de los usuarios, no me guarda en la BD la Ip del usuario y tampoco me muestra el mensaje "Gracias por votar!!!", ni el mensaje "No se ha seleccionado ninguna opción".
No sé que puede estar pasando, es algo como misterioso porque no me da ningún mensaje de error, me suma los votos de los usuarios en la BD, pero pareciera que las demás instrucciones el script votarencuesta.php no las ejecuta.
Aquí les copio el código a ver si ustedes logran ver que estoy haciendo mal.

Agradezco de antemano su colaboración...

<?php
$redir = $_SERVER['HTTP_REFERER'];
header("Location: $redir");
$ip = $REMOTE_ADDR;
include('conexionBDElsy.php'); // Este archivo contendrá nuestros datos de conexión a MySQL
if(isset($_POST['votar'])) {
if($_POST['opciones'] == '') {
echo "No se ha seleccionado ninguna opción. <a href='javascript:history.back()'>Regresar</a>";
}else {
$opciones = $_POST['opciones'];
$sql = mysql_query("SELECT * FROM encuestas_opt WHERE id_opt='".$opciones."'");
$row = mysql_fetch_array($sql);
$suma = $row['num_votos']+1;
mysql_query("UPDATE encuestas_opt SET num_votos='".$suma."' WHERE id_opt='".$opciones."'");
mysql_query( "INSERT INTO encuestas_ip (id_ip, ip_voto) VALUES( '', '$ip' ) " ) or error( mysql_error() );
//mysql_query("INSERT INTO encuestas_ip (ip_voto) VALUES('$REMOTE_ADDR')");
echo("Gracias por participar");
}
}else {
echo "Operación incorrecta. <a href='javascript:history.back()'>Regresar</a>";
}
?>
  #2 (permalink)  
Antiguo 07/05/2009, 08:13
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 1 mes
Puntos: 15
Respuesta: PHP No muestra los resultados pero tampoco da mensajes de error

Cita:
if($_POST['opciones'] == '')
== a ke?
a blanco?
""
saludines!!
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #3 (permalink)  
Antiguo 07/05/2009, 10:05
 
Fecha de Ingreso: mayo-2009
Mensajes: 12
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: PHP No muestra los resultados pero tampoco da mensajes de error

Si exacto... si es igual a blanco que ejecute: echo "No se ha seleccionado ninguna opción. Pero no lo hace no muestra el mensaje cuando no selecciono ninguna opción, ni da ningún error.

Qué puede ser???

Saludos!
  #4 (permalink)  
Antiguo 07/05/2009, 10:07
Avatar de stone_neo  
Fecha de Ingreso: abril-2004
Ubicación: Peru
Mensajes: 438
Antigüedad: 19 años, 11 meses
Puntos: 15
Respuesta: PHP No muestra los resultados pero tampoco da mensajes de error

Pues prueba poniendo esto al inicio de tu script para ver que puede estar fallando.

error_reporting(E_ALL);

Con eso te debe mostrar los errores.

Revisate esta parte de tu codigo

Código PHP:
if(isset($_POST['votar'])) {
if(
$_POST['opciones'] == '') { 
Como se llama el campo de tu formulario, opciones o votar?, por que me parece que tu campo se llama opciones, pero como tu primero validas votar, ahi se te cae el script.
__________________
Rubén Darío Huamaní Ucharima
Web : http://www.gorilla-soft.com
Usuario Linux #382 100 :-)
  #5 (permalink)  
Antiguo 07/05/2009, 13:15
 
Fecha de Ingreso: mayo-2009
Mensajes: 12
Antigüedad: 14 años, 10 meses
Puntos: 0
Respuesta: PHP No muestra los resultados pero tampoco da mensajes de error

Hola... seguí tu sugerencia de colocar el error_reporting(E_ALL); al principio e igual no reporto ningún error.
Si, mi campo se llama opciones, el valor votar es el valor del formulario de la encuesta. Igual probé validando solo con el campo opciones y no cambio en nada el comportamiento del script. Lo que me parece aun más extraño es que actualiza los valores del campo num_votos en la BD pero no me guarda el valor de la $ip en la tabla encuestas_ip , que es la instrucción siguiente…


Help me!
  #6 (permalink)  
Antiguo 07/05/2009, 15:30
 
Fecha de Ingreso: febrero-2009
Ubicación: cancun!
Mensajes: 898
Antigüedad: 15 años, 1 mes
Puntos: 15
Respuesta: PHP No muestra los resultados pero tampoco da mensajes de error

$ip tiene valor?
hazle un echo saludines!!
__________________
WHERE IS MY BLUE SUNNY SKY??
pd: todos los karmas son bienvenidos :D
  #7 (permalink)  
Antiguo 07/05/2009, 17:06
Avatar de stone_neo  
Fecha de Ingreso: abril-2004
Ubicación: Peru
Mensajes: 438
Antigüedad: 19 años, 11 meses
Puntos: 15
Respuesta: PHP No muestra los resultados pero tampoco da mensajes de error

Recien lo he visto para sacar la IP es esto:

$ip = $_SERVER['REMOTE_ADDR'];

Prueba con eso y avisas
__________________
Rubén Darío Huamaní Ucharima
Web : http://www.gorilla-soft.com
Usuario Linux #382 100 :-)
  #8 (permalink)  
Antiguo 07/05/2009, 17:28
Avatar de argy  
Fecha de Ingreso: octubre-2007
Ubicación: Longitud 75º Latitud 18º Sur
Mensajes: 614
Antigüedad: 16 años, 4 meses
Puntos: 18
Respuesta: PHP No muestra los resultados pero tampoco da mensajes de error

de hecho utiliza variables superglobales $_POST['REMOTE_SERVER'], además utiliza la función mysql_affected_rows() para saber si se insertó o no
ejm
Código PHP:
mysql_query($sql,$con);
if(
mysql_affected_rows()>0)
{

//se insertó
}

else
{
//no se insertó

__________________
Software libre para un mundo libre.

Eventualmente en el foro.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:47.