Es apache, yo o mi proveedor ? (solved)

Iniciado por Diabliyo, 1 Febrero 2011, 05:21 AM

0 Miembros y 1 Visitante están viendo este tema.

Diabliyo

Buenas...

Recien actualice mi plan con GoDaddy y pase de ser un hosting shared a un hosting web, mas que nada porque el Hosting Web incluia una version mas nueva de Apache, lo cual el Hosting Shared se habia quedado con una version ya muy pasadita !.

En fin, despues que hicieron la migracion todos mis archivos quedaron en su sitio, el unico problema es que ahora no entiendo porque este error persiste:

Warning: Invalid argument supplied for foreach() in /home/content/15/4789315/html/lab/templates/
white_light/cuerpo/estadisticas.php on line 69


En donde la linea 68 invoca la funcion get_browser() que proporciona browscap.ini. Ya verifique y efectivamente browscap.ini esta cargandose en el PHP.INI (ya hice phpinfo()), y pues a como dice el error, el mensaje se da porque la funcion get_browser() no esta devolviendo un array.

Ya que en la siguiente liena (linea 69) invoco foreach en busca de los datos...

Pero bueno, si ha alguien le paso lo mismo o le esta pasando, por favor echenme una mano !

Saludos !

bomba1990

Description
mixed get_browser ([ string $user_agent [, bool $return_array = false ]] )

Attempts to determine the capabilities of the user's browser, by looking up the browser's information in the browscap.ini file.

disculpa si mi pregunta es un poco estupida, pero le pasaste los dos parametros a la funcion??

prueba con un var_dump() para saber que es lo que te esta devolviendo.
"Cuando le di de comer a los pobres me llamaron santo, pero cuando pregunte porque los pobres eran pobres me dijeron comunista"

http://sosinformatico.blogspot.com/
http://www.publisnet.com.ve

Diabliyo

Intentare pasar var_dump(), pero siempre he usado la funcion get_browser() sn argumentos,  ya que esta devuelve un array multiple con los datos del navegador.

Ademas estaba funcionando bien,  el fallo salio despues de actualizar apache :S

Saludos

bomba1990


Citarmixed get_browser ([ string $user_agent [, bool $return_array = false ]] )

yo la verdad desconocia de esta funcion, siempre sacaba la info por $_SERVER. pero te puse la funcion porque en la documentacion oficial de php dice que el segundo argumento es opcional y por defecto esta en false.
"Cuando le di de comer a los pobres me llamaron santo, pero cuando pregunte porque los pobres eran pobres me dijeron comunista"

http://sosinformatico.blogspot.com/
http://www.publisnet.com.ve

~ Yoya ~

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

Diabliyo

#5
Cita de: ~ Yoya ~ en  1 Febrero 2011, 21:09 PM
poner la linea del 60 al 75

# cat estadistica.php, es de la 48 a la 81, te marco las lineas importantes:
Código (php) [Seleccionar]
<?php
            
# Mostrando IP
            # detectando proxy
            
if( isset($_SERVER['HTTP_X_FORWARDED_FOR']) )
            
$proxy_ip$_SERVER['HTTP_X_FORWARDED_FOR'];
            else if( isset(
$_SERVER['HTTP_VIA']) )
            
$proxy_ip$_SERVER['HTTP_VIA'];
            else 
 $proxy_ip=0;
            
            echo 
