Ayuda con formulario usuario-contraseña
![]()
Nivel 1 (4 posts)
0 
| #0 | ![]() |
Fali | 28 mar 12 |
Hola, estoy empezando en php y no logro resolver un problema de validacion de usuario, lo que quiero es loguearme en una pagina y si existe el usuario-contraseña pasar a la pagina y mantener los datos en variables, os pongo el ejemplo a ver si me podeis ayudar:
Esta es la pagina login.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php
session_start();
if(isset($_POST['username'])){
$usr= $_POST["username"];
if(isset($_POST['pass'])){
$passwd= $_POST["pass"];
$ds=ldap_connect('172.22.22.7','389');
if ($ds){
$dn="cn=".$usr.", o=empresausers";
$estado=@ldap_bind($ds,$dn,$passwd);
if ($estado){
// Busqueda
$sr=ldap_search($ds,"o=empresausers", "cn=$usr");
$info = ldap_get_entries($ds, $sr);
//echo $info[0]["fullname"][0];//."|".$info[0]["mail"][0]."|";
$_SESSION["user_logged"]= true;
$_SESSION["autenticado"]= "SI";
$_SESSION['usuario'] = $usr;
$_SESSION['acces'] = $passwd;
$_SESSION['nomusr'] = $info[0]["fullname"][0];
echo "ID_Usuario ", $_SESSION["usuario"], "<br/>";
echo "nombre ", $_SESSION["nomusr"], "<br/>";
header("Location: index.php");
}
else{
echo "Usuario / contraseña incorrecto";
header("Location: login.php");
}
}
}else{
echo "Tienes que introducir tu contraseña";
}
}else{
echo "Tienes que introducir tu usuario";
}
?><head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Productividades</title>
<link rel="stylesheet" href="css/templatelogin.css" type="text/css" />
<style type="text/css">
</style>
<!--[if IE 7]>
<link href="css/ie7.css" rel="stylesheet" type="text/css" />
<![endif]-->
<!--[if IE 8]>
<link href="css/ie8.css" rel="stylesheet" type="text/css" />
<![endif]-->
</head>
<body>
<div id="content-box">
<div id="element-box" class="login">
<div class="m wbg">
<img src="imagenes/imagen.gif">
<h1>Acceso a las productividades</h1>
<div id="system-message-container">
</div>
<div id="section-box">
<div class="m">
<form action="index.php" method="POST">
<table border="0">
<tr><td>Nombre de usuario:</td>
<td><input name="username" size="15" value=""/></td></tr>
<td></td></tr>
<tr><td>Contraseña:</td>
<td><input name="pass" size="15" type="password"/></td></tr>
<td></td></tr>
<td></td></tr>
<tr><td/><td><input type="submit" value="Inicio de sesión"/></td></tr>
</table>
</form>
</div>
</div>
<img src="imagenes/login_lock.png">
<div id="lock">
</div>
</div>
</div>
<noscript>
</body>
</html>
y esta la index.php a la que quiero acceder si me he validado
<?php
session_start();
if(!isset($_SESSION['user_logged'])){
header("Location: login.php");
die("no ha iniciado sesion!");
}
else{
//echo $_SESSION["usuario"]," - ";
echo $_SESSION["nomusr"], "<br/>";
require_once("./css/cabecera.php");
require_once("./css/pie.php");
}
?>
la cosa es que no me funciona, gracias
Esta es la pagina login.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php
session_start();
if(isset($_POST['username'])){
$usr= $_POST["username"];
if(isset($_POST['pass'])){
$passwd= $_POST["pass"];
$ds=ldap_connect('172.22.22.7','389');
if ($ds){
$dn="cn=".$usr.", o=empresausers";
$estado=@ldap_bind($ds,$dn,$passwd);
if ($estado){
// Busqueda
$sr=ldap_search($ds,"o=empresausers", "cn=$usr");
$info = ldap_get_entries($ds, $sr);
//echo $info[0]["fullname"][0];//."|".$info[0]["mail"][0]."|";
$_SESSION["user_logged"]= true;
$_SESSION["autenticado"]= "SI";
$_SESSION['usuario'] = $usr;
$_SESSION['acces'] = $passwd;
$_SESSION['nomusr'] = $info[0]["fullname"][0];
echo "ID_Usuario ", $_SESSION["usuario"], "<br/>";
echo "nombre ", $_SESSION["nomusr"], "<br/>";
header("Location: index.php");
}
else{
echo "Usuario / contraseña incorrecto";
header("Location: login.php");
}
}
}else{
echo "Tienes que introducir tu contraseña";
}
}else{
echo "Tienes que introducir tu usuario";
}
?><head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Productividades</title>
<link rel="stylesheet" href="css/templatelogin.css" type="text/css" />
<style type="text/css">
</style>
<!--[if IE 7]>
<link href="css/ie7.css" rel="stylesheet" type="text/css" />
<![endif]-->
<!--[if IE 8]>
<link href="css/ie8.css" rel="stylesheet" type="text/css" />
<![endif]-->
</head>
<body>
<div id="content-box">
<div id="element-box" class="login">
<div class="m wbg">
<img src="imagenes/imagen.gif">
<h1>Acceso a las productividades</h1>
<div id="system-message-container">
</div>
<div id="section-box">
<div class="m">
<form action="index.php" method="POST">
<table border="0">
<tr><td>Nombre de usuario:</td>
<td><input name="username" size="15" value=""/></td></tr>
<td></td></tr>
<tr><td>Contraseña:</td>
<td><input name="pass" size="15" type="password"/></td></tr>
<td></td></tr>
<td></td></tr>
<tr><td/><td><input type="submit" value="Inicio de sesión"/></td></tr>
</table>
</form>
</div>
</div>
<img src="imagenes/login_lock.png">
<div id="lock">
</div>
</div>
</div>
<noscript>
</body>
</html>
y esta la index.php a la que quiero acceder si me he validado
<?php
session_start();
if(!isset($_SESSION['user_logged'])){
header("Location: login.php");
die("no ha iniciado sesion!");
}
else{
//echo $_SESSION["usuario"]," - ";
echo $_SESSION["nomusr"], "<br/>";
require_once("./css/cabecera.php");
require_once("./css/pie.php");
}
?>
la cosa es que no me funciona, gracias
