Foros del Web » Programando para Internet » PHP »

ayuda con codigo de login

Estas en el tema de ayuda con codigo de login en el foro de PHP en Foros del Web. hola gente tengo un gran problema me baje un script (no recuerdo de que pagina) para el login de usuarios, ok funciona bien, pero no ...
  #1 (permalink)  
Antiguo 31/08/2010, 19:56
Avatar de Maverik2  
Fecha de Ingreso: agosto-2010
Mensajes: 67
Antigüedad: 13 años, 7 meses
Puntos: 1
ayuda con codigo de login

hola gente tengo un gran problema me baje un script (no recuerdo de que pagina) para el login de usuarios, ok funciona bien, pero no puedo proteger las paginas osea el login verifica en la base de datos si esta el usuario con la pass pero no protege las paginas. les dejo el codigo php de la pagina de validacion para q me ayuden.

validar_usuario.php
Código PHP:
<?php
if (strlen($_POST['logout']) > 0)
{
    
session_destroy();
}

ob_start();
$host="localhost"// Host name
$username=" "// Mysql username
$password=" "// Mysql password
$db_name=" "// Database name
$tbl_name=" "// Table name

// Connect to server and select databse.
mysql_connect($host$username$password)or die("cannot connect");
mysql_select_db($db_name)or die("cannot select DB");

// Define $myusername and $mypassword
$myusername=$_POST['username'];
$mypassword=$_POST['password'];

if (
strlen($myusername) > || strlen($mypassword) > 0)
{
    
// To protect MySQL injection (more detail about MySQL injection)
    
$myusername stripslashes($myusername);
    
$mypassword stripslashes($mypassword);
    
$myusername mysql_real_escape_string($myusername);
    
$mypassword mysql_real_escape_string($mypassword);
    
    if (
mysql_num_rows(mysql_query("SELECT * FROM `$tbl_name` WHERE `usuario` = '$myusername' AND `password` = '$mypassword'"))==1)
    {
        
ingresa el usuario 
    
}
    else
    {
        
si esta mal el muestro algo
    
}
}    
//ob_end_flush();
?>

y este es el archivo logout.php
Código PHP:
<?php
session_start
();
session_destroy();
echo 
'Ha terminado la session <p><a href="index.php">Principal</a></p>';
?>
<SCRIPT LANGUAGE="javascript">
location.href = "index.php";
</SCRIPT>
  #2 (permalink)  
Antiguo 31/08/2010, 20:00
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: ayuda con codigo de login

lo único que veo que le falte es un HASH como MD5 o SHA1, del resto es bastante simple y completo.

¿a que te refieres con que no protege las páginas?: cada pagina debe de verificar al menos si la sesión fue iniciada, eso lo implementas tú (este código simplemente loguea, más nada), puedes usar un require o include para eso.
  #3 (permalink)  
Antiguo 31/08/2010, 20:04
Avatar de Maverik2  
Fecha de Ingreso: agosto-2010
Mensajes: 67
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: ayuda con codigo de login

Cita:
Iniciado por maycolalvarez Ver Mensaje
lo único que veo que le falte es un HASH como MD5 o SHA1, del resto es bastante simple y completo.

¿a que te refieres con que no protege las páginas?: cada pagina debe de verificar al menos si la sesión fue iniciada, eso lo implementas tú (este código simplemente loguea, más nada), puedes usar un require o include para eso.
y como implemento eso? porq ni idea de programacion en php y necesito esto para un pryecto final de mi curos (electronica)
  #4 (permalink)  
Antiguo 31/08/2010, 21:17
 
Fecha de Ingreso: agosto-2010
Ubicación: santiago, CHILE
Mensajes: 564
Antigüedad: 13 años, 8 meses
Puntos: 9
Respuesta: ayuda con codigo de login

/*...primero cada vez q ingrese sus datos o intente logearse direccionalo a otra pagina ejemplo logeo.php y si existe genera las sessiones con su id su nombre...todos sus datos y direccionalo al sitio q le pertenezca si es administrador a administrador.php....y si no llevalo de vuelta al index.php....es este index deja arriba session_destroy(); para eliminar las sesiones...en caso q sus datos no son validos...pero si lo son como ejemplo administrador.php coloca esto arriba de la pagina...si no esta creada la session es porque trata de ingresar a la mala....pero como no fue ingresado correctamente no tiene ninguna sesion y lo mandamos de vuelta al index...puedes usar la funcion header(); de php si prefieres...*/

<? session_start();
if(!(@$_SESSION['usu']))
{
?>
<script language="javascript">
location.replace("index_edificio.php");
</script>
<?
}
?>
  #5 (permalink)  
Antiguo 01/09/2010, 09:14
Avatar de Maverik2  
Fecha de Ingreso: agosto-2010
Mensajes: 67
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: ayuda con codigo de login

Cita:
Iniciado por __SDP__ Ver Mensaje
/*...primero cada vez q ingrese sus datos o intente logearse direccionalo a otra pagina ejemplo logeo.php y si existe genera las sessiones con su id su nombre...todos sus datos y direccionalo al sitio q le pertenezca si es administrador a administrador.php....y si no llevalo de vuelta al index.php....es este index deja arriba session_destroy(); para eliminar las sesiones...en caso q sus datos no son validos...pero si lo son como ejemplo administrador.php coloca esto arriba de la pagina...si no esta creada la session es porque trata de ingresar a la mala....pero como no fue ingresado correctamente no tiene ninguna sesion y lo mandamos de vuelta al index...puedes usar la funcion header(); de php si prefieres...*/

<? session_start();
if(!(@$_SESSION['usu']))
{
?>
<script language="javascript">
location.replace("index_edificio.php");
</script>
<?
}
?>

ok gracias pero me podrian dar alguna mano con el codigo es q hasta aca llega mi entendimiento

estoy re perdido y no tengo ni idea q estoy haciendo..
  #6 (permalink)  
Antiguo 01/09/2010, 09:17
Avatar de Maverik2  
Fecha de Ingreso: agosto-2010
Mensajes: 67
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: ayuda con codigo de login

Código PHP:
    <?php session_start();
     
    
//datos para establecer la conexion con la base de mysql.
    
mysql_connect('localhost','','')or die ('Ha fallado la conexi&oacute;n: '.mysql_error());
    
mysql_select_db('')or die ('Error al seleccionar la Base de Datos: '.mysql_error());
     
    function 
quitar($mensaje)
    {
        
$nopermitidos = array("'",'\\','<','>',"\"");
        
$mensaje str_replace($nopermitidos""$mensaje);
        return 
$mensaje;
    }     
     
    if(
trim($HTTP_POST_VARS["usuario"]) != "" && trim($HTTP_POST_VARS["password"]) != "")
    {
        
// Puedes utilizar la funcion para eliminar algun caracter en especifico
        //$usuario = strtolower(quitar($HTTP_POST_VARS["usuario"]));
        //$password = $HTTP_POST_VARS["password"];
       
        // o puedes convertir los a su entidad HTML aplicable con htmlentities
        
$usuario strtolower(htmlentities($HTTP_POST_VARS["usuario"], ENT_QUOTES));   
        
$password $HTTP_POST_VARS["password"];
         
     
        
$result mysql_query('SELECT password, usuario FROM usuarios WHERE usuario=\''.$usuario.'\'');
        if(
$row mysql_fetch_array($result)){
            if(
$row["password"] == $password){
     
                
$_SESSION["k_username"] = $row['usuario'];
               
                echo 
'Has sido logueado correctamente '.$_SESSION['k_username'].' <p>';
                echo 
'    <SCRIPT LANGUAGE="javascript">
                        location.href = "iframe.php";
                        </SCRIPT>'
;

     
            }else{
                echo 
'Password incorrecto';
            }
        }else{
            echo 
'Usuario no existente en la base de datos';
        }
        
mysql_free_result($result);
    }else{
        echo 
'Debe especificar un usuario y password';
    }
    
mysql_close();
    
?>
ok creo q eso es lo q me decian de hash no??

y perdonen por el doble post es q queda muhco mas practico asi :)

Etiquetas: login, mysql
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 14:13.