Foros del Web » Programando para Internet » PHP »

No funciona mi código PHP en EXPLORER

Estas en el tema de No funciona mi código PHP en EXPLORER en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 08/05/2011, 17:18
 
Fecha de Ingreso: octubre-2008
Mensajes: 87
Antigüedad: 15 años, 6 meses
Puntos: 0
Pregunta No funciona mi código PHP en EXPLORER

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:
Código:
<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:
Código:
<?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¡¡¡¡¡
  #2 (permalink)  
Antiguo 08/05/2011, 17:49
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: No funciona mi código PHP en EXPLORER

Ya te digo que el PHP no depende del navegador que estés usando, es un código que se ejecuta en el servidor.

Yo le echaría la culpa a esa llamada javascript que has puesto al principio. Porque no pruebas a quitar la llamada y poner un enlace normal a ver que te ocurre.

Puede ser también que explorer no mande los mismos parámetros que Firefox en la petición. Todo es cuestión de ir probando.
  #3 (permalink)  
Antiguo 08/05/2011, 18:32
 
Fecha de Ingreso: octubre-2008
Mensajes: 87
Antigüedad: 15 años, 6 meses
Puntos: 0
SOLUCIONADO: No funciona mi código PHP en EXPLORER

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.

Muchas gracias Alex88 por la ayuda¡¡¡¡

Etiquetas: explorer
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 03:57.