Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)
Autor
|
Tema: Es apache, yo o mi proveedor ? (solved) (Leído 1,986 veces)
|
Diabliyo
Desconectado
Mensajes: 1.270
M.S.I Angel Cantu
|
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 !
|
|
|
|
« Última modificación: 3 Febrero 2011, 00:07 por Diabliyo »
|
En línea
|
|
|
|
|
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.
|
|
|
|
|
En línea
|
|
|
|
Diabliyo
Desconectado
Mensajes: 1.270
M.S.I Angel Cantu
|
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
|
|
|
|
|
En línea
|
|
|
|
|
bomba1990
|
mixed 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.
|
|
|
|
|
En línea
|
|
|
|
~ Yoya ~
Wiki
Desconectado
Mensajes: 954
|
poner la linea del 60 al 75
|
|
|
|
|
En línea
|
|
|
|
Diabliyo
Desconectado
Mensajes: 1.270
M.S.I Angel Cantu
|
poner la linea del 60 al 75
# cat estadistica.php, es de la 48 a la 81, te marco las lineas importantes: <?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--> $nav= get_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);
|
|
|
|
« Última modificación: 2 Febrero 2011, 15:35 por Diabliyo »
|
En línea
|
|
|
|
~ Yoya ~
Wiki
Desconectado
Mensajes: 954
|
Quizás no estés mandando un User Agent o exista algún otro problema. Puedes probar este source: <?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(). The 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.
|
|
|
|
|
En línea
|
|
|
|
Diabliyo
Desconectado
Mensajes: 1.270
M.S.I Angel Cantu
|
Quizás no estés mandando un User Agent o exista algún otro problema. Puedes probar este source: <?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
|
|
|
|
|
En línea
|
|
|
|
~ Yoya ~
Wiki
Desconectado
Mensajes: 954
|
Quizas el problema sea del browscap.ini... <?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...
|
|
|
|
|
En línea
|
|
|
|
Diabliyo
Desconectado
Mensajes: 1.270
M.S.I Angel Cantu
|
Quizas el problema sea del browscap.ini... <?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: <?php # Mostrando Navegador if( !empty($_SERVER['HTTP_USER_AGENT']) ) { $nav= 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($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.'; ?>
|
|
|
|
« Última modificación: 2 Febrero 2011, 21:43 por Diabliyo »
|
En línea
|
|
|
|
~ Yoya ~
Wiki
Desconectado
Mensajes: 954
|
Si el source que te pase no imprime nada el problema es de browscap.ini. fíjate que el browscap que uses es para PHP y que este en la ruta adecuada.
Saludos.
|
|
|
|
|
En línea
|
|
|
|
Diabliyo
Desconectado
Mensajes: 1.270
M.S.I Angel Cantu
|
Si el source que te pase no imprime nada el problema es de browscap.ini. fíjate que el browscap que uses es para PHP y que este en la ruta adecuada.
Saludos.
Pues el browscap.ini no es el problema, ya que para salir de dudas he bajado nuevamente el php_browscap.ini de AQUI, que es la version para PHP. La he subido al directorio del blog y pues en el php.ini tengo declarado asi: [browscap] browscap = php_browscap.ini Voy tambien al phpinfo() y me sale el valor: browscap | php_browscap.ini | php_browscap.ini Pero el problema persiste  ... Saludos !
|
|
|
|
|
En línea
|
|
|
|
~ Yoya ~
Wiki
Desconectado
Mensajes: 954
|
browscap = php_browscap.ini En que directorio se encuentra php_browscap.ini¿? Te recomiendo que pongas el path completo ps, porque el browscap no esta funcionando
|
|
|
|
|
En línea
|
|
|
|
Diabliyo
Desconectado
Mensajes: 1.270
M.S.I Angel Cantu
|
En que directorio se encuentra php_browscap.ini¿? Te recomiendo que pongas el path completo ps, porque el browscap no esta funcionando
Tomando en cuenta que es un hsoting web de GoDaddy, pondria el path completo asi: /home/bla/bla/bla/bla/php_browscap.ini ? Hare un getcwd(); Cabe mencionar que GoDaddy solo lee el PHP.INI que esta en la raiz del sitio, de modo que si en la raiz tengo carpetas las cuales invocan sub-dominios, los efectos del PHP.INI los toman los sub-dominio (carpetas), asi no repito el INI en los folders. Saludos !
|
|
|
|
|
En línea
|
|
|
|
~ Yoya ~
Wiki
Desconectado
Mensajes: 954
|
Ps hacerlo ya que el error esta en browscap y te recomiendo que vayas probando con el source que poste antes de ejecutar el source que te esta dando problemas. <?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); ?> Saludos.
|
|
|
|
|
En línea
|
|
|
|
|
|