Foros del Web » Programando para Internet » PHP »

Redirigiendo al usuario con sesiones

Estas en el tema de Redirigiendo al usuario con sesiones en el foro de PHP en Foros del Web. Hola he estado estudiando diversos métodos para redirigir al usuario con sesiones y finalmente me quiero quedar con el que me recomendaron antiguamente por este ...
  #1 (permalink)  
Antiguo 20/01/2012, 07:33
 
Fecha de Ingreso: diciembre-2011
Mensajes: 414
Antigüedad: 12 años, 4 meses
Puntos: 1
Redirigiendo al usuario con sesiones

Hola he estado estudiando diversos métodos para redirigir al usuario con sesiones y finalmente me quiero quedar con el que me recomendaron antiguamente por este foro pero tengo una duda

Inicio la sesión correctamente

<?php
ob_start();
$mail=$_POST["mail"];
$password=$_POST["password"];
if ($mail&&$password);
{
include("../config.php");
$query = mysql_query("SELECT * FROM users WHERE mail='$mail'");
$numrows = mysql_num_rows($query);
{
while ($row = mysql_fetch_assoc($query))
{
$dbusername = $row['mail'];
$dbpassword = $row['password'];
$dbalias = $row['alias'];
$dbname = $row['name'];
$dbsurname = $row['surname'];
$permisos = $row['permisos'];
//
}
if ($mail==$dbusername&&$password==$dbpassword)
{
echo"Contraseña correcta";
//
}
else
echo "Contraseña errónea";
}
}
ob_end_flush();
?>

Y luego cuando agrego este codigo donde dice "contraseña correcta"

$user = $_SESSION['permisos'];
switch ($user) {
case "10":
echo "Eres admin";
break;
case "2":
echo "eres mod";
break;
case "1":
echo "usuario normal";
break;
}

No entiendo el porque no me sale bien, el error que me sale es que no está definido permisos , el rol lo tengo asignado en la base de datos y no se porque

EDITO:

El config.php por si alguien lo quiere

<?php
$server = "localhost";
$database = "kfernandez";
$db_user = "kfernandez";
$db_pass = "brothers";
$table = "users";
$con = mysql_connect($server, $db_user, $db_pass);
mysql_select_db("kfernandez");
?>
  #2 (permalink)  
Antiguo 20/01/2012, 08:28
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Redirigiendo al usuario con sesiones

amigo creo que estas en un error, deberia ser asi:

Código PHP:
Ver original
  1. $_SESSION['permisos'] = $row['permisos'];
  2. switch ($_SESSION['permisos']) {
  3. case "10":
  4. echo "Eres admin";
  5. break;
  6. case "2":
  7. echo "eres mod";
  8. break;
  9. case "1":
  10. echo "usuario normal";
  11. break;
  12. // agregale esto para mayor seguridad
  13. default:
  14. echo "usuario invitado";
  15. break;
  16. }

Espero te sea de ayuda...!
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #3 (permalink)  
Antiguo 20/01/2012, 08:32
 
Fecha de Ingreso: diciembre-2011
Mensajes: 414
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Redirigiendo al usuario con sesiones

Mira ahor el error que me da

( ! ) Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively in Unknown on line 0

<?php
session_start();
$mail=$_POST["mail"];
$password=$_POST["password"];
if ($mail&&$password);
{
include("../config.php");
$query = mysql_query("SELECT * FROM users WHERE mail='$mail'");
$numrows = mysql_num_rows($query);
{
while ($row = mysql_fetch_assoc($query))
{
$dbusername = $row['mail'];
$dbpassword = $row['password'];
$dbalias = $row['alias'];
$dbname = $row['name'];
$dbsurname = $row['surname'];
$permisos = $row['permisos'];
//
}
if ($mail==$dbusername&&$password==$dbpassword)
{
echo "Contraseña correcta";
$_SESSION['permisos'] = $row['permisos'];
switch ($_SESSION['permisos']) {
case "10":
echo "Eres admin";
break;
case "2":
echo "eres mod";
break;
case "1":
echo "usuario normal";
break;
}
//
}
else
echo "Contraseña errónea";
}
}
?>
  #4 (permalink)  
Antiguo 20/01/2012, 08:36
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 18 años, 11 meses
Puntos: 394
Respuesta: Redirigiendo al usuario con sesiones

Cambia esto:

Código PHP:
Ver original
  1. $_SESSION['acceso'] = $row['permisos'];
  2. switch ($_SESSION['acceso']){
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #5 (permalink)  
Antiguo 20/01/2012, 12:52
 
Fecha de Ingreso: diciembre-2011
Mensajes: 414
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Redirigiendo al usuario con sesiones

Ahora no me da error pero no me muestra nada :(

EDITO

<?php
session_start();
$mail=$_POST["mail"];
$password=$_POST["password"];
if ($mail&&$password);
{
include("../config.php");
$query = mysql_query("SELECT * FROM users WHERE mail='$mail'");
$numrows = mysql_num_rows($query);
{
while ($row = mysql_fetch_assoc($query))
{
$dbusername = $row['mail'];
$dbpassword = $row['password'];
$dbalias = $row['alias'];
$dbname = $row['name'];
$dbsurname = $row['surname'];
$permisos = $row['permisos'];
//
}
if ($mail==$dbusername&&$password==$dbpassword)
{
$_SESSION['acceso'] = $row['permisos'];
switch ($_SESSION['acceso']) {
case "10":
echo "Eres admin";
break;
case "2":
echo "eres mod";
break;
case "1":
echo "usuario normal";
break;
}
//
}
else
echo "Contraseña errónea";
}
}
?>

Última edición por kfh1992; 20/01/2012 a las 13:05
  #6 (permalink)  
Antiguo 21/01/2012, 11:59
 
Fecha de Ingreso: diciembre-2011
Mensajes: 414
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Redirigiendo al usuario con sesiones

alguna idea al respeto? En la base de datos tengo la tabla configurada de la siguiente manera

id-name-surname-mail-password-permisos(tynit) y todo lo demas varcahr :(
  #7 (permalink)  
Antiguo 21/01/2012, 12:13
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Redirigiendo al usuario con sesiones

mire tu codigo y tenias varios errores haber prubeba asi y me comentas

Código PHP:
Ver original
  1. <?php
  2. $mail=$_POST['mail'];
  3. $password=$_POST['password'];
  4. if($mail&&$password){
  5.    
  6. include('../config.php');
  7. $query = mysql_query("SELECT * FROM users WHERE mail='$mail'");
  8. $numrows = mysql_num_rows($query);
  9.  
  10. while ($row = mysql_fetch_assoc($query)){
  11. $dbusername = $row['mail'];
  12. $dbpassword = $row['password'];
  13. $dbalias = $row['alias'];
  14. $dbname = $row['name'];
  15. $dbsurname = $row['surname'];
  16. $permisos = $row['permisos'];}
  17.  
  18. if ($mail==$dbusername&&$password==$dbpassword){
  19. echo'Contraseña correcta';
  20. }else{
  21. echo 'Contraseña errónea';
  22. }
  23.  
  24.  
  25.  
  26.  
  27.     }else{
  28.    
  29.     echo'No existen datos de acceso';
  30.    
  31.     }
  32.  
  33. ?>
  #8 (permalink)  
Antiguo 21/01/2012, 13:06
 
Fecha de Ingreso: diciembre-2011
Mensajes: 414
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Redirigiendo al usuario con sesiones

Hola, esta parte si que funciona, pero lo que no se porque no funciona es la siguiente , tngo que agregar esto dp de "contraseña correcta" y no se muestra nada ni me da error

$_SESSION['acceso'] = $row['permisos'];
switch ($_SESSION['acceso']) {
case "10":
echo "Eres admin";
break;
case "2":
echo "eres mod";
break;
case "1":
echo "usuario normal";
break;
}
  #9 (permalink)  
Antiguo 21/01/2012, 13:12
webankenovi
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Redirigiendo al usuario con sesiones

y si pruebas con ifs?? una pregunta en la tabla users campo permisos que guardas ?? 10 , 2 o 1 no??

Código PHP:
Ver original
  1. <?php
  2. $mail=$_POST['mail'];
  3. $password=$_POST['password'];
  4. if($mail&&$password){
  5.        
  6.     include('../config.php');
  7.     $query = mysql_query("SELECT * FROM users WHERE mail='$mail'");
  8.     $numrows = mysql_num_rows($query);
  9.      
  10.     while ($row = mysql_fetch_assoc($query)){
  11.  
  12.     $dbusername = $row['mail'];
  13.     $dbpassword = $row['password'];
  14.  
  15. if ($mail==$dbusername&&$password==$dbpassword){
  16.  
  17.     $dbalias = $row['alias'];
  18.     $dbname = $row['name'];
  19.     $dbsurname = $row['surname'];
  20.     $permisos = $row['permisos'];
  21.     $_SESSION['acceso'] = $row['permisos'];}
  22.      
  23.     echo'Contraseña correcta';
  24.  
  25. if($_SESSION['acceso'] == 10){ // o "10"
  26.  
  27.     echo "Eres admin";
  28.  
  29.     }elseif($_SESSION['acceso'] == 2){
  30.  
  31.     echo "eres mod";
  32.  
  33.     }elseif($_SESSION['acceso'] == 1){
  34.    
  35.     echo "usuario normal";
  36.  
  37.     }else{
  38.    
  39.     echo "usuario invitado";
  40.    
  41.     }}else{
  42.  
  43.     echo 'Contraseña errónea';
  44.  
  45.     }}else{
  46.        
  47.      echo'No existen datos de acceso';
  48.        
  49.      }
  50.      
  51.     ob_end_flush();?>

Última edición por webankenovi; 21/01/2012 a las 13:37

Etiquetas: mysql, sesiones, usuarios
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 18:51.