PHP - Ayuda con validacion de usuarios

 
Vista:

Ayuda con validacion de usuarios

Publicado por Kakashi Sensei (4 intervenciones) el 18/11/2008 02:12:58
Hola

Tengo un problema para validar usuarios me baje un codigo fuente de esta pagina y dicen que si funciona paro yo no pude hacerlo siempre me da el error de que tengo los campos en blanco aunque ingrese datos en los cuadros de texto.

Espero me ayuden gracias.

mi codigo es el siguiente:

<?php
session_start(); //Iniciamos la sesion
$cadena=mysql_connect("localhost","root","7723030"); //Conectamos a la base de datos
mysql_select_db("dentalalderete");

if ($_POST['login']=="si") //El valor “si” se manda a la misma pagina mediante un valor hidden de un formulario HTML
{
$usuario=$_POST['user']; //Recogemos usuario y contraseña
$cuenta=$_POST['pass'];
if (($usuario=="") || ($cuenta=="")) //Error campos en blanco
{
$_SESSION['error_login']="¡Datos en blanco!";
$url_relativa = "index.php"; //La dirección de login para el header
header ("Location: http://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']). "/" .$url_relativa);
}
else
{
//Si no es en blanco comprobamos de nuestra base de datos
$sql = mysql_query("SELECT Usuario,Pass FROM clientes WHERE Usuario='$usuario'");
$row = mysql_fetch_array($sql);
if ($row>0)
{
if($row[1] == $cuenta)
{
session_start();
session_register('nombreusuario');
$_SESSION['nombreusuario'] = $usuario;
session_register('id_usuario');
$_SESSION['id_usuario'] = $row[0];
$url_relativa = "consulta.php"; //Si todo es valido dejo entrar
header("Location: http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . "/" .$url_relativa);
}else{
$_SESSION['error_login']="¡Contraseña incorrecta!"; //Si falla la contraseña, error
$url_relativa="cliente.php";
header("Location: http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . "/" .$url_relativa);
}

}
else
{
$_SESSION['error_login']="¡Usuario incorrecto!"; //Si falla el usuario, error
$url_relativa="cliente.php";
header("Location: http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . "/" . $url_relativa);
}
mysql_free_result($sql);
}
mysql_close();
}else{
session_destroy(); // Y si falla todo borro la sesión
}
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con validacion de usuarios

Publicado por jozzj (3 intervenciones) el 18/11/2008 05:45:49
hola ...yo lo hago con esto: obvio tienes que kitarle los estilos y las cosas que sobran..

<?php require_once('Ruta de archivo a la BD'); ?>
<?php
if (!function_exists("GetSQLValueString"))
{
function GetSQLValueString($Elvalor, $Eltipo, $ElValorDefinido = "", $ElValorNoDefinido = "")
{
$Elvalor = get_magic_quotes_gpc() ? stripslashes($Elvalor) : $Elvalor;
$Elvalor = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($Elvalor) : mysql_escape_string($Elvalor);
switch ($Eltipo)
{
case "text":
$Elvalor = ($Elvalor != "") ? "'" . $Elvalor . "'" : "NULL";
break;
case "long":
case "int":
$Elvalor = ($Elvalor != "") ? intval($Elvalor) : "NULL";
break;
case "double":
$Elvalor = ($Elvalor != "") ? "'" . doubleval($Elvalor) . "'" : "NULL";
break;
case "date":
$Elvalor = ($Elvalor != "") ? "'" . $Elvalor . "'" : "NULL";
break;
case "defined":
$Elvalor = ($Elvalor != "") ? $ElValorDefinido : $ElValorNoDefinido;
break;
}
return $Elvalor;
}
}
?>
<?php
//Validacion de usuario

if (!isset($_SESSION))
{
session_start();
}

$Login_Formulario= $_SERVER['PHP_SELF'];

if (isset($_GET['accesscheck']))
{
$_SESSION['PrevUrl'] = $_GET['accesscheck'];
}

if (isset($_POST['Usuario']))
{
$LoginUsuario=$_POST['Usuario'];$password=$_POST['Contraseña'];$MM_Autorizacion = "";$MM_Redireccion_LoginExitoso = "Programa.php"; // redireccion = exitoso
$MM_Redireccion_LoginFallo = "ErroUsuario.php";$MM_Redireccion_Referida = false; //redireccion = fallo
mysql_select_db($database_DB, $DB);

$Login_Consulta=sprintf("SELECT Usuario, Password FROM usuario WHERE Usuario=%s AND Password=%s",
GetSQLValueString($LoginUsuario, "text"),
GetSQLValueString($password, "text"));

$LoginRS = mysql_query($Login_Consulta, $DB) or die(mysql_error());
$login_EncuentraUsuario = mysql_num_rows($LoginRS);
if ($login_EncuentraUsuario)
{
$loginGroupo = "";

// declarar dos variables de sesión y asignarlas
$_SESSION['MM_Username'] = $LoginUsuario;
$_SESSION['MM_UserGroup'] = $loginGroupo;

if (isset($_SESSION['PrevUrl']) && false)
{
$MM_Redireccion_LoginExitoso = $_SESSION['PrevUrl'];
}
header("Location: " . $MM_Redireccion_LoginExitoso );
}
else {
header("Location: ". $MM_Redireccion_LoginFallo );
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Login</title>

<link href="EstiloIndex.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
.Estilo3 { font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
}
#apDiv1 {
position:absolute;
left:504px;
top:177px;
width:142px;
height:92px;
z-index:1;
}
.Estilo6 {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
font-style: italic;
font-weight: bold;
}
-->
</style>
<body>
<div id="wrapper">
<div id="Encabezado2"></div>
<div id="Pagina2">
<div id="Pagina2">
<form id="form1" name="form1" method="post" action="<?php echo $Login_Formulario ?>">
<p> </p>
<p> </p>
<table width="254" height="99" border="0" align="center">
<tr>
<td width="331" height="43">
<div align="right"><span class="Estilo6">Usuario</span>
<input name="Usuario" type="text" class="Estilo3" id="Usuario" />
</div></td></tr>
<tr>
<td height="21">
<div align="right">
<span class="Estilo6">Contraseña</span>
<input name="Contraseña" type="password" class="Estilo3" id="Contraseña" />
</div></td></tr>
<tr>
<td height="24">

<div align="right">
<input name="Entrar" type="submit" class="Estilo3" id="Entrar" value="Entrar" />
</div></td></tr>
</table>
</form>
</div>
</div>
<div id="Pie2"></div>

</div>
</body>
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con validacion de usuarios

Publicado por kakashin (4 intervenciones) el 18/11/2008 18:23:13
hola gracias por responder no se mucho de PHP y hay varias cosas que no entiendo en este codigo, que es eso de 'Ruta de archivo a la BD' y eso de $Elvalor no se para que se usan. en que parte pongo mi usuario y contraseña para la base de datos? gracias por responder.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con validacion de usuarios

Publicado por jozzj (3 intervenciones) el 18/11/2008 19:33:00
hola mira ... es que ps yo creo un archivo aparte con estos datos

<?php
$hostname_Hotel = "localhost";
$database_Hotel = "NombreBD";
$username_Hotel = "root";
$password_Hotel = "tupass";
$Hotel = mysql_pconnect($hostname_Hotel, $username_Hotel, $password_Hotel) or trigger_error(mysql_error(),E_USER_ERROR);
?>

lo puedo guardar digamos conexion.php

ahora para conetar ala bd inserto en cualkier pagina que necesite la conexion esto :
si estan en la misma carpeta las dos paginas asi:

<?php require_once('conexion.php'); ?>

Si estan en diferente: por decir el archivo conexion esta en la carpeta conexiones seria

<?php require_once('conexiones/conexion.php'); ?>

y la parte de $elvalor es porque ps yo me mal acostumbre porque yo comence atrabajr con dreamweaber y me quedaron costumbres y esa es una

if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($Elvalor, $Eltipo, $ElValorDefinido = "", $ElValorNoDefinido = "")
{
$Elvalor = get_magic_quotes_gpc() ? stripslashes($Elvalor) : $Elvalor;

$Elvalor = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($Elvalor) : mysql_escape_string($Elvalor);

switch ($Eltipo) {
case "text":
$Elvalor = ($Elvalor != "") ? "'" . $Elvalor . "'" : "NULL";
break;
case "long":
case "int":
$Elvalor = ($Elvalor != "") ? intval($Elvalor) : "NULL";
break;
case "double":
$Elvalor = ($Elvalor != "") ? "'" . doubleval($Elvalor) . "'" : "NULL";
break;
case "date":
$Elvalor = ($Elvalor != "") ? "'" . $Elvalor . "'" : "NULL";
break;
case "defined":
$Elvalor = ($Elvalor != "") ? $ElValorDefinido : $ElValorNoDefinido;
break;
}
return $Elvalor;
}
}
mira en los case que tomas diferentes valores .. text, int, double etc y mira la funsion busca que es GetSQLValueString... no te emplico todo tan exacto .. investiga un poco
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con validacion de usuarios

Publicado por StReO (2 intervenciones) el 19/11/2008 10:51:25
Asegurate que el formulario html, Tiene bien los nombres de los campos, es sensible a mayusculas y minusculas,

Es posible que estas dos variables no esten recogiendo datos por que te allas equivocado al nombrar los campos, recuerdaponer el name='user' y name='pass' en la etiqueta imput
$usuario=$_POST['user'];
$cuenta=$_POST['pass'];
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con validacion de usuarios

Publicado por Kakashi Sensei (4 intervenciones) el 19/11/2008 21:19:37
pues si lo tengo asi y comoquiera no lo acepta :S

<tr>
<td height="41" valign="middle"><form id="form1" method="post" action="">
<p>
<span class="Estilo4">Usuario: </span>
<input name="user" type="text" id="user" size="20" maxlength="20" />
</p>
</form> </td>
</tr>
<tr>
<td valign="middle"><form id="form2" method="post" action="">
<p>
<label><span class="Estilo4">Contraseña:</span>
<input name="pass" type="password" id="pass" />
</label>
</p>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar