PHP - Mi código PHP no se ejecuta en EXPLORER

 
Vista:

Mi código PHP no se ejecuta en EXPLORER

Publicado por Diana BG (9 intervenciones) el 09/05/2011 01:23:38
Buenas:
Os cuento. Estamos intentando crear una web para listar al pulsar sobre las asignaturas impartidas en un doctorado, el listado de alumnos matriculados. Existe una pág con las asignaturas por cada año (aunque esto sea raro por el momento tiene q ser así por una causa externa), de tal forma que la pag del año actual se llama "asignaturas.php" y las de años anteriores "asignaturas2010.php", "asignaturas2009.php", etc...Para listar los alumnos de una asignatura, se pincha sobre un enlace junto a la asignatura que abre una nueva ventana encima de la actual cuyo contenido es la pag "AlumnosAsig.php" y es común para todas las pág de "asignaturasX.php" y común a cada enlace de las asignaturas mostradas.
Para saber de que asignatura deseo listar los alumnos, le paso un identificador de asignatura, y para saber el año, solo necesito leer el nombre de la pág que llama a "alumnosAsig.php" (si es el año actual, será "asignaturas.php" y si es un año anterior incluira al final el año "asignaturas2010.php").

Esta es la llamada:
1
<a href="javascript:MM_openBrWindow('alumnosAsig.php?id=1','ListadoAlumnos','scrollbars=yes,width=600,height=400')" ><img src="imagenes/alumnos.png" alt="Alumnos" width="24" height="24" border="0" align="absbottom" title="Alumnos" /></a>


Lo que ocurre es lo siguiente:
En FIREFOX MOZILLA funciona correctamente TODO, pero en EXPLORER, abre la ventana, y sólo muestra el nombre de la asignatura. No muestra el listado, ni el año, ni nada más..... ni tampoco da error.

el código de "AlumnosAsig.php" es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php
header('Content-Type:text/html; charset=UTF-8');
 
require ('conexionInc.php'); // incluir configuracion.
$id_asig=($_GET['id']);/identificador de la asignatura
 
///////OBTENER EL AÑO DEL QUE DESEO LISTAR ALUMNOS////////////////////////////////
//Como la pg del año actual se llama "asignaturas.php" y las de años anteriores
//se llaman "asignaturasEL_AÑO.php" puedo obtener de el nombre de la página el año //del que deseo listar los alumnos.
 
//en $Pagredir[0] SOLO ruta COMPLETA 
$Pagredir=explode("?",$_SERVER['HTTP_REFERER']);
echo($Pagredir[0];---> Esto no provoca ninguna salida en pantalla con EXPLORER
//obtener  solo el nombre de la página (es del tipo asignaturasX.php"
$Pagredir=strstr($Pagredir[0],"asignaturas");

if ($Pagredir=="asignaturas.php"){ //es el año actual
 $anyo=date("Y");
  
}else{
   $anyo=substr($Pagredir,11,4);//me quedo solo con el año
 
}
echo($anyo);---> Esto no provoca ninguna salida en pantalla con EXPLORER
/////////////////////////////////////////////////////////////////////////////////////////////////

$usuario=$_SESSION['usuario_login'];
$pag=$_SERVER['PHP_SELF']; 


$db_conexion= mysql_connect("$sql_host", "$sql_usuario", "$sql_pass") or die(header ("Location:P_cerrarsesion.php")) or die(mysql_error());
mysql_select_db("$sql_db") or die(mysql_error());
mysql_query ("SET NAMES 'utf8'");

$consulta = mysql_query("SELECT asignaturas.id_asig, alumnos.apellidos,alumnos.nombre,alumnos.id_univ FROM $sql_tabla6,$sql_tabla8,$sql_tabla9 WHERE ( (alum_asig.id_asig=".$id_asig.") AND(alum_asig.id_alum=alumnos.id_alum) AND (alum_asig.id_asig=asignaturas.id_asig) AND (alumnos.anyo='".$anyo."') ) ORDER BY alumnos.apellidos, alumnos.nombre") or die(mysql_error());
 
 
$nomAsig =mysql_fetch_array( mysql_query("SELECT nombre FROM $sql_tabla8 WHERE id_asig=".$id_asig)  );
 
 
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
 <title>Alumnos matriculados</title>
 
 <script src="funciones.js" type="text/javascript" language="JavaScript"> </script>
 <link href="style.css" rel="stylesheet" type="text/css" />
</head>
<body >
<br>
<?php
 
 echo ('<table width="560" border="1"  cellpadding="0" cellspacing="0" style="margin-left:20px;" >');
 
 echo ('<tr style="font-size:18px;color:#ffffff;background-color:#000066;">');
 echo ('<td colspan="2">&nbsp;<b>'.$nomAsig[0].'</b>('.$anyo.')</td></tr>');
 
 $lista_colores=array('#F0F0F0','#f5dfc8');
 $num_colores=2;
 $indice=0;
 
 while($row=mysql_fetch_array($consulta))
{
  $univ=mysql_fetch_array(mysql_query("SELECT universidad FROM $sql_tabla7 WHERE id_univ=".$row[3].";"));
  $color=$lista_colores[$indice % $num_colores];
  $indice++;
  echo ('<tr bgcolor='.$color.'><td width="8px" align="right">&nbsp;'.$indice.'.</td><td>&nbsp;'.$row[apellidos].', '.$row[nombre].' ('.$univ[0].')</td>');
  }
?>
 
</body>
</html>


No entiendo que ocurre ya que con el navegador Mozilla Firefox funciona sin problemas. He intentado ir quitando código para aislar el problema. Ni quitando todo y dejando solo el bloque de "OBTENER EL AÑO", es capaz de escribir por pantalla esa variable después de pasar por el if-else.

Las tablas usadas en la BD son las siguentes:
$sql_tabla6: tabla de alumnos con clave id_alum
$sql_tabla8: tabla de asignaturas con clave id_asig
$sql_tabla9: Tabla AsigAlum con la clave formada por id_alum+id_asig que guarda las asignaturas en las q se matricula un alumno.

NOTA: La BD es correcta. Un alumnos solo se matricula un único año, y por tanto no puede cursar una asignatura más de una vez.

¿puede alguien ayudarme? ¿p q no funciona en EXPLORER?

MUCHAS GRACIAS¡¡¡¡¡
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

SOLUCIONADO: Mi código PHP no se ejecuta en EXPLORER

Publicado por Diana BG (9 intervenciones) el 09/05/2011 02:30:06
El problema era q en EXPLORER da problemas $_SERVER['HTTP_REFERER'], asi que al no poder obtener la var $anyo no funcionaba nada, ni mostraba año, ni daba ningun resultado para la consulta. Todo funciona si obtengo la var pasandola con GET al igual que el id de asignatura.

Gracias¡¡
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

SOLUCIONADO: Mi código PHP no se ejecuta en EXPLORER

Publicado por xve (6935 intervenciones) el 09/05/2011 07:45:43
Hola Diana, te agradezco mucho que nos lo hayas comentado, pero me extraña un poco, ya que ese tipo de variable ($_SERVER, $_POST. $_GET, ...) se ejecuta en el servidor, no en el navegador.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar