Foros del Web » Programando para Internet » PHP »

Validar Admin o Profesor

Estas en el tema de Validar Admin o Profesor en el foro de PHP en Foros del Web. Hola, tengo un gran lio para redirecionar si es adminsitrador o es un profesor. Tengo la pagina de funciones que es Código PHP: <?php function  ...
  #1 (permalink)  
Antiguo 23/05/2011, 13:18
Avatar de apolazo  
Fecha de Ingreso: mayo-2011
Ubicación: Cabrero
Mensajes: 118
Antigüedad: 13 años, 6 meses
Puntos: 2
Validar Admin o Profesor

Hola, tengo un gran lio para redirecionar si es adminsitrador o es un profesor.

Tengo la pagina de funciones que es

Código PHP:
<?php
function validar()
{
session_start();
if (
$_SESSION["contrasena"] == ""
    {
   
$n1="Error Usuario y/o Contraseña son incorrectos";
    
header("Location: index.php?n1=$n1");
    }
}
function 
coneccion()
{
   if (!(
$link=mysql_connect("localhost","admin","admin")))
   {
      echo 
"Error conectando a la base de datos. ".mysql_error();
      exit();
   }
   if (!
mysql_select_db("comportamiento",$link))
   {
      echo 
"Error seleccionando la base de datos. ".mysql_error();
      exit();
   }
   return 
$link;
}
 
?>
y el validar el login es

Código PHP:
<?php 
include("funciones.php"); 
$conexion=coneccion();

if ( 
$_POST["run"] && $_POST["contrasena"] )
    {
    
$sql="SELECT * FROM profesor WHERE RUN='".$_POST["run"]."'";

    
$resultado=mysql_query($sql,$conexion);
    
$datos=mysql_fetch_array($resultado);

    if (
$datos["CONTRASENA"]==$_POST["contrasena"] && $datos["CONTRASENA"]==$_POST["contrasena"])
        {
        
session_destroy();
        
session_start();
        
        
$_SESSION["RUN"]=$datos["RUN"];
         
$_SESSION["CONTRASENA"]=$datos["CONTRASENA"];
        
      if (
tipo_profesor=='admin')
        {
            
header("Location:inicio_administrador.php");
        }
        else
                {
            
header("Location: inicio_profesores.php");
        }
echo 
$sql."  ".mysql_error();
        
header ("Location: index.php");
        }
    else
    {
        
$n1="Error RUN y/o Contrasena son incorrectos";
        
header("Location: index.php?n1=$n1");
        }
    }
    
?>
Me podrian ayudar a guiarme para que quede bien? Gracias Por que esta no me funciona jeje

Última edición por apolazo; 23/05/2011 a las 14:00
  #2 (permalink)  
Antiguo 24/05/2011, 06:48
Avatar de apolazo  
Fecha de Ingreso: mayo-2011
Ubicación: Cabrero
Mensajes: 118
Antigüedad: 13 años, 6 meses
Puntos: 2
Respuesta: Validar Admin o Profesor

Me va quedando mas menos asi

Código PHP:
<?php 
include("funciones.php"); 
$conexion=coneccion();

if ( 
$_POST["run"] && $_POST["contrasena"] )
    {
    
$sql="SELECT * FROM profesor WHERE RUN='".$_POST["run"]."'";

    
$resultado=mysql_query($sql,$conexion);
    
$datos=mysql_fetch_array($resultado);

    if (
$datos["CONTRASENA"]==$_POST["contrasena"] && $datos["CONTRASENA"]==$_POST["contrasena"])
        {
        
session_destroy();
        
session_start();
        
        
$_SESSION["RUN"]=$datos["RUN"];
         
$_SESSION["CONTRASENA"]=$datos["CONTRASENA"];
        
      if (
$datos["tipo_profesor"]=='admin')
        {
            
header("Location:inicio_administrador.php");
        }
        else
                {
            
header("Location: inicio_profesores.php");
        }
echo 
$sql."  ".mysql_error();
        
header ("Location: index.php");
        }
    else
    {
        
$n1="Error RUN y/o Contrasena son incorrectos";
        
header("Location: index.php?n1=$n1");
        }
    }
    
?>
Pero me dice k el usuario y contraseña son incorrectos, aun que los ponga bien...
Ayuda plz, gracias
  #3 (permalink)  
Antiguo 24/05/2011, 07:04
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 9 meses
Puntos: 128
Respuesta: Validar Admin o Profesor

if ($datos["CONTRASENA"]==$_POST["contrasena"] && $datos["CONTRASENA"]==$_POST["contrasena"]) esto no debiese ser usuario y contraseña?, recorre el resultado de tu consulta por medio de un while :

Código PHP:
Ver original
  1. while ($datos=mysql_fetch_array($resultado))
  2. {
  3.    $profesor=$datos['elcampo'];
  4.    $clave=$datos['elcampo'];
  5.    $tipo=$datos['elcampo'];
  6.   //etc....
  7. }

Luego de eso realiza las comprobaciones y Ojo un poco mas de orden y lógica Saludos
__________________
Si no vivimos como pensamos, pronto empezaremos a pensar como vivimos.
Más vale un Gracias sincero, que un número que aumente "popularidad" ¬¬°

Universidad de chile, campeón
  #4 (permalink)  
Antiguo 24/05/2011, 07:17
Avatar de apolazo  
Fecha de Ingreso: mayo-2011
Ubicación: Cabrero
Mensajes: 118
Antigüedad: 13 años, 6 meses
Puntos: 2
Respuesta: Validar Admin o Profesor

Modifique el error jeje disculpas, me cuesta y me a costado mucho aprender programación :S, estoy en mi práctica... Me podrias guiar un poco mas?
el while es necesario?
el dato tipo_profesor esta en la base de datos, no lo ingreso en el inicio, es decir el loging, la idea es que me verifique si la contraseña y el usuario es correcto, vea que tipo es y lo redireccione a una pagina de admin o de profesor...

Código PHP:
if ($datos["RUN"]==$_POST["run"] && $datos["CONTRASENA"]==$_POST["contrasena"])
        {
        
session_destroy();
        
session_start();
        
        
$_SESSION["RUN"]=$datos["RUN"];
         
$_SESSION["CONTRASENA"]=$datos["CONTRASENA"];
        
      if (
$datos["tipo_profesor"]=='admin')
        {
            
header("Location:inicio_administrador.php");
        }
        else
                {
            
header("Location: inicio_profesores.php");
        }
echo 
$sql."  ".mysql_error();
        
header ("Location: index.php");
        }
    else
    {
        
$n1="Error RUN y/o Contrasena son incorrectos";
        
header("Location: index.php?n1=$n1");
        } 
Luego de verificar comienza la seccion y deveria hacer las consultas X.x? asdfasdfasdfasdf
  #5 (permalink)  
Antiguo 24/05/2011, 07:47
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 9 meses
Puntos: 128
Respuesta: Validar Admin o Profesor

Si , utiliza el while de la manera que lo coloqué lo colocas antes de esta linea :

Código PHP:
Ver original
  1. if ($datos["tipo_profesor"]=='admin')

para luego que obtengas los resultados de tu base de datos, realices las comprobaciones pertinentes
__________________
Si no vivimos como pensamos, pronto empezaremos a pensar como vivimos.
Más vale un Gracias sincero, que un número que aumente "popularidad" ¬¬°

Universidad de chile, campeón
  #6 (permalink)  
Antiguo 24/05/2011, 07:51
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años, 5 meses
Puntos: 394
Respuesta: Validar Admin o Profesor

Bueno te voy a dar una lógica de como hacerlo (NO ES LA ÚNICA NI LA MAS PROFESIONAL) pero es algo para que empieces, para que mas o menos tu lo coloques en código para que aprendas mas.

Código PHP:
Ver original
  1. // recoges los datos del formulario
  2. $usuario = $_POST["run"];
  3. $contrasena = $_POST["contrasena"];
  4. // conexion a la base de datos
  5.  
  6. $consulta = "SELECT * FROM tu_tabla WHERE campo_suario = '$usuario'";
  7. $ejecutar = mysql_query($consulta, $conexion);
  8. $resultados = mysql_fetch_array($ejecutar);
  9. $numeroRegistros = mysql_num_rows($ejecutar);
  10.  
  11. if ($resultados["RUN"] != $usuario && $resultado["CONTRASENA"] != $contrasena){
  12. echo "Los campos no coinciden";
  13. }else{
  14.         session_destroy();
  15.         session_start();
  16.        
  17.         $_SESSION["RUN"] = $resultados["RUN"];
  18.         $_SESSION["CONTRASENA"] = $resultados["CONTRASENA"];
  19.  
  20.         if ($resultados["tipo_profesor"] == 'admin'){
  21.            header("Location:inicio_administrador.php");
  22.         }else{
  23.            header("Location: inicio_profesores.php");
  24.         }
  25. }

Espero que lo puedas acomodar a tu código y le hagas las modificaciones que necesites. Lo hice a las carreras y no lo probé así que si te sale algún error por favor no dudes en mostrarlo.
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #7 (permalink)  
Antiguo 24/05/2011, 08:02
Avatar de bUllan9ebrio  
Fecha de Ingreso: enero-2011
Ubicación: Chile
Mensajes: 1.128
Antigüedad: 13 años, 9 meses
Puntos: 128
Respuesta: Validar Admin o Profesor

Compadre te dejo el code, Ojo no lo probé pero según yo debiese funcionar sin problemas(claro que debes cambiar los nombres de los campos), primero te dejo tu verificar.php

Código PHP:
Ver original
  1. $usuario=$_POST['run'];
  2. $clave=$_POST['contrasena'];
  3. include("funciones.php");
  4. $conexion=coneccion();
  5.  
  6. if ( $_POST["run"] && $_POST["contrasena"] )
  7.     {
  8.     $sql="SELECT * FROM profesor WHERE RUN='".$_POST["run"]."'";
  9.     $resultado=mysql_query($sql,$conexion);
  10.     while ($datos=mysql_fetch_array($resultado))
  11.     {  
  12.         $run=$datos['TUCAMPO_RUN_DE_LA_BASE_DE_DATOS'];//modificar por el campo conde almacenas el run de los usuarios
  13.         $pass=$datos['TUCAMPO_CLAVE_DE_LA_BASE_DE_DATOS'];//modificar por el campo donde almacenas la clave del usuario
  14.         $tipo_profesor=$datos['TUCAMPO_TIPO_PROFESOR_DE_LA_BASE_DE_DATOS'];//modificar por el campo donde guardas el tipo de profesor
  15.     }
  16.     if ($_POST['contrasena'];=="$pass" && $_POST['run']=="$run")
  17.         {
  18.             $_SESSION['usuario'] = $_POST['run'] ;
  19.                         $_SESSION['pass'] = $_POST['contrasena'] ;
  20.                         include ('classsession.php');//incluyes la clase de session que te dejo ;-)
  21.             $session = new session($_SESSION['usuario']);
  22.             $session->__validar('index.php');//validas lo ingresado en el login(en mi caso lo utilizo en el index como include)
  23.             if ($tipo_profesor=="admin")
  24.             {
  25.                 include("inicio_administrador.php");
  26.             }
  27.             else
  28.             {
  29.                 include("inicio_profesores.php");
  30.             }
  31.             echo $sql."  ".mysql_error();
  32.                 echo '<script>alert("A Ocurrido Un Error En Base De Datos");
  33.                     location.href="index.php";</script>';
  34.         }
  35.         else
  36.         {
  37.             echo '<script>alert("Nombre de usuario o password incorrecto");
  38.                     location.href="index.php";</script>';
  39.         }

Ahora te dejo el archivo classsession.php, que utilizo para las sessions:

Código PHP:
Ver original
  1. //classsession.php 
  2. class session   {
  3.     public $usuario;
  4.    
  5.     function __construct($usuario)  {
  6.         $this->usuario = $usuario;
  7.     }
  8.     public function __validar($url)     {
  9.         session_start();
  10.         if (!isset( $_SESSION['usuario'])) {
  11.             echo '<script>
  12.                 alert("Su session ha caducado o no ha iniciado sesion. Presione aceptar para iniciar sesion nuevamente.");
  13.                 parent.location.href="index.php";</script>';
  14.         }
  15.     }
  16.     public function __cerrar()  {
  17.         session_destroy();
  18.         unset($_SESSION['usuario']);
  19.         echo '<script language=javascript>parent.location.href="index.php";</script>';
  20.     }
  21. }

Son archivos independientes, por lo tanto debes guardarlos en diferentes hojas, cualquier cosa postea, saludos
__________________
Si no vivimos como pensamos, pronto empezaremos a pensar como vivimos.
Más vale un Gracias sincero, que un número que aumente "popularidad" ¬¬°

Universidad de chile, campeón

Última edición por bUllan9ebrio; 24/05/2011 a las 08:13
  #8 (permalink)  
Antiguo 24/05/2011, 08:32
Avatar de apolazo  
Fecha de Ingreso: mayo-2011
Ubicación: Cabrero
Mensajes: 118
Antigüedad: 13 años, 6 meses
Puntos: 2
Respuesta: Validar Admin o Profesor

Muchas gracias a ambos por la ayuda.
El codigo final quedo así

Código PHP:
<?php 
include("funciones.php"); 
$conexion=coneccion();
$run $_POST["run"];
$contrasena$_POST["contrasena"];

$consulta "SELECT * FROM profesor WHERE run = '$run'";
$ejecutar mysql_query($consulta,$conexion);
$resultados mysql_fetch_array($ejecutar);
$datos mysql_num_rows($ejecutar);
    if (
$resultados ["RUN"] != $run && $resultados["CONTRASENA"] != $contrasena)
        { 
header ("Location: index.php?n1=$n1" );
        }
        else
        {
        
session_destroy();
        
session_start();
        
        
$_SESSION["RUN"]=$resultados["RUN"];
         
$_SESSION["CONTRASENA"]=$resultados["CONTRASENA"];
        
      if (
$resultados["TIPO_PROFESOR"] == 'admin')
      {
          
header ("Location: inicio_administrador.php");
      }
      else
      {
          
header ("Location: inicio_profesores.php");
      }
        }
?>
hasta ahora funciona perfectamente, muchas gracias a ambos.
hay tantas maneras de procesar la informacion que al final cada uno se va formando su propio codigo jeje saludos

Etiquetas: admin, profesor
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 20:56.