Foros del Web » Programando para Internet » PHP »

Errores sin razon?

Estas en el tema de Errores sin razon? en el foro de PHP en Foros del Web. Código: Warning: Cannot modify header information - headers already sent by (output started at D:\xampp\htdocs\index.php:8) in D:\xampp\htdocs\votarpor.php on line 15 Gracias por votar! Warning: mysql_fetch_array(): ...
  #1 (permalink)  
Antiguo 13/08/2009, 08:08
Avatar de zornak  
Fecha de Ingreso: septiembre-2008
Ubicación: Toledo
Mensajes: 96
Antigüedad: 15 años, 7 meses
Puntos: 3
Errores sin razon?

Código:
Warning: Cannot modify header information - headers already sent by (output started at D:\xampp\htdocs\index.php:8) in D:\xampp\htdocs\votarpor.php on line 15
Gracias por votar!

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\xampp\htdocs\funciones.php on line 12

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\xampp\htdocs\funciones.php on line 19

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\xampp\htdocs\funciones.php on line 5
Buenas, no consigo saber porque son esos errores....

Pero todas las acciones se realizan correctamente....

Asique.. alguna idea de como solucionarlo o hacer que no salgan?
  #2 (permalink)  
Antiguo 13/08/2009, 08:18
Avatar de zornak  
Fecha de Ingreso: septiembre-2008
Ubicación: Toledo
Mensajes: 96
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: Errores sin razon?

Ok.... ya se la razon xDD si tenia razon si....

Era por una linea mal puesta en el codigo (los de abajo..)

Pero aun me sale este:

Cita:
Warning: Cannot modify header information - headers already sent by (output started at D:\xampp\htdocs\index.php:8) in D:\xampp\htdocs\votarpor.php on line 15


Esta es la linea:

Código php:
Ver original
  1. setcookie("TopElite_votar", "haVotado", time()+(21600));
  #3 (permalink)  
Antiguo 13/08/2009, 08:22
 
Fecha de Ingreso: agosto-2009
Ubicación: Lanzarote - Canarias
Mensajes: 57
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Errores sin razon?

puedes poner @ delante de la funcion para eliminar el mensaje de error @setcookie()
  #4 (permalink)  
Antiguo 13/08/2009, 08:28
Avatar de zornak  
Fecha de Ingreso: septiembre-2008
Ubicación: Toledo
Mensajes: 96
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: Errores sin razon?

ok pero esque no me pone la cookie :S:S
  #5 (permalink)  
Antiguo 13/08/2009, 08:30
 
Fecha de Ingreso: agosto-2009
Ubicación: Lanzarote - Canarias
Mensajes: 57
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Errores sin razon?

Entonces ese es el fallo, el truco de la @ es solo para que no muestre el error, no que inhabilita dicha funcion, esta sigue funcionando.yo no usaria una coockie para guardar que he votado pues es facil manipular os votos, yo guardaria en un db el voto a quien ha sido, la fecha y la ip para que la misma ip no vote el mismo dia dos o 40 veces la misma respuesta
  #6 (permalink)  
Antiguo 13/08/2009, 08:31
Avatar de zornak  
Fecha de Ingreso: septiembre-2008
Ubicación: Toledo
Mensajes: 96
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: Errores sin razon?

Y por que no me la pondra??

La linea esta bien no?
  #7 (permalink)  
Antiguo 13/08/2009, 08:36
 
Fecha de Ingreso: agosto-2009
Ubicación: Lanzarote - Canarias
Mensajes: 57
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Errores sin razon?

Código PHP:
Ver original
  1. $time = time()+21600;
  2. setcookie("TopElite_votar", "haVotado", $time);
  #8 (permalink)  
Antiguo 13/08/2009, 08:38
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Errores sin razon?

La linea esta bien, el error es porque no debes enviar salida al navegador (etiquetas html, espacios, saltos de linea, textos, etc... es decir NADA) para usar setcookie(), header(), session_start() y cualquier otra funcion que requiera modificar los encabezados.

Código php:
Ver original
  1. <?php
  2. // No debes enviar nada al navegador antes de esto:
  3. setcookie(bla bla bla);
  4.  
  5. // Ahora si ya puedes iniciar la salida
  6. ?>
  7. <html bla bla bla>
  8. </html>
__________________
- León, Guanajuato
- GV-Foto
  #9 (permalink)  
Antiguo 13/08/2009, 08:44
Avatar de zornak  
Fecha de Ingreso: septiembre-2008
Ubicación: Toledo
Mensajes: 96
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: Errores sin razon?

Código php:
Ver original
  1. <?
  2.         if ((@$_GET) && (@$_COOKIE['TopElite_votar']!="haVotado"))
  3.         {
  4.             $IP=$_SERVER['REMOTE_ADDR'];
  5.             $tiempo = time();
  6.             require ("config/config.php");
  7.             require ("funciones.php");
  8.             // Comprobacion de que la IP ha votado al server en el intervalo de 6 horas
  9.             // Habra varios votos de la misma IP, asi que en un principio habra que borrar todas las que cumplan la condicion de que el voto haya sido hace 6 horas en ese server.
  10.             mysql_query("DELETE FROM votados where IP='".$IP."' and tiempo+21600< ".$tiempo." and serverID=".$_GET['votarserver']);
  11.             // Ahora comprobar que esta IP no existe votando al server
  12.             $resultado = mysql_num_rows(mysql_query("Select ID from votados where IP='".$IP."' and tiempo + 21600 > ".$tiempo." and serverID=".$_GET['votarserver']));
  13.             if ($resultado<1)
  14.             {
  15.                 setcookie("TopElite_votar", "haVotado", time()+(21600)); // Coloco una cokie en el navegador por si cambia de IP
  16.                 echo "<center>Gracias por votar!</center>";
  17.                 mysql_query ("UPDATE servers set votes=votes+1 where server_ID=".$_GET['votarserver']);
  18.                 mysql_query("INSERT into votados (tiempo,serverID,IP) VALUES('$tiempo','".$_GET['votarserver']."','$IP')");
  19.             }
  20.             else
  21.             {echo "<center>Ya has votado este server, intentalo mas tarde.</center>"; }
  22.                
  23.         }
  24.         else
  25.         {
  26.             echo "<center>Gracias por votar!</center>";
  27.         }
  28. ?>


