Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: ZharkD en 28 Marzo 2010, 21:33 pm



Título: Error simple pero no lo veo, funcion setcookie
Publicado por: ZharkD en 28 Marzo 2010, 21:33 pm
Hola,
Pues tengo un error en uno de mis sitios, http://ptcsociety.co.cc
Me tira un error en la cabezera e incluso muestra "espacio en blanco" siendo que no deberia, no tengo echo en esos archivos.

Bueno el problema radica cuando deseo cambiar el idioma del sitio, por favor vean ustedes mismos para ver si me pueden ayudar a identificar el problema.

Si necesitan datos extra no duden en decirmelo :)

Gracias pro su atencion a este tema.


Título: Re: Error simple pero no lo veo, funcion setcookie
Publicado por: Nakp en 28 Marzo 2010, 22:36 pm
estas enviado la cookie despues de haber enviado contenido html, la session o cookie debe ser lo primero en ser enviado


Título: Re: Error simple pero no lo veo, funcion setcookie
Publicado por: ZharkD en 28 Marzo 2010, 23:40 pm
estas enviado la cookie despues de haber enviado contenido html, la session o cookie debe ser lo primero en ser enviado
Hola,
Gracias por tu comentario, si tambien entendi eso, sin embargo no entiendo porque de "una fecha" para aca me tiraba el error, ese archivo lo tengo en idioma.php el cual esta incluido antes del html.
Alguna idea?


Título: Re: Error simple pero no lo veo, funcion setcookie
Publicado por: Castg! en 29 Marzo 2010, 01:20 am
mira, si no es mucha molestia estaria bueno que subas el codigo, asi vemos donde tenes que cambiar las lineas.


Título: Re: Error simple pero no lo veo, funcion setcookie
Publicado por: ZharkD en 29 Marzo 2010, 02:05 am
mira, si no es mucha molestia estaria bueno que subas el codigo, asi vemos donde tenes que cambiar las lineas.
Hola,
jeje para nada, mil gracias, aqui les dejo el codigo de idioma.php y la parte del head de index.php:
Código
  1. <?php
  2. $langurl = $_GET['lang'];
  3. if (isset($_COOKIE['Idioma']))
  4. {
  5. $lang = $_COOKIE['Idioma'];
  6. }
  7. else
  8. {
  9. $lang = substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2);
  10. }
  11. if ($langurl == 'es' || $langurl == 'en')
  12. {
  13. $lang = $langurl;
  14. setcookie('Idioma', $lang, time() + 3600 * 24 * 365); // LINEA 14
  15. }
  16. else
  17. {
  18. if (!$_COOKIE['Idioma'])
  19. {
  20. if ($nav == 'es')
  21. {
  22.     setcookie('Idioma', $lang, time() + 3600 * 24 * 365);
  23. }
  24. else
  25. {
  26.     setcookie('Idioma', $lang, time() + 3600 * 24 * 365);
  27. }
  28. }
  29. }
  30. if($lang == 'es')
  31. {
  32. include('./basic/es.php');
  33. }
  34. else
  35. {
  36. include('./basic/en.php');
  37. }
  38. ?>
Código
  1. <?php include('./basic/idioma.php'); ?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head>Aqui los metas y blabla</head>
  5. y continua con body...


Título: Re: Error simple pero no lo veo, funcion setcookie
Publicado por: Castg! en 29 Marzo 2010, 02:30 am
Código
  1. <?php
  2. $langurl = $_GET['lang'];
  3. if (isset($_COOKIE['Idioma']))
  4. {
  5. $lang = $_COOKIE['Idioma'];
  6. }
  7. else
  8. {
  9. $lang = substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2);
  10. }
  11. if ($langurl == 'es' || $langurl == 'en')
  12. {
  13. $lang = $langurl;
  14. setcookie('Idioma', $lang, time() + 3600 * 24 * 365); // LINEA 14
  15. }
  16. elseif (!$_COOKIE['Idioma']) {
  17. setcookie('Idioma', $lang, time() + 3600 * 24 * 365);
  18. }
  19. if($lang == 'es')
  20. {
  21. include('./basic/es.php');
  22. }
  23. else
  24. {
  25. include('./basic/en.php');
  26. }
  27. ?>

cambie unas cosas, pero el error me parece rarisimo!!:-\


Título: Re: Error simple pero no lo veo, funcion setcookie
Publicado por: ZharkD en 29 Marzo 2010, 02:58 am
cambie unas cosas, pero el error me parece rarisimo!!:-\
Ohh si, jeje esa condicion era inecesaria, no recuerdo porque la puse XD

Bueno, pues de igual manera realize esa correxion pero... nop.
Como dije, antes no pasaba, empezo de unos dias apra aca, tendra relacion con mi webhost?
No se si sea posible que el webhost me este causando estos problemas ya que parece que las funciones php que utilizo SI estan habilitadas por lo que no veo el problema :S
Muy raro XD

AGREGO:
Realize una modificacion, creo que quedo mas bonito asi (Igual el error continua XD)
Código
  1. <?php
  2. if ($_GET['lang'] == 'es' || $_GET['lang'] == 'en')
  3. {
  4. $lang = $_GET['lang'];
  5. setcookie('Idioma', $lang, time() + 3600 * 24 * 365); // AHORA TIRA ERROR AQUI
  6. }
  7. else
  8. {
  9. if (isset($_COOKIE['Idioma']))
  10. {
  11. $lang = $_COOKIE['Idioma'];
  12. }
  13. else
  14. {
  15. $lang = substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2);
  16. setcookie('Idioma', $lang, time() + 3600 * 24 * 365);
  17. }
  18. }
  19. if($lang == 'es')
  20. {
  21. include('./basic/es.php');
  22. }
  23. else
  24. {
  25. include('./basic/en.php');
  26. }
  27. ?>


Título: Re: Error simple pero no lo veo, funcion setcookie
Publicado por: LuffyFF en 29 Marzo 2010, 03:11 am
Si mal no me equivoco, el error se debe a que tengas el header.php o algun otro file como los de idiomas de tu pagina codificado en UTF-8?

Pon los archivos en ANSI y el error desaparecerá. Porque al tener los archivos codificados en UTF8 se agrega unos espacios antes del <?php

Recuerda pasar tambien los acentos y eso, para que funcionen en ANSI

Salu2


Título: Re: Error simple pero no lo veo, funcion setcookie
Publicado por: ZharkD en 29 Marzo 2010, 03:16 am
Si mal no me equivoco, el error se debe a que tengas el header.php o algun otro file como los de idiomas de tu pagina codificado en UTF-8?

Pon los archivos en ANSI y el error desaparecerá. Porque al tener los archivos codificados en UTF8 se agrega unos espacios antes del <?php

Recuerda pasar tambien los acentos y eso, para que funcionen en ANSI

Salu2
Hola, gracias por tu respuesta.

Pues tengo espacios antes y despues de " <?php " podrias explicarme mejor eso para dejar el estilo en UTF-8?
Como mencione, hace unos dias funcionaba sin probelma alguno, por eso me extraña XD

EDITO:
Código
  1. <meta http-equiv="Content-Type" content="text/html; charset=ANSI" />
y el problema persiste XD


Título: Re: Error simple pero no lo veo, funcion setcookie
Publicado por: LuffyFF en 29 Marzo 2010, 03:21 am
Tendrías que codificar los archivos en ANSI, y con eso seguro no tendrías más problemas.

Lo más seguro es que antes estaba en ANSI, y hayas codificado en UTF8 sin querer, o tal vez con algún editor que guarde por defecto en UTF8. O tal vez haya habido un cambio en el servidor de PHP.

Al codificar en UTF8, se agrega unos caracteres antes de lo que ves para indicar que está en UTF8.

Entonces con UTF8 seria una especie de " <?php" en vez de "<?php", y entonces el espacio se mostraría como HTML como un espacio en blanco o salto de línea.

Tambien borra los espacios antes de "<?php", porque sino tambien se ejecutaria como HTML lo que haya antes del tag del php

Citar
<meta http-equiv="Content-Type" content="text/html charset=ANSI" />
No es cuestion de mostrar la pagina HTML en ANSI. Sino encodear los archivos php en ANSI. Lo haces desde el editor.

Pero como te digo, puedo estar equivocado, y puede que solamente tengas espacios adelante, por lo cual, con solo eliminar los espacios ya está.

Salu2


Título: Re: Error simple pero no lo veo, funcion setcookie
Publicado por: ZharkD en 29 Marzo 2010, 04:02 am
Buenas,

Pues itente todo para que funcione en UTF8 (Uso dreamweaber y me lo codifica en UFT-8 por defecto), pero de igual manera no me funciona, estoy optando por el cambio de php en el servidor ya que, vuelvo a mencionar, antes funcionaba (UFT-8) y de unos dias a la fecha me empezo a tirar ese error :(


Título: Re: Error simple pero no lo veo, funcion setcookie
Publicado por: Castg! en 29 Marzo 2010, 04:55 am
si es que no modificaste nada, cambio algo en tu host, seria bueno que lo pruebes en otro gratuito como 00webhost para comprobar el problema.