'IP: <b>';
            
            if( 
$proxy_ip #si existe ip proxy, entonces usa proxy
            
echo $proxy_ip;
            else 
# no usa proxy
            
 echo $_SERVER['REMOTE_ADDR'];
            echo 
'</b>';
            
            if( 
$proxy_ip # ahora mostramos la IP del proxy
            
echo '<br>Utiliza Proxy IP: <b>'$_SERVER['REMOTE_ADDR']. '</b>';
            

            
# Mostrando Navegador
68--> $navget_browser();
69--> foreach ( $nav as $key => $val )
{
if( !strcmp($key"parent" ) )
{
if( is_a_robot($val) )
echo '<br>Eres un Robot ('proteger_cadena($val). ')';
else
echo '<br>Navegador: 'proteger_cadena($val);
}
else if( !strcmp($key"platform" ) )
echo '<br>S.O: 'proteger_cadena($val);
}
echo '<br>Geo: ';

?>





El problema empezo cuando se actualizo Apache en mi hosting :(, de echo si ven la cahce de Google de mi blog pueden confirmar que detecta el navegador de Google, lo detecta como robot.

Ahora simplemente no puedo detectar :(

Saludos !

=== EDITADO ===

He verficado que la variable user_agent obtenida mediante phpinfo() esta vacia :S... Tal vez por eso el error, no ?

Ademas ya modifique la linea 68 agregando el user agent de $_SERVER, pero persiste el problema:

$nav= get_browser($_SERVER['HTTP_USER_AGENT'], true);

~ Yoya ~

Quizás no estés mandando un User Agent o exista algún otro problema. Puedes probar este source:

Código (php) [Seleccionar]
<?php
if(empty($_SERVER['HTTP_USER_AGENT']))
{
   echo 
"No existe user agent";
   exit;
}
$nav get_browser();
print_r($nav);
?>





No es necesario que le pases como segundo argumento $_SERVER['HTTP_USER_AGENT'] a la función get_browser().
Cita de: php.netThe User Agent to be analyzed. By default, the value of HTTP User-Agent header is used; however, you can alter this (i.e., look up another browser's info) by passing this parameter.

Saludos.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

Diabliyo

Cita de: ~ Yoya ~ en  2 Febrero 2011, 21:08 PM
Quizás no estés mandando un User Agent o exista algún otro problema. Puedes probar este source:

Código (php) [Seleccionar]
<?php
if(empty($_SERVER['HTTP_USER_AGENT']))
{
   echo 
"No existe user agent";
   exit;
}
$nav get_browser();
print_r($nav);
?>







No es necesario que le pases como segundo argumento $_SERVER['HTTP_USER_AGENT'] a la función get_browser().
Saludos.

Si hay user agent: Mozilla/5.0 (X11; U; Linux i686; es-MX; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.04 (lucid) Firefox/3.6.13 (lo que contiene $_SERVER['HTTP_USER_AGENT']), y lo que se imprime el comando print_r($val) es: nada.

bye

~ Yoya ~

Quizas el problema sea del browscap.ini...


Código (php) [Seleccionar]
<?php
$ua 
get_browser('Mozilla/5.0 (X11; U; Linux i686; es-MX; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.04 (lucid) Firefox/3.6.13'true);
print_r($ua);
?>


Fijarte si funciona...
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

Diabliyo

#9
Cita de: ~ Yoya ~ en  2 Febrero 2011, 21:36 PM
Quizas el problema sea del browscap.ini...


Código (php) [Seleccionar]
<?php
$ua 
get_browser('Mozilla/5.0 (X11; U; Linux i686; es-MX; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.04 (lucid) Firefox/3.6.13'true);
print_r($ua);
?>


Fijarte si funciona...

No imprime nada :(, mira, este es el code ahora:

Código (php) [Seleccionar]
<?php
# Mostrando Navegador
if( !empty($_SERVER['HTTP_USER_AGENT']) )
{
$navget_browser('Mozilla/5.0 (X11; U; Linux i686; es-MX; rv:1.9.2.13) Gecko/20101206 Ubuntu/10.04 (lucid) Firefox/3.6.13'true);
print_r($nav);
foreach ( $nav as $key=>$val )
{
if( !strcmp($key"parent" ) )
{
if( is_a_robot($val) )
echo '<br>Eres un Robot ('proteger_cadena($val). ')';
else
echo '<br>Navegador: 'proteger_cadena($val);
}
else if( !strcmp($key"platform" ) )
echo '<br>S.O: 'proteger_cadena($val);
}
}
else echo 
'<br>Navegador: no detectado.';
?>