Foros del Web » Programando para Internet » PHP »

IE7 no reconoce variable

Estas en el tema de IE7 no reconoce variable en el foro de PHP en Foros del Web. Hola Tengo este código en index.php: Código PHP: include ( "ie.php" ); //Detectar si el navegador es IE 7 y no mostrar la página function  detect_ie7 ( $navigator_user_agent ) {     if ( stristr ( $navigator_user_agent ,  "msie 7" )) ...
  #1 (permalink)  
Antiguo 06/12/2011, 19:51
 
Fecha de Ingreso: julio-2009
Mensajes: 36
Antigüedad: 15 años, 4 meses
Puntos: 0
IE7 no reconoce variable

Hola

Tengo este código en index.php:
Código PHP:
include ("ie.php");
//Detectar si el navegador es IE 7 y no mostrar la página
function detect_ie7($navigator_user_agent)
{
    if (
stristr($navigator_user_agent"msie 7"))
    {
        echo 
$ieviejo; exit;
    } else return 
false;
}
detect_ie7($_SERVER['HTTP_USER_AGENT']);

//Detectar si el navegador es IE 6 o inferior y no mostrar la página
$browser get_browsernulltrue );
if( 
$browser['browser'] == "IE" )
{
    if( 
$browser['majorver'] <= )
    {
        echo 
$ieviejo; exit;
    }

$ieviejo esta definida en ie.php. IE5.5 y IE6 muestran la variable sin problema, pero IE7 no. Por lo que veo no identifica la variable. Si pongo
Código PHP:
echo "hola".$ieviejo 
ofrece hola, pero nada de lo contenido en la variable. Y es independiente de que defina la variable en ie.php o en el archivo index.

¿Alguna idea de por qué pasa?

Un saludo.
  #2 (permalink)  
Antiguo 07/12/2011, 00:03
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: IE7 no reconoce variable

PHP se ejecuta en el servidor y sólo envía el contenido HTML que tu armas, por lo tanto, el error no es del navegador, sino del programador.

Resulta que si tienes definida la variable $ieviejo en ámbito global, no existe dentro de funciones a menos que incluyas la siguiente línea en cada función donde la requieras:

global $ieviejo;
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 07/12/2011, 11:41
 
Fecha de Ingreso: julio-2009
Mensajes: 36
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: IE7 no reconoce variable

Hola Triby, gracias por responder.

Mira esta página: [URL="http://www.infochinchillas.com/des/index2.php"]http://www.infochinchillas.com/des/index2.php[/URL]

El código es el siguiente:
Código PHP:
<?php 
$ieviejo 
"ie7";
$user_agent $_SERVER['HTTP_USER_AGENT'];
$browser get_browsernulltrue );
if (
stristr($user_agent"MSIE")) {
    if( 
$browser['majorver'] !="" && $browser['majorver'] <= )  {$ie="ie<=6";}
    elseif (
stristr($user_agent"MSIE 7")) {$ie=$ieviejo;}
    else
        {
            if (
preg_match('/Trident\/4\.0;/i'$user_agent) > 0) {$ie="ie8";}
            else {
$ie="ie>=9";}
        }
}
else {
$ie="noie";}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta http-equiv="content-language" content="es-es" />
</head>
<body>
<div id="div1" style="height: 50px; width: 100%;">
<?php
    
echo $ie;
?>
</div>
<div id="div2" style="height: 50px; width: 100%; background-color: #666">
<?php
    
if ($ie="ie8") echo $ie; else echo "No es ie8";
?>
</div>
</body>
</html>
Con este código puedo seleccionar bien todos los navegadores e incluso IE7 muestra ya el valor de $ieviejo (como se ve con el echo del div1), pero ahora me falla a la hora de la sentencia del div2. Siempre asigna a $ie el valor ie8. ¿No se supone que if es un selector? ¿Qué está pasando?

Un saludo y gracias por la ayuda.
  #4 (permalink)  
Antiguo 07/12/2011, 19:41
 
Fecha de Ingreso: julio-2009
Mensajes: 36
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: IE7 no reconoce variable

Bueno, ya me funciona, era el fallo más tonto, envez de = era ==
Código PHP:
Ver original
  1. if ($ie="ie8") echo $ie; else echo "No es ie8";
Código PHP:
Ver original
  1. if ($ie=="ie8") {echo $ie;} else {echo "No es ie8";}

Un saludo.

Etiquetas: ie7, reconoce, variables
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:12.