PHP-Hispano.net Comunidad hispana de desarrollo web

Contacto | #php_para_torpes | Enlázanos | ¿Quiénes somos?

14 usuarios Online (0)

Darse de alta en la web | Recuperar password   
Inicio / Foros / PHP / Ayuda con formulario usuario-contraseña

Ayuda con formulario usuario-contraseña

5 respuestas 898 visitas Categoría PHP

Ayuda con formulario usuario-contraseña

Avatar de Fali

Nivel 1 (4 posts)

* * * * * * *

0 Agradecimientos

#0 Offline 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&ntilde;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&ntilde;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&oacute;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

Re: Ayuda con formulario usuario-contraseña

Avatar de espher

Nivel 2 (65 posts)

* * * * * * *

3 Agradecimientos

#1 Offline espher 28 mar 12 0 personas consideran útil este post.
pero cual es el error que te tira???? y en que linea??? saludos.

Re: Ayuda con formulario usuario-contraseña

Avatar de Fali

Nivel 1 (4 posts)

* * * * * * *

0 Agradecimientos

#2 Offline Fali 30 mar 12 0 personas consideran útil este post.
No me da ningun error, lo que ocurre es que ponga el usuario que ponga o la contraseña simepre me va al index.php

Re: Ayuda con formulario usuario-contraseña

Avatar de espher

Nivel 2 (65 posts)

* * * * * * *

3 Agradecimientos

#3 Offline espher 03 abr 12 0 personas consideran útil este post.
ye so quiere decir que???? no te esta validando usuario y contraseña??? o ya te checate que si llege bien la informacion osea que si se este postiando bien los datos???

le estas dando el valor de verdad a $_SESSION ????
se esta creando la session???


otra cosa viendo tu codigo CREO que tienes algunos errorsillo::
---------------------------------------------------------------------------------------------------------------------------

