Foros del Web » Programando para Internet » PHP »

Problemas con session_start

Estas en el tema de Problemas con session_start en el foro de PHP en Foros del Web. hola a todos, estoy aprendiendo PHP con un libro y copie un código pero no hace lo que debe. En vez de darme acceso a ...
  #1 (permalink)  
Antiguo 29/03/2006, 08:02
Avatar de luis_carlos  
Fecha de Ingreso: mayo-2004
Ubicación: Santa Cruz
Mensajes: 121
Antigüedad: 13 años, 6 meses
Puntos: 0
Exclamación Problemas con session_start

hola a todos, estoy aprendiendo PHP con un libro y copie un código pero no hace lo que debe. En vez de darme acceso a una página determinada me da el "error" que escribi.

el codigo es el siguiente:

index.php
<html>
<head>
<title>PHP/Mysql</title>
</head>

<body>
<div align="center">
<?
$error=$_GET['error'];
if($error==""){
}else{
echo $error;
}
?>
<form action="validacion.php" method="get">
<div align="center">
<h2>Módulo de pedidos<br /></h2>
</div>
<table width="250" border="1" align="center" cellpadding="2" cellspacing="2" bgcolor="#CCCCCC">
<tr>
<td width="89">Usuario:</td>
<td width="145"><input name="user" type="text" /></td>
</tr>
<tr>
<td>Password:</td>
<td><input name="password" type="password" /></td>
</tr>
<tr>
<td colspan="2"><div align="center">
<input type="submit" value="Ingresar" />
</div></td>
</tr>
</table>
</form>
<br />
</body>
</html>

// conexion.php
function Conectarse(){
if(!($link=mysql_connect("localhost","root",""))){
echo "Error conectando a la Base de Datos.";
exit();
}
if (!mysql_select_db("editorialmegabyte",$link)){
echo "Error seleccionando la Base de Datos.";
exit();
}
return $link;
}
?>

validacion.php
<?
// llamando a la página conexion.php
include("conexion.php");

// recibiendo los datos del formulario y almacenandolo en las variables
$user=$_GET['user'];
$password=$_GET['password'];

// abre la conexión y valida los datos ingresados por el ususario
$link=Conectarse();
$result=mysql_query("select nivel from usuarios where user like '$user' and password like '$password'",$link);

if($row=mysql_fetch_array($result)){

do{
// si el usuario existe crea una sesion
session_start();
$_SESSION['nivel']=$row[0];
// luego de crear la sesion redirecciona a la página donde se mostrara el menú
header("Location: home.php");
// si el usuario no esta registrado muestra el siguiente mensaje
}while($row=mysql_fetch_array($result));
}else{
echo " Datos erroneos : ".$user;
}
// cerrando la conexion
mysql_close($link);
?>

home.php
<?
session_start();
if($_SESSION['nivel']==1){
}
else{
header("Location: index.php?error=NO tiene acceso al sistema !!");
}
?>
<html>.........

cuando le doy el username y el password me da el error <<< NO tiene acceso al sistema !! >>>
que hago!!!

Gracias
__________________
Saludos Luis Carlos . . .
  #2 (permalink)  
Antiguo 29/03/2006, 08:16
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 12 años, 9 meses
Puntos: 33
Pues tu codigo parece estar bien. Estas seguro que lo que te arroja $row[0] es igual a uno, no sera que trae otro dato. Yo te recomendaria que pusieras en echo $row[0]; para checar el valor que trae.
  #3 (permalink)  
Antiguo 29/03/2006, 10:45
 
Fecha de Ingreso: diciembre-2005
Mensajes: 165
Antigüedad: 12 años
Puntos: 4
Yo, lo que haria, en primer caso, seria enviar los datos del formulario METHOD=POST.
Luego el archivo validacion.php lo haria asi:
Código PHP:
<?
// llamando a la página conexion.php
include("conexion.php");

// recibiendo los datos del formulario y almacenandolo en las variables 
$user=$_POST['user'];
$password=$_POST['password'];

// abre la conexión y valida los datos ingresados por el ususario
$link=Conectarse();
$result=mysql_query("select nivel from usuarios where user = '$user' and password = '$password'",$link);

if(
mysql_num_rows($result) > 0){
session_start();
$_SESSION['nivel']=true;
header("Location: home.php");
}else{
echo 
" Datos erroneos : ".$user;
}
mysql_close($link);
?>
Y luego el home.php:
Código PHP:
<?
session_start
();
if(empty(
$_SESSION['nivel'])){
header("Location: index.php?error=NO tiene acceso al sistema !!");
}
else{
echo 
"AUTENTIFICACION CORRECTA";
}
?>
Hasta luego
  #4 (permalink)  
Antiguo 03/04/2006, 10:39
Avatar de luis_carlos  
Fecha de Ingreso: mayo-2004
Ubicación: Santa Cruz
Mensajes: 121
Antigüedad: 13 años, 6 meses
Puntos: 0
Hola, gracias por las respuestas, lo que hice para verificar si row[0]==1 fue lo siguiente:
validación.php
Código PHP:
do{
        
// si el usuario existe crea una sesion
        
session_start();
        
$_SESSION['nivel']=$row[0];
        
// luego de crear la sesion redirecciona a la página donde se mostrara el menú
        
header("Location: home.php?nivel=$row[0]");
        
// si el usuario no esta registrado muestra el siguiente mensaje
    
}while($row=mysql_fetch_array($result)); 
y luego en home.php
Código PHP:
session_start();
    if(
$_GET['nivel']==1){
    }
    else{
        
$nivel=$_SESSION['nivel'];
        
header("Location: index.php?error=NO tiene acceso al sistema !!");
    }
    
$nivel=$_GET['nivel'];
    echo 
$nivel."-*-"
y funciona para esta página pero para otras no
creo que es problema de session_start, no se si hay que configurar algo mas o que hacer
__________________
Saludos Luis Carlos . . .
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 00:54.