Sessiones ¿Qué puedo tener mal?

luilloxp
08 de Febrero del 2006
Hola a todos nuevamente. Mi situación es ésta. Pruebo los siguientes archivos localmente en una PC con WindowsXp, IIS 5, PHP5 y MySql 5 y me funciona perfectamente:

Primer archivo: login.php
<html>
<head>
<title>Autentificacion PHP</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {
background-color: #FFFF99;
}
.style1 {color: #990000}
-->
</style>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>
</head>
<body>
<div id="Layer1" style="position:absolute; left:314px; top:15px; width:301px; height:220px; z-index:1">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="303" height="231" align="middle">
<param name="movie" value="HAMMovieLoaderFormAccess.swf">
<param name=quality value=high>
<param name="BGCOLOR" value="#FFFF99">
<embed src="HAMMovieLoaderFormAccess.swf" width="303" height="231" align="middle" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" bgcolor="#FFFF99"></embed>
</object>
</div>
<h1 align="center" class="style1">&nbsp;</h1>
<p><br>
<br>
<br>
<br>
<br>
<br>
<br>
</p>
<p><br>
</p>
<p>&nbsp; </p>
<form action="logincontrol.php" method="POST">
<table align="center" width="225" cellspacing="2" cellpadding="2" border="0">
<tr>
<td colspan="2" align="center"
<?php if ($_GET["errorusuario"]=="si"){?>
bgcolor=red><span style="color:ffffff"><b>Datos incorrectos</b></span>
<?}else{?>
bgcolor=#cccccc>Introduce tu clave de acceso
<?}?></td>
</tr>
<td align="right"><span class="style1">EMAIL</span>:</td>
<td><input type="Text" name="nombre" size="22" maxlength="22"></td>
</tr>
<tr>
<td align="right"><span class="style1">PASSWORD</span>:</td>
<td><input type="password" name="contrasena" size="10" maxlength="10"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="Submit" value="Entrar"></td>
</tr>
</table>
</form>
<br><br><br>
<P align="Justify"><marquee width=100% height="60" direction="up" scrollamount="1"><font size="6" color="black">Para poder hacer uso de este servicio debes pasar por el Departamento de Sistemas de Información o llamar a la extensión 4314 para crear tu password.</font></marquee></p>
<!-- <P align="center">Para más información, favor de llamar a la extensión 4314 ó 1156</p> -->
</body>
</html>

Segundo Archivo: logincontrol.php
<?php
//Autentificación
$muerte = "Acceso Denegado";
//Les paso los valores introducidos en los campos "nombre" y "contrasena" del formulario index.php a la variable $PHP_AUTH_USER y $PHP_AUT_PW.
$PHP_AUTH_USER = $_REQUEST["nombre"];
$PHP_AUTH_PW = $_REQUEST["contrasena"];
//Verifico si la variable $PHP_AUTH_USER no está definida.
if(!isset($PHP_AUTH_USER)) {
/* No tocar este código. Por futuras referencias.
//header('WWW-Authenticate: Basic realm="Nombre del Site"');
//header('HTTP/1.0 401 Unauthorized');
//echo $muerte;
*/
exit;
} else {
// valido mi clave en el servidor y me conecto a la base de datos...
if ($db_link = mysql_connect("localhost", "root", "")) {
mysql_select_db("requestlogin");
}
// Selecciono los campos de la tabla usuarios y los comparo con los
// introducidos en index.php.
$sql = "select * from gerenciales
where ((username = '$PHP_AUTH_USER')
and (password = '$PHP_AUTH_PW')) ";
$qpass = mysql_query($sql, $db_link);
// Si los datos introducidos en el formulario index.php son válidos, establezco una sesión y le permito el acceso al usuario, si no, le aparecerá nuevamente la pantalla de autentificación con indicación de que los datos introducidos son incorrectos.
if(mysql_num_rows($qpass)!= 0) {
session_start();
//session_register("autentificado");
$_SESSION["autentificado"]= "SI";
//$autentificado="si";
header("Location: SolicitudJumpPage.php");
echo $muerte;
exit;
} else {
//echo $muerte;
header("Location: login.php?errorusuario=si");
}

}
?>


Tercer archivo: security.php
<?php
//Tomo Variables de sesion sobre la autentificacion
//session_register("autentificado");
session_start();
//Comprueba que el usuario esta autentificado
if ($_SESSION["autentificado"] != "SI") {
//si no existe, envio a la página de autentificacion
header("Location: login.php");
// header("Location: index.php");
//además salgo de este script
exit();
}
?>

Cuarto archivo: SolicitudJumpPage.php
<?php
include("security.php");?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>

<style type="text/css">
<!--
body {
background-image: url();
background-color: #FFFF99;
}
body,td,th {
color: #990000;
}
-->
</style>
<script language="JavaScript" type="text/JavaScript">
<!--
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->

function MM_jumpMenu(targ,selObj,restore){ //v3.0
eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}

function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_jumpMenuGo(selName,targ,restore){ //v3.0
var selObj = MM_findObj(selName); if (selObj) MM_jumpMenu(targ,selObj,restore);
}
//-->
</script>

</head>

<body bgproperties="fixed">
<form action="" method="GET">
<blockquote>
<blockquote>
<blockquote>
<h1 align="center">&nbsp;</h1>
<div id="Layer1" style="position:absolute; width:92px; height:89px; z-index:1; left: 55px; top: 51px;"><img src="EscudoSolicitud.gif" width="108" height="98"></div>
<h2 align="center"><em>Solicitud Para Accesos - Sistema de Informaci&oacute;n Electr&oacute;nicos</em></h2>
<div id="Layer2" style="position:absolute; width:90px; height:101px; z-index:2; left: 850px; top: 50px;"><img src="EscudoSolicitud.gif" width="108" height="98"></div>
<h2 align="center"><em>Hospital Auxilio Mutuo </em></h2>
<p align="center">&nbsp;</p>

<blockquote>
<p>&nbsp;</p>
</blockquote>
<h3 align="center"><em><strong>A todo Personal:</strong></em></h3>
<ul>
<li><em><strong>Seleccione el tipo de solicitud que desea radicar y </strong></em></li>
<li><em><strong>Oprima &quot;Go&quot;</strong></em></li>
</ul>
<p align="center">
<select name="Seleccin" onChange="MM_jumpMenu('parent',this,0)">
<option value="PageSolicitudPasswordKeane_Empleados.php">Solicitud Password Keane - Empleados</option>
<option value="SolicitudPasswordKeane_FacultadMedica.htm">Solicitud Password Keane - Facultad M&eacute;dica</option>
<option value="SolicitudPasswordKeane_Contratistas.htm">Solicitud Password Keane - Contratistas</option>
<option value="SolicitudPasswordNetworkAccess.htm">MIS Password Request For Network Access</option>
<option value="SolicitudEntradasPagosNotasKeane.htm">Autorizaci&oacute;n Para Entradas de Pagos y Notas - Keane Insight</option>
<option value="SolicitudCreacionDeMedicoKeane.htm">Creaci&oacute;n De M&eacute;dico en Keane Insight</option>
<option value="SolicitudReversarCargosPagosKeane.htm">Autorizaci&oacute;n Para Reversar Cargos y/o Pagos Keane</option>
<option value="SolicitudRequisicionAlmacenKeane.htm">Sistema de Requisici&oacute;n al Almac&eacute;n</option>
<option value="SolicitudCambioEliminacionNivelAccesoKeane.htm">Cambio o Eliminaci&oacute;n de Nivel de Acceso</option>
<option value="SolicitudNumeroGrupoMedico.htm">Solicitud N&uacute;mero Grupo M&eacute;dico</option>
<option value="SolicitudInstalacionProgramas.htm">Solicitud Para Instalaci&oacute;n de Programas</option>
<option value="SolicitudPasswordInterboro.htm">Solicitud Para Password ITS</option>
<option value="SolicitudDeInformes.htm">Solicitud de Informes</option>
</select>
<input type="button" name="Button1" value="Go" onClick="MM_jumpMenuGo('Seleccin','parent',0)">
</p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<p align="center">&nbsp;</p>
<!-- #BeginLibraryItem "/Library/Información.lbi" -->
<h3 align="center">Para m&aacute;s informaci&oacute;n favor de llamar al Help Desk 4314 &oacute; 1154</h3>
<!-- #EndLibraryItem --><p align="center">&nbsp;</p>
</blockquote>
</blockquote>
</blockquote>



</form>

</body>
</html>

Este último archivo me presenta una lista de otras páginas que hice en php con html. La cosa es que localmente me funciona la cuestión de las sessiones y la seguridad, pero en el servidor al autentificarme me presenta la misma pantalla de autentificar y no me lleva hasta la primera página asegurada. Es como si el servidor no entendiera o no aceptara el include que le coloco en la parte superior. Si ya he verificado que no puede haber más espacio antes del include. ya lo he escrito de varias formas, y ya comprobé el php.ini del servidor con el de la máquina local y todo está igual. Qué puede estar pasando.

mampato
08 de Febrero del 2006
Estasseguro que RegisterGlobal esta On?