Foros del Web » Programando para Internet » PHP »

Ayuda con Login en PHP

Estas en el tema de Ayuda con Login en PHP en el foro de PHP en Foros del Web. Señores! hola a todos soy nuevo aca ... tengo un problema, debo de hacer una pagina en dreamweaver en php, que tenga control de usuario ...
  #1 (permalink)  
Antiguo 05/06/2008, 23:15
 
Fecha de Ingreso: junio-2008
Mensajes: 17
Antigüedad: 15 años, 10 meses
Puntos: 0
Ayuda con Login en PHP

Señores! hola a todos soy nuevo aca ...

tengo un problema, debo de hacer una pagina en dreamweaver en php, que tenga control de usuario , estoy con servidor de prueba "EasyPhp", ya tengo todo conetcado con dreamweaver...... mi problema es

a mi me enseñaron en la opcion del dreamweaver que si el user estaba correcto que fuera a una page, y sino que fuera a otra page de error....

ahora, el problema es que mi profesor pidio seguridad en la pagina y no se como hacerlo

osea.
mi web es www.miweb.cl/index.php y cuando inician sesion es por ejemplo www.miweb.cl/misesion.php lo que me piden es: que si el usuario pone en la URL www.miweb.cl/misesion.php sin estar logeado y puede entrar, estara mala la web

no se si me entienden, pero la idea es que el user si pone en la URL www.miweb.cl/misesion.php le de un error que diga que tiene que logearse antes =S

se entiende?

pd: Ojala me ayuden ya que he buscado como hacerlo, pero no entiendo mucho:S

saludos!
  #2 (permalink)  
Antiguo 06/06/2008, 02:03
 
Fecha de Ingreso: marzo-2008
Ubicación: En casa
Mensajes: 252
Antigüedad: 16 años, 1 mes
Puntos: 4
Respuesta: Ayuda con Login en PHP

Tines que crear una tabla en la BD para user y contraseñas (user puede ser tu primari key), luego mete los datos de usuario hay, con la contraseña encriptada en md5 (o simple pero no es recomendable).

y luego un formulario que cuando recoga el campo de contraseña saque * y que coga el valos lo pase por md5 y lo mande para hacer la consulta.

esa es la idea general.
__________________
Ayudar cuesta mucho, dar las gracias no tanto, tenlo en cuenta siempre.
  #3 (permalink)  
Antiguo 06/06/2008, 06:58
 
Fecha de Ingreso: junio-2008
Mensajes: 17
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Ayuda con Login en PHP

si, si hice algo asi, pero ahora me orientaron y me dijeron que tenia que poner un script que encriptara la URL o bien blockeara la URL =S

y sigo igual :S
  #4 (permalink)  
Antiguo 06/06/2008, 08:24
Avatar de Monimo  
Fecha de Ingreso: noviembre-2007
Ubicación: Mexico Df
Mensajes: 742
Antigüedad: 16 años, 5 meses
Puntos: 69
Respuesta: Ayuda con Login en PHP