if(isset($_POST['username'])){
$usr= $_POST["username"];
if(isset($_POST['pass'])){
$passwd= $_POST["pass"];


si se postio username pasa, si se postio pass pasa, ok aqui vamos bien

$ds=ldap_connect('172.22.22.7','389');
if ($ds){
$dn="cn=".$usr.", o=empresausers";
$estado=@ldap_bind($ds,$dn,$passwd);
if ($estado){
// Busqueda


si saca $sd pasa a lo siguiente, si existe estado a lo siguiente
-------------------------------------------------------------------------------------------------------------------------------
AQUI VA UN ERROR SEGURO que es imprimes html antes de redireccionar con un header(location)

echo "ID_Usuario ", $_SESSION["usuario"], "<br/>";
echo "nombre ", $_SESSION["nomusr"], "<br/>";

header("Location: index.php");

esto te va a tirar error te va a tronar ya que no puedes imprimir nada o mejor dicho sacar nada de html antes de una redireccion de este tipo.

otra duda creo que ammm estas redireccionando a index por todos lados talvez ese sea tu problema.....

solucionado

Avatar de Fali

Nivel 1 (4 posts)

* * * * * * *

0 Agradecimientos

#4 Offline Fali 20 abr 12 0 personas consideran útil este post.
bueno ya lo he solucionado, he creado la pagina login.php donde tiene el formulario y la funciones.php donde hago las comprobaciones:

login.php:
<?php
require ("funciones.php");
seguridadIndex();

$error = 0;
if(isset($_POST['login']))
{
$error = login(limpiar($_POST['user']), $_POST['pass']);
if($error>0)
{
echo "<script language='javascript'> document.location.href='index.php' </script>";
// echo"<META HTTP-EQUIV=\"refresh\" content=\"1; URL=index.php\">";
//header("Location: index.php");
exit();
}
}
?>
<html>
<head>
<title>titulo</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>
<div align="center" id="content-box">
<div id="element-box" class="login">
<div class="m wbg">
<img src="imagenes/imagen.gif">
<h1>Acceso</h1>
<div id="system-message-container">
</div>
<div id="section-box">
<div class="m">
Para entrar usa tu
usuario/contraseña de red
<form name="login" method="post" action="">
<center><h2></h2></center><br />
<table>
<tr><td><label for="usuario">Usuario: </label></td> <td><input type="text" id="user" name="user" style="width:100px;height:20px;font-size:12pt;" <?php if($error>0) echo 'value="'.limpiar($_POST['user']).'"'; ?>/></td></tr>
<tr><td> <label for="usuario"> Contraseña: </label></td> <td><input type="password" id="pass" name="pass" style="width:100px;height:20px;font-size:12pt;"/></td></tr>
<tr><td> </td>
<td align="right"><input type="submit" name="login" id="login" value="Login" style="width:80px;height:30px;font-size:12pt;"/></td></tr>
</table>

<?php
switch ($error) {
case -1://login
echo '<br/><strong>Usuario o clave incorrecta</strong>';
break;
case -2://registro
echo '<br/><strong>Usuario o clave incorrecta</strong>';
break;
case -3://registro
echo '<br/><strong>Tiene que introducir usuario/contraseña.</strong>';
break;
default:
if($registrar) echo '<br/><strong>Se ha registrado correctamente.</strong>';
break;
}
?>
</form>
</div>
</div>
<img src="imagenes/login_lock.png">
<div id="lock">
</div>
</div>
</div>





</body>
</html>

y la pagina funciones.php

<?php
session_start();

/**
* Comprueba que exista una sesion.
*
*
*/
function seguridadIndex()
{

if (isset($_SESSION['usuario']))
{

//header("Location: index.php");
echo "<script language='javascript'> document.location.href='index.php' </script>";
exit();
}

}


/**
* Comprueba que exista una sesion , sino redirige al login
*
* @return int estado
*/
function seguridad(){

if (isset($_SESSION['usuario']))
{
//echo "<script language='javascript'> document.location.href='index.php' </script>";
return;
}
else
{
echo "<script language='javascript'> document.location.href='login.php' </script>";
exit();
}

}

/**
* Comprueba y el user y pass son correcto.
*
* @global string $salt
* @global string $saltCookie
* @param string $user
* @param string $pass
* @param bool $recordarme
* @return int estado
*/
function login ($user,$pass)
{
if(strlen($user)<1 || strlen($pass)<1) return -3;

$ds=ldap_connect('host del ldap');
if ($ds)
{
$dn="cn=".$user.", o=empresausers";
$estado=@ldap_bind($ds,$dn,$pass);
if ($estado)
{
// Busqueda
$sr=ldap_search($ds,"o=empresausers", "cn=$user");
$info = ldap_get_entries($ds, $sr);
$_SESSION['usuario'] = $user;
$_SESSION['nomusr'] = $info[0]["fullname"][0];
return true;
}else{
return -1;
}
}
}


/**
*
* @param string $valor
* @return string string limpiado de fallos de seguridad
*/
function limpiar($valor){
$valor = strip_tags($valor);
$valor = stripslashes($valor);
$valor = htmlentities($valor);
return $valor;
}

?>


y cada pagina añado esto para comprobar que se está logueado
session_start();
require ("funciones.php");
$error = 0;
seguridad(); //comprobamos que se esté logueado

como en la index solo tengo una llamada a una pagina que se carga en todas solo tengo que ponerla en esa.


gracias por todo.

solucionado

Avatar de Fali

Nivel 1 (4 posts)

* * * * * * *

0 Agradecimientos

#5 Offline Fali 20 abr 12 0 personas consideran útil este post.
Lo publíco por sí le sirve a alguno más

Responder mensaje

Para poder participar debes ser un usuario registrado de PHP-Hispano. :: Deseo darme de alta en esta comunidad ::
Login / Password   

Temas relacionados

E Titulo Respuestas Última resp. Creado el Visitas Foro
Pregunta Despues de la funcion mail.... ayuda porfavor 1 30 nov 03
por oso96_2000
dom, 30 nov 03 (21:47)
por nconocen
944 PHP
Pregunta ayuda &lt;option value=x&gt;x&lt;/option&gt; 1 11 feb 04
por Tendenze
mar, 10 feb 04 (20:08)
por johnrr74
1016 PHP
Pregunta Ayuda por Favor please!!!!!!!! 1 12 may 04
por infinit
mié, 12 may 04 (21:43)
por juan007
806 PHP
Pregunta Ayuda ... no se quien mas me puede ayudar 4 21 may 04
por thessoro
mié, 19 may 04 (21:22)
por juan007
954 PHP
Pregunta enviar url por mail 11 29 jun 04
por Chile
mié, 16 jun 04 (00:36)
por juanpro
5216 PHP

php-hispano.net 2002 - 2013 | XHTML 1.0
Datos Legales | Webmaster