Foros del Web » Programando para Internet » PHP »

Intentando un Login

Estas en el tema de Intentando un Login en el foro de PHP en Foros del Web. Buenas estoy intentando hacer un login de usuario con secciones pero hay algo que no encaja y no me doy cuenta aver si podeis ayudarme. ...
  #1 (permalink)  
Antiguo 03/06/2009, 10:14
 
Fecha de Ingreso: mayo-2009
Mensajes: 22
Antigüedad: 14 años, 11 meses
Puntos: 0
Pregunta Intentando un Login

Buenas estoy intentando hacer un login de usuario con secciones pero hay algo que no encaja y no me doy cuenta aver si podeis ayudarme.

Codigo Formulario:

<html>
<head>
<script language="JavaScript">
function validar(){
if (window.document.form1.usuario.value.length==0)
{alert("Debes de introducir un Usuario");return false;}
if (window.document.form1.clave.value.length==0)
{alert("Debes de introducir una Contaseña");return false;}
return true;
}
onload = function(){
document.getElementById('form1').onsubmit = validar;
}
</script>
<title>Iniciar Sección</title>
<link href="estilo.css" rel="stylesheet" type="text/css" />
</head>
<body>
<table width="233" border="0" align="center">
<tr>
<td width="41"><img src="Imagenes/llaves.gif" width="38" height="38" /></td>
<td width="182" align="left" valign="bottom" class="menu">Login | Inscríbete</td>
</tr>
<tr>
<td colspan="2"><div class="menu">
<form id="form1" name="form1" action="seccion.php" method="post">
<table width="230" border="0" cellpadding="0">
<tr>
<td width="70">Usuario:</td>
<td width="154"><label>
<input name="usuario" type="text" class="formu" id="usuario" size="15" />
</label></td>
</tr>
<tr>
<td valign="middle"><label>Contraseña</label></td>
<td valign="middle"><input name="clave" type="password" class="formu" id="clave" size="15" /></td>
</tr>
<tr>
<td colspan="2"><label>
<input type="submit" name="button" id="button" value="Login" />
<input type="button" name="button2" id="button2" value="Nuevo" />
</label></td>
</tr>
</table>

</form>
</div></td>
</tr>
</table>
</body>
</html>
Codigo Seccion
<?php
$dbhost='localhost';
$dbusername='root';
$dbuserpass='root';
$dbname='tienda';
session_start();
//Comprobar el usuario y contraseña
if($_POST['usuario']){
$usuario=$_POST['usuario'];
$password=$_POST['clave'];
if($password==NULL){
echo "La contraseña no fu enviada";
}else{
$query = mysql_query("SELECT Usuario,Password FROM cliente WHERE Usuario='$usuario'")
or die(mysql_error());
$data = mysql_fetch_array($querry);
if ($data['clave'] !=$password){
echo "Tu contraseña es incorrecta por favor trata de nuevo o contacta al Administrador del sistema";
}else{
$querry = mysql_querry("SELECT Usuario,Password FROM cliente WHERE Usuario='$usuario'")
or die (mysql_error());
$row = mysql_fetch_array($query);
$SESSION["s_usuario"] = $row['usuario'];
$_SESSION['s_usuario']." y puedes acceder al index.php.";

}
}
}
?>

Al logearme me da este error

Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp\www\web\seccion.php on line 14
Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\wamp\www\web\seccion.php on line 14
Access denied for user 'ODBC'@'localhost' (using password: NO)
  #2 (permalink)  
Antiguo 03/06/2009, 10:19
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Intentando un Login

mas claro que el agua....

Access denied for user 'ODBC'@'localhost' (using password: NO)

tiene password tu conexion de usuaro a tu bd??? no creo y tu en tu codigo si le pones passwor y claramente que tu usuario no utiliza password
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #3 (permalink)  
Antiguo 03/06/2009, 10:21
 
Fecha de Ingreso: mayo-2009
Mensajes: 22
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Intentando un Login

Cita:
Iniciado por By_George Ver Mensaje
mas claro que el agua....

Access denied for user 'ODBC'@'localhost' (using password: NO)

tiene password tu conexion de usuaro a tu bd??? no creo y tu en tu codigo si le pones passwor y claramente que tu usuario no utiliza password
Si del login teno un mini fomrulario con usuario y contraseña.
  #4 (permalink)  
Antiguo 03/06/2009, 10:27
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Intentando un Login

noooo aqui donde tienes los parametros de conexion

$dbhost='localhost';
$dbusername='root';
$dbuserpass='root';
$dbname='tienda';


ese pasword es mas no veo donde haces la conexion con la base de datos
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #5 (permalink)  
Antiguo 03/06/2009, 10:32
 
Fecha de Ingreso: mayo-2009
Mensajes: 22
Antigüedad: 14 años, 11 meses
Puntos: 0
Cita:
Iniciado por By_George Ver Mensaje
noooo aqui donde tienes los parametros de conexion

$dbhost='localhost';
$dbusername='root';
$dbuserpass='root';
$dbname='tienda';


ese pasword es mas no veo donde haces la conexion con la base de datos
pero eso para la base de datos no?
yo si tengo contraseña

Este codigo lo saque de internet peor luego lo hago y esta mal

<?php
// Configura los datos de tu cuenta
$dbhost='localhost';
$dbusername='username';
$dbuserpass='password';
$dbname='database';

session_start();

// Conectar a la base de datos
mysql_connect ($dbhost, $dbusername, $dbuserpass);
mysql_select_db($dbname) or die('Cannot select database');

if ($_POST['username']) {
//Comprobacion del envio del nombre de usuario y password
$username=$_POST['username'];
$password=$_POST['password'];
if ($password==NULL) {
echo "La password no fue enviada";
}else{
$query = mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['password'] != $password) {
echo "Login incorrecto";
}else{
$query = mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error());
$row = mysql_fetch_array($query);
$_SESSION["s_username"] = $row['username'];
echo "Has sido logueado correctamente ".$_SESSION['s_username']." y puedes acceder al index.php.";
}
}
}
?>

Probé con este ultimo codigo y me da este error

Notice: Undefined index: clave in C:\wamp\www\web\seccion.php on line 23
Login incorrecto


osea en esta linea
if($data['clave'] != $password)

Última edición por GatorV; 03/06/2009 a las 11:34
  #6 (permalink)  
Antiguo 03/06/2009, 10:43
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Intentando un Login

a ver muestra el codigo de como te muestra el error el de ahorita pero entre etiquetas de codigo php
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #7 (permalink)  
Antiguo 03/06/2009, 10:44
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Intentando un Login

vaya, en tu codigo original que pones faltan estas lineas

// Conectar a la base de datos
mysql_connect ($dbhost, $dbusername, $dbuserpass);
mysql_select_db($dbname) or die('Cannot select database');
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #8 (permalink)  
Antiguo 03/06/2009, 10:47
 
Fecha de Ingreso: mayo-2009
Mensajes: 22
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Intentando un Login

<?php
// Configura los datos de tu cuenta
$dbhost='localhost';
$dbusername='root';
$dbuserpass='root';
$dbname='tienda';

session_start();

// Conectar a la base de datos
mysql_connect ($dbhost, $dbusername, $dbuserpass);
mysql_select_db($dbname) or die('Cannot select database');

if ($_POST['usuario']) {
//Comprobacion del envio del nombre de usuario y password
$username=$_POST['usuario'];
$password=$_POST['clave'];
if ($password==NULL) {
echo "La password no fue enviada";
}else{
$query = mysql_query("SELECT Usuario,Password FROM cliente WHERE Usuario = '$username'") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['clave'] != $password) {
echo "Login incorrecto";
}else{
$query = mysql_query("SELECT Usuario,Password FROM cliente WHERE Usuario = '$username'") or die(mysql_error());
$row = mysql_fetch_array($query);
$_SESSION["s_username"] = $row['username'];
echo "Has sido logueado correctamente ".$_SESSION['s_username']." y puedes acceder al index.php.";
}
}
}
?>
  #9 (permalink)  
Antiguo 03/06/2009, 10:49
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Intentando un Login

En el select consultas Usuario y Password
SELECT Usuario,Password FROM

pero en tu codigo php validas clave
if ($data['clave'] !=$password)

por cierto By_George se referia a que uses las funciones de este foro para poner codigo

Código PHP:
Aqui vca el codigo PHP 
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #10 (permalink)  
Antiguo 03/06/2009, 10:50
 
Fecha de Ingreso: mayo-2009
Mensajes: 22
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Intentando un Login

Cita:
Iniciado por Avatar810 Ver Mensaje
En el select consultas Usuario y Password
SELECT Usuario,Password FROM

pero en tu codigo php validas clave
if ($data['clave'] !=$password)

Correcto ara me sale el siguiente

Notice: Undefined index: username in C:\wamp\www\web\seccion.php on line 28
Has sido logueado correctamente y puedes acceder al index.php.

Código PHP:
[COLOR="Red"]$_SESSION["s_username"] = $row['username'];[/COLOR
  #11 (permalink)  
Antiguo 03/06/2009, 10:54
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Intentando un Login

por que tu columna de usuario se llama asi:

Usuario

y tu en el row que guardas en la variable de sesion esta asi:

$_SESSION["s_username"] = $row['username'];

es el mismo error que con lo de clave y password asi que deberias de darte cuenta, no solo es copiar y pegar como dice RONRUBY copiar y pegar es malo para tu salud
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.
  #12 (permalink)  
Antiguo 03/06/2009, 10:58
 
Fecha de Ingreso: mayo-2009
Mensajes: 22
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Intentando un Login

Cita:
Iniciado por By_George Ver Mensaje
por que tu columna de usuario se llama asi:

Usuario

y tu en el row que guardas en la variable de sesion esta asi:

$_SESSION["s_username"] = $row['username'];

es el mismo error que con lo de clave y password asi que deberias de darte cuenta, no solo es copiar y pegar como dice RONRUBY copiar y pegar es malo para tu salud
Vale amigos ya sale bien... weno reconosco que es malo pero,, creo que tengo mis razones por lo cual lo hago!!
  #13 (permalink)  
Antiguo 03/06/2009, 11:01
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Intentando un Login

Misma situacion

tratas de poner username y no esta en el select
$_SESSION["s_username"] = $row['username'];

Por cierto pq vuleves a hacer el mismo select?
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #14 (permalink)  
Antiguo 03/06/2009, 11:02
 
Fecha de Ingreso: mayo-2009
Mensajes: 22
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Intentando un Login

¿Como puedo mostrar ahora el index.php?

Código PHP:
 <?php
// Configura la información de tu cuenta
$dbhost='localhost';
$dbusername='root';
$dbuserpass='root';
$dbname='tienda';
session_start();

// Conexión a la base de datos
mysql_connect ($dbhost$dbusername$dbuserpass);
 
mysql_select_db($dbname) or die('Cannot select database');

?>

<?
if (isset($_SESSION['s_username'])) {
echo 
"Bienvenido a mi sitio has ingresado como ".$_SESSION['s_username'].", gracias por la visita!";
}else{
echo 
"Tu no estas autentificado dirígete a login.php o registrate en register.php";
echo 
$_SESSION['s_username'];
}
?>
  #15 (permalink)  
Antiguo 03/06/2009, 11:03
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Intentando un Login

yo estoy de acuerdo con By_George

Incluso si eres novato o estas limitado de tiempo debes de analisar los codigos que utilizas; no solo copiar y pegar...

Ese vicio es de los peores para un desarrollador.

Suerte

P.d. Estructura tu codigo que es muy dificil de leer...
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #16 (permalink)  
Antiguo 03/06/2009, 11:05
Avatar de By_George  
Fecha de Ingreso: abril-2009
Ubicación: localhost
Mensajes: 629
Antigüedad: 15 años
Puntos: 19
Respuesta: Intentando un Login

Cita:
Iniciado por energ Ver Mensaje
¿Como puedo mostrar ahora el index.php?
como que como muestras el index??? explicate mejor, que es lo que quieres hacer???

Cita:
Iniciado por Avatar810 Ver Mensaje
Ese vicio es de los peores para un desarrollador.
de hecho si tienen ese vicio no deberian ser desarrolladores, ni ser llamados asi
__________________
La estadística es una ciencia que demuestra que si mi vecino tiene dos coches y yo ninguno, los dos tenemos uno.

Última edición por By_George; 03/06/2009 a las 11:10
  #17 (permalink)  
Antiguo 03/06/2009, 11:05
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Intentando un Login

Puedes redireccionar desde php con
header("Location: index.php");
Pero la condicion es no haber enviado nada a pantalla

Código PHP:
<? 
if (isset($_SESSION['s_username'])) 

    
header("Location: index.php"); 
}
else

    echo 
"Tu no estas autentificado dirígete a login.php o registrate en register.php"
    echo 
$_SESSION['s_username']; 

?>
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #18 (permalink)  
Antiguo 03/06/2009, 11:28
 
Fecha de Ingreso: mayo-2009
Mensajes: 22
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Intentando un Login

Aver
1º no me considero desarollador
2º Lo de copiar, vuelvo a insistir me han aprendido lo basico yo ahora mismo me ti buscando la vida con vuestra ayuda.
3ºEn un futuro no me gustaria dedicarme a esto ,solamente pido ayuda algo que no se hacer por mi mismo, porque no se hacerlo! es simple!

Ahora voy con el codigo

El caso que me sale esto
Código PHP:
Has sido logueado correctamente Juan y puedes acceder al index.php
Y claro ahora me kedo algo pillao no se si hay que mostrar el index para los usuarios o nose como.

Codigo:
Código PHP:
Quinto Paso: Index.php visible para usuarios registrados

    <?php
    
// Configura la información de tu cuenta
    
$dbhost='localhost';
    
$dbusername='username';
    
$dbuserpass='password';
    
$dbname='database';
    
session_start();

    
// Conexión a la base de datos
    
mysql_connect ($dbhost$dbusername$dbuserpass);
    
mysql_select_db($dbname) or die('Cannot select database');

    
?>

    <?
    
if (isset($_SESSION['s_username'])) {
    echo 
"Bienvenido a mi sitio has ingresado como ".$_SESSION['s_username'].", gracias por la visita!";
    }else{
    echo 
"Tu no estas autentificado dirígete a login.php o registrate en register.php";
    echo 
$_SESSION['s_username'];
    }
    
?> 

Sexto Paso: Logout

Sólo nos quedaría poder salir de la página una vez nos hayamos autentificado y esto lo haremos con este pequeño script.

    <?
    session_start
();
    
$_SESSION = array();
    
header("Location: index.php");
    
?>
  #19 (permalink)  
Antiguo 03/06/2009, 11:44
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Intentando un Login

como ya lo dije, no puedes enviar nada a pantalla para usar HEADER...

La leyenda que escribes "Has sido logueado correctamente Juan y puedes acceder al index.php. " no esta en el codigo que dejas... de donde lo sacaste??
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #20 (permalink)  
Antiguo 03/06/2009, 11:46
 
Fecha de Ingreso: mayo-2009
Mensajes: 22
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: Intentando un Login

Cita:
Iniciado por Avatar810 Ver Mensaje
como ya lo dije, no puedes enviar nada a pantalla para usar HEADER...

La leyenda que escribes "Has sido logueado correctamente Juan y puedes acceder al index.php. " no esta en el codigo que dejas... de donde lo sacaste??
Lo que cito arriba son 2 paginas más una para mostrar y la otra para loguear


Perdón pero no lo mostre aquí pero si estaba

Queria saber para que ese index.php visible para los usuarios y logout
  #21 (permalink)  
Antiguo 03/06/2009, 11:57
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Intentando un Login

pues se supone que index es la pagina a la que realmente quieres entrar pero para poder verla debes estar "logueado"
y logout es para salirte

Analogia:
Quieres revisar tu correo de hotmail (o del proveedor que prefieras...)
(index.php) es la pagina en la que ya estas viendo la lista de correos
para entrar a esa pagina tienes que autentificarte (LOGIN)
para que nadie mas vea tus correos debes cerrar tu sesion (LOGOUT) --- suponiendo que sepas que no debes cerrar el correo desde la tachita del navegador...

saludos
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
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 21:43.