Que salidas ay??
  #10 (permalink)  
Antiguo 13/08/2009, 09:01
 
Fecha de Ingreso: abril-2009
Mensajes: 11
Antigüedad: 15 años
Puntos: 0
Respuesta: Errores sin razon?

Hola. El error de mysql que te dá se manda antes que los headers, por lo que no puede salir ese error de mysql.
  #11 (permalink)  
Antiguo 13/08/2009, 09:07
Avatar de zornak  
Fecha de Ingreso: septiembre-2008
Ubicación: Toledo
Mensajes: 96
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: Errores sin razon?

como?

es de otro archivo?
  #12 (permalink)  
Antiguo 13/08/2009, 09:25
 
Fecha de Ingreso: abril-2009
Mensajes: 11
Antigüedad: 15 años
Puntos: 0
Respuesta: Errores sin razon?

Ya habías solucionado el error de mysql que salía al principio. No, sé que puede ser, pero para evitar que salgan los errores hay que modificar la directiva display_errors. Esta directiva se puede modificar mediante un archivo .htaccess o php.ini. Mediante .htaccess, se puede hacer poniendo una línea de este modo:

php_value display_errors "Off"
  #13 (permalink)  
Antiguo 13/08/2009, 09:42
 
Fecha de Ingreso: abril-2009
Mensajes: 39
Antigüedad: 15 años
Puntos: 0
Respuesta: Errores sin razon?

Cita:
Iniciado por zornak Ver Mensaje
Ok.... ya se la razon xDD si tenia razon si....

Era por una linea mal puesta en el codigo (los de abajo..)

Pero aun me sale este:





Esta es la linea:

Código php:
Ver original
  1. setcookie("TopElite_votar", "haVotado", time()+(21600));


Para quitar el error, tienes que modificar el archivo PHP.ini y buscar la parte donde dice output buffering, lo debes tener en off, lo pones en on, o lo pones en 4096 bytes, y listo, reinicias tu servicio apache y ya no te debe salir el error de el header information, me comentas como te fue!
saludos
  #14 (permalink)  
Antiguo 13/08/2009, 10:50
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Errores sin razon?

Cita:
Iniciado por zornak
Warning: Cannot modify header information - headers already sent by (output started at D:\xampp\htdocs\index.php:8) in D:\xampp\htdocs\votarpor.php on line 15
Segun el warning, ya realizaste alguna salida en index.php linea 8
__________________
- León, Guanajuato
- GV-Foto
  #15 (permalink)  
Antiguo 13/08/2009, 11:06
Avatar de zornak  
Fecha de Ingreso: septiembre-2008
Ubicación: Toledo
Mensajes: 96
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: Errores sin razon?

Y si quito la linea 8, me dice que es en la 9 y asi sucesivamente xDDDD
  #16 (permalink)  
Antiguo 13/08/2009, 12:12
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Errores sin razon?

Muestra el codigo de tu index, porque adivinos no somos.

Pero mientras te cuento que la estructura adecuada para tus scripts es:

- Cargar configuracion
- Si tienes usuarios, verificar sesion
- Obtener acciones a realizar (ya sea por GET o POST)
- Cargar informacion necesaria de base de datos (Articulo, noticia, etc.)
- Realizar las operaciones de insercion o actualizacion
- Hasta aqui todavia puedes crear cookies, redirigir y cualquier funcion que involucre encabezados

Despues de todo eso es cuando puedes comenzar la salida html.

Si se te complica mucho asi, entonces podrias tratar de hacerlo con AJAX.
__________________
- León, Guanajuato
- GV-Foto
  #17 (permalink)  
Antiguo 13/08/2009, 12:32
Avatar de zornak  
Fecha de Ingreso: septiembre-2008
Ubicación: Toledo
Mensajes: 96
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: Errores sin razon?

Código text:
Ver original
  1. ht tp://pastebin.com/m733c27ff

Muchas gracias =)

Este es el index, seguro que tengo muchas cosas mal hechas.. pero bueno espero que me ayudeis =)
  #18 (permalink)  
Antiguo 13/08/2009, 12:46
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Errores sin razon?

No veo la forma de hacer lo que quieres con el codigo que tienes, tus opciones:
1- Usar algun sistema de plantillas con el que podras controlar en que momento iniciar la salida HTML
2- Hacer tu sistema de votacion con AJAX, pide ayuda en la seccion correspondiente
__________________
- León, Guanajuato
- GV-Foto
  #19 (permalink)  
Antiguo 13/08/2009, 12:50
Avatar de zornak  
Fecha de Ingreso: septiembre-2008
Ubicación: Toledo
Mensajes: 96
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: Errores sin razon?

La forma ideal y ams secinlla hubiese sido hacerlo con un iframe (asi lo empece)

Pero el iframe es estatico, asique use javascript y luego por php como se ve...

Asique en mi opinion la forma en que lo hice es una guarrada, se os ocurre alguna con la que simplificar???
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 23:10.