Buenos dias amigo tengo un problemon con las variables de session y nunca antes lo habia tenido de hecho en mi PC funciona correctamente.
- Desarrolle una aplicacion en mi PC basado en PHP - IIS - MSSQL y funciona a totalidad
pero llego el momento de subirlo al Servidor (Hosting) donde va a convivir y aqui comienza el suplicio.
uso:
una pagina index.php donde creo mis variables de session pero restringi el acceso con un include anexo mi codigo para q puedan ver
<?PHP
include("conexion\conexion.ini.php");
conectate();
ob_start();
session_start();
$qrylogin = "BUSCA_usuarios_clave '".$usuario."'";
$qrylogin = $qrylogin.",'".md5($password)."'";
$resultlogin = mssql_query($qrylogin);
$count = mssql_num_rows($resultlogin);
if($count == 0)
$mensaje = "El usuario ó la Clave no se encontraron en la Base de Datos ... ";
else
{
// creamos varibles de Session
$row = mssql_fetch_array($resultlogin);
$_SESSION['id_usuario'] = $row[0];
header("location:inicio.php");
}
}
?>
y el inicio.php
<?
function session_valida()
{
session_start();
$valido = true;
//validacion para no violar las paginas por el url
if(!isset($_SESSION['id_usuario']))
{
$valido = false;
#session_destroy(); // destruyo la sesión
#session_unset();
}
if ($valido == false)
{
#echo 'pase';
header("location:index.php");
}
else
{
$fechaGuardada = $_SESSION['ultimoacceso'];
$ahora = date("Y-n-j H:i:s");
$tiempo_transcurrido = (strtotime($ahora)-strtotime($fechaGuardada));
//comparo el tiempo transcurrido
if($tiempo_transcurrido >= 10000)
{
//si pasaron 20 minutos o más
session_destroy(); // destruyo la sesión
session_unset();
#echo 'pase';
header("Location:index.php"); //envío al usuario a la pag. de autenticación
//sino, actualizo la fecha de la sesión
}
else
{
$_SESSION["ultimoAcceso"] = $ahora;
}
}
//fin validacion para no violar las paginas por el url
}
?>
y el restringir que donde IE me da problemas y no en Firefox
<?
function session_valida()
{
session_start();
$valido = true;
//validacion para no violar las paginas por el url
if(!isset($_SESSION['id_usuario']))
{
$valido = false;
#session_destroy(); // destruyo la sesión
#session_unset();
}
if ($valido == false)
{
#echo 'pase';
header("location:index.php");
}
else
{
$fechaGuardada = $_SESSION['ultimoacceso'];
$ahora = date("Y-n-j H:i:s");
$tiempo_transcurrido = (strtotime($ahora)-strtotime($fechaGuardada));
//comparo el tiempo transcurrido
if($tiempo_transcurrido >= 10000)
{
//si pasaron 20 minutos o más
session_destroy(); // destruyo la sesión
session_unset();
#echo 'pase';
header("Location:index.php"); //envío al usuario a la pag. de autenticación
//sino, actualizo la fecha de la sesión
}
else
{
$_SESSION["ultimoAcceso"] = $ahora;
}
}
//fin validacion para no violar las paginas por el url
}
?>
revise el PHP.ini y pude ver q faltaba colocar la ruta de:
session.save_path = "C:\PHP\sessiondata"
y la cambie pero sigue dandome problemas
he buscado en Papá Google pero nada me ha servido ojala me pueda ayudar
Mi pc tiene windows xp - PHP - IIS - MSSQ2000
el Servidor tiene windows 2003 - PHP - IIS - MSSQ2008
de antemano gracias a quien me pueda dar una posible solucion.