mm nop es mucho mas facil con variables de sesion, cuando entre a login asignale $_SESSION['usuario'] al usuario por ejemplo en cada pagina de tu sitio ponle hasta arriba
Código PHP:
if(!isset($_SESSION['USUARIO']) || $_SESSION['USUARIO']=="")
{
    
header ('Location: Inicio.php');
    exit;

asi, si nunca s eloggeo esas variables estaran vacias y te regresara a la pagina d elogin para que a fuerza te loggees
  #5 (permalink)  
Antiguo 06/06/2008, 14:31
 
Fecha de Ingreso: junio-2008
Mensajes: 17
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Ayuda con Login en PHP

haber si entiendo man =S

en cada pagina que tenga que entre con login, en el <head> pongo esto

if(!isset($_SESSION['USUARIO']) || $_SESSION['USUARIO']=="")
{
header ('Location: Inicio.php');
exit;
}

pero si no entiendo mal, donde dice "USUARIO", ahi le pongo el nombre de mi textbox que rescata el nombre de usuario?

saludos!
  #6 (permalink)  
Antiguo 06/06/2008, 19:59
 
Fecha de Ingreso: abril-2008
Mensajes: 613
Antigüedad: 16 años
Puntos: 22
Respuesta: Ayuda con Login en PHP

Hola Vicento,
"USUARIO" es una variable de sesi´´on que debes declarar después de haberla testado desde el formulario de entrada. Para declarar una variable de sesión:
session_start();
$_SESION["USUARIO"]=1;//por ejemplo

Y luego pones el código del mensaje anterior en todas tus páginas nada más comenzar el código. Para esto es mejor que generes un archivo aparte y lo pongas como un INCLUDE.

SAludos
__________________
Compartir es vivir
www.programador-php.com
  #7 (permalink)  
Antiguo 06/06/2008, 20:22
Avatar de terepaima  
Fecha de Ingreso: junio-2008
Mensajes: 82
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: Ayuda con Login en PHP

Hola

Si quieres algo mas elaborado, DreamWeaver escribe esa funcion asi:

Código PHP:
<?php
if (!isset($_SESSION)) {
  
session_start();
}
$MM_authorizedUsers "";
$MM_donotCheckaccess "true";
// *** Restrict Access To Page: Grant or deny access to this page
function isAuthorized($strUsers$strGroups$UserName$UserGroup) { 
  
// For security, start by assuming the visitor is NOT authorized. 
  
$isValid False
  
// When a visitor has logged into this site, the Session variable MM_Username set equal to their username. 
  // Therefore, we know that a user is NOT logged in if that Session variable is blank. 
  
if (!empty($UserName)) { 
    
// Besides being logged in, you may restrict access to only certain users based on an ID established when they login. 
    // Parse the strings into arrays. 
    
$arrUsers Explode(","$strUsers); 
    
$arrGroups Explode(","$strGroups); 
    if (
in_array($UserName$arrUsers)) { 
      
$isValid true
    } 
    
// Or, you may restrict access to only certain users based on their username. 
    
if (in_array($UserGroup$arrGroups)) { 
      
$isValid true
    } 
    if ((
$strUsers == "") && true) { 
      
$isValid true
    } 
  } 
  return 
$isValid
}
$MM_restrictGoTo "inicio.php";
if (!((isset(
$_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers$_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {   
  
$MM_qsChar "?";
  
$MM_referrer $_SERVER['PHP_SELF'];
  if (
strpos($MM_restrictGoTo"?")) $MM_qsChar "&";
  if (isset(
$QUERY_STRING) && strlen($QUERY_STRING) > 0
  
$MM_referrer .= "?" $QUERY_STRING;
  
$MM_restrictGoTo $MM_restrictGoTo$MM_qsChar "accesscheck=" urlencode($MM_referrer);
  
header("Location: "$MM_restrictGoTo); 
  exit;
}
?>
Suerte
  #8 (permalink)  
Antiguo 16/06/2008, 05:58
 
Fecha de Ingreso: mayo-2008
Mensajes: 26
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Ayuda con Login en PHP

Buenas quisera que me colaboraran con eso por favor, he creado un archivo de Login pero la verdad he tenido bastante problemas no me almacena las variables de session o no se que es lo que pasa o si es algo en el script....

La cuestion es esta hay un archivo de conexión que estoy pasando como cabecera a todos los otros archivos...haber si me hago entender....

ESTE ES EL ARCHIVO CONEXION.PHP

Código PHP:
<?php
//SE INCLUYEN LOS ARCHIVOS DE LA CLASE DE CONEXION
include('adodb/adodb.inc.php');

//SE GENERAN LOS REPORTES PARA DE SER NECESARIO VERLOS
error_reporting(E_ALL);

//SE VERIFICA QUE VENGA DEL REGISTRO
if(isset($_POST['username'])&& isset($_POST['password']))
{
//SI VIENE DEL REGISTRO
    
    
if (empty($_POST['username']) || empty($_POST['password']))
    {
//VERIFICA QUE NO ESTEN VACIAS
        
        
$_SESSION["mensaje"] ='Error: Nombre de Usuario / Contrase&ntilde;a no pueden ser Vacios"';
    }
    else
    {
//VIENE DEL LOGIN PERO VIENEN VACIAS
        
        //CONVERTIMOS LOS VALORES PARA VERIFICARLOS EN LA BASE DE DATOS
        
$user addslashes($_POST['username']);
        
$pass md5($_POST['password']);
        
/*//DEBUG
        echo '<br>ESTO ES EL USUARIO<br>';
        echo $user.'<br>';
        echo '<br>ESTO ES EL PASSWORD<br>';
        echo $pass.'<br>';
        //*/
        
        //SE DEFINEN LAS VARIABLES DE CONEXION A LA BASE DE DATOS
        
$dbHost ='localhost';
        
$dbUser 'admin';
        
$dbPass '12345';
        
$dbDatabase 'CENCON';
        
        
//SE HACE LA CONEXION        
        
$db AdoNewConnection("oci8"); # ej. 'mysql' o 'oci8'
        
        //SE VALIDA LA CONEXION
        
if($db->Connect($dbHost$dbUser$dbPass$dbDatabase))
        {
            
$sql="SELECT * FROM USUARIOS WHERE USUARIO='".$user."' AND CLAVE='".$pass."' AND ACTIVO = 'S'";
            
            
$rs=$db->Execute($sql);
            
            if (!
$rs)
            {
                print 
$db->errorMsg(); // Muestra el error
            
}
            else
            {
                while (!
$rs->EOF)
                {
                    
//INICIA LA SESION DE PHP
                    
session_start(); 
                    
$_SESSION["NOMBRE"]=     $rs->fields['NOMBRE'];
                    
$_SESSION["APELLIDO"]=    $rs->fields['APELLIDO'];
                    
$_SESSION["ROL"]=        $rs->fields['ROL'];
                    
$_SESSION["USUARIO"]=     $rs->fields['USUARIO'];
                      
$rs->moveNext();
                }
            }
            
            
print_r($_SESSION);
        
        }
        else 
        {
//SINO RETORNA NADA QUIERE DECIR QUE SE CONECTO PERO NO EXISTE EL USUARIO
            
$_SESSION["mensaje"] ='Error: Nombre de Usuario / Contrase&ntilde;a Incorrectos"';
            
print_r($_SESSION);
            
        
        }
    }
}
elseif(isset(
$_SESSION["USUARIO"]))
{
//REVISAR SI ESTA SETEADA
    
print_r($_SESSION);
    if (!
$_SESSION["USUARIO"])
    {
//SI NO HAY SESION DE USUARIO
        
header("Location index.php");        
    }else {
        
//SE DEFINEN LAS VARIABLES DE CONEXION A LA BASE DE DATOS
        
$dbHost ='localhost';
        
$dbUser 'admin';
        
$dbPass '12345';
        
$dbDatabase 'CENCON';
        
        
//SE HACE LA CONEXION        
        
$db AdoNewConnection("oci8"); # ej. 'mysql' o 'oci8'
        
        //SE VALIDA LA CONEXION
        
$db->Connect($dbHost$dbUser$dbPass$dbDatabase);
    }
    
}
?>

CADA UNO DE LOS ARCHIVOS DE LA APLICACION TIENE ESTAS LINEAS EN LA PARTE DEL <HEAD>

Código PHP:
<?php 
    
include ('conexion.php');
?>
y finalmente un ARCHIVO LOGOUT.PHP

Código PHP:
<?php
$_SESSION 
= array();
session_destroy(); 
header("Location: index.php");
?>

POR FAVOR ALGUEIN PUEDE DECIRME QUE HAY MAL Y PORQUE ME SACA CADA RATO???
  #9 (permalink)  
Antiguo 16/06/2008, 07:54
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 16 años, 8 meses
Puntos: 28
Respuesta: Ayuda con Login en PHP

tiene q ser ajuro en dreamweaver?????
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #10 (permalink)  
Antiguo 16/06/2008, 19:40
 
Fecha de Ingreso: mayo-2008
Mensajes: 26
Antigüedad: 15 años, 11 meses
Puntos: 0
Respuesta: Ayuda con Login en PHP

Pues no entendi lo de "AJURO" pero no, estoy desarrollando en ZEND CORE y la parte visual si la hago con dreamweaver pero no estoy usando ningun FrameWork ni nada!
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 04:51.