Foros del Web » Programando para Internet » PHP »

Problemas en la parte del login

Estas en el tema de Problemas en la parte del login en el foro de PHP en Foros del Web. Despues de conseguir el envío de datos a la bd me ha surgido problemas con la parte del login.. <?php ob_start(); include("config.php"); // connect to ...
  #1 (permalink)  
Antiguo 13/01/2012, 07:36
 
Fecha de Ingreso: diciembre-2011
Mensajes: 414
Antigüedad: 12 años, 4 meses
Puntos: 1
Problemas en la parte del login

Despues de conseguir el envío de datos a la bd me ha surgido problemas con la parte del login..

<?php
ob_start();
include("config.php");
// connect to the mysql server
$link = mysql_connect($server, $db_user, $db_pass)
or die ("Could not connect to mysql because ".mysql_error());
// select the database
mysql_select_db($database)
or die ("Could not select database because ".mysql_error());
$match = "select id from $table where username = '".$_POST['username']."'
and password = '".$_POST['password']."';";

$qry = mysql_query($match)
or die ("Could not match data because ".mysql_error());
$num_rows = mysql_num_rows($qry);
if ($num_rows <= 0) {
echo "Sorry, there is no username or password with: <strong>".$_POST['username']."</strong><br>";
echo "<a href=login.html>Try again</a>";
exit;
} else {
setcookie("loggedin", "".$_POST['username']."", time()+(3600 * 24));
echo "Welcome: <strong>".$_POST['username']."</strong><br>";
echo "Continue to the <a href=members.php>members</a> section.";
}
ob_end_flush();
?>

La parte que está en negrita es la causante del error y este es el error vale dice que no existe el username pero cuando

Could not match data because Unknown column 'username' in 'where clause'

Asi que canvio los errores de la siguiente manera

$match = "select id from $table where mail = '".$_POST['mail']."'
and password = '".$_POST['password']."';";

y me sale igual :(
  #2 (permalink)  
Antiguo 13/01/2012, 07:40
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 15 años
Puntos: 6
Respuesta: Problemas en la parte del login

Te esta diciendo que en la bd no existe un campo llamado username
  #3 (permalink)  
Antiguo 13/01/2012, 08:12
 
Fecha de Ingreso: diciembre-2011
Mensajes: 414
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Problemas en la parte del login

Ese es el problema pero cuando lo he modificado como la ultima manera no me ha dejado acceder

id name surname mail password alias permisos

El problema esta que cuando selecciono el id si pero entonces cual tendria que seleccionar?
  #4 (permalink)  
Antiguo 13/01/2012, 11:03
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 15 años
Puntos: 6
Respuesta: Problemas en la parte del login

Hola.

No entiendo eso de que cuento seleccionas el id.

Mira, haz una cosa. Haz un script nuevo, donde solo conectes con la bd y pruebalo. Cuando funcione, hasta la consulta y consulta y campo y cuando funciones consulta los dos campos hasta que funcione. Si no funciona en alguno de los casos, indica el error porque no puede ser siempre el mismo.

Un saludo.
  #5 (permalink)  
Antiguo 13/01/2012, 16:32
 
Fecha de Ingreso: diciembre-2011
Mensajes: 414
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Problemas en la parte del login

Mira te he hecho caso y he hecho un script de nuevo y he conseguido que me funciona pero hay una cosa curiosa ..si no inserta nada en el formulario accede .. y no sale que falta rellenar los campos..Logicamente no está configurado xd

Mira para que veas

el formulario html

<form name="form1" method="POST" action="login.php">
<p>Username:
<input type="text" name="mail"><br>
Password: <input type="password" name="password"><br>
<input type="submit" value='Acceso'>
</p>
</form>

y el archivo de configuracion php

<?php
$mail=$_POST["mail"];
$password=$_POST["password"];
if ($mail&&$password);
{
include("db.inc.php");
$query = mysql_query("SELECT * FROM users WHERE mail='$mail'");
$numrows = mysql_num_rows($query);
{
while ($row = mysql_fetch_assoc($query))
{
$dbusername = $row['mail'];
$dbpassword = $row['password'];
$dbalias = $row['alias'];
$dbname = $row['name'];
$dbsurname = $row['surname'];
//
}
if ($mail==$dbusername&&$password==$dbpassword)
{
echo "Contraseña correcta";
//
}
else
echo "Contraseña errónea";
}
}
?>
  #6 (permalink)  
Antiguo 13/01/2012, 16:51
 
Fecha de Ingreso: mayo-2009
Mensajes: 742
Antigüedad: 15 años
Puntos: 6
Respuesta: Problemas en la parte del login

Hola. En la parte del php, prueba esto.

Código PHP:
Ver original
  1. include("db.inc.php");
  2.  
  3. if (isset($_POST))
  4. {
  5.  $mail = $_POST["mail"];
  6.  $password = $_POST["password"];
  7.  
  8.  $query = mysql_query("SELECT * FROM users WHERE mail = '$mail' and password = '$password'");
  9.  
  10.  if ($numrows = mysql_num_rows($query) == 1)
  11.         echo 'Instrucciones porque se ha identificado correctamente';
  12.     else
  13.         echo 'Instrucciones porque no se ha identificado correctamente';
  14. }

Etiquetas: html, 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 17:23.