Foros del Web » Programando para Internet » PHP »

Table '.users' doesn't exist

Estas en el tema de Table '.users' doesn't exist en el foro de PHP en Foros del Web. Tengo este código para hacer un login con consulta a mi BD: Código PHP: <?php // Configura los datos de tu cuenta $dbhost = 'localhost' ; $dbusername = 'xxxxxx' ; $dbuserpass ...
  #1 (permalink)  
Antiguo 29/07/2009, 16:26
 
Fecha de Ingreso: julio-2009
Mensajes: 19
Antigüedad: 15 años, 4 meses
Puntos: 0
Table '.users' doesn't exist

Tengo este código para hacer un login con consulta a mi BD:

Código PHP:
<?php

// Configura los datos de tu cuenta
$dbhost='localhost';
$dbusername='xxxxxx';
$dbuserpass='xxxx';
$dbname='xxxxx';

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 contraseña 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.";
}
}
}  
?>
y me da este error:

Table 'xxxxx.users' doesn't exist

Los datos que introduje de mi BD son correctos, de hecho para el registro me funciona bien. ¿Qué hago mal?
  #2 (permalink)  
Antiguo 29/07/2009, 16:43
Avatar de Ronin46  
Fecha de Ingreso: junio-2009
Mensajes: 398
Antigüedad: 15 años, 4 meses
Puntos: 8
Respuesta: Table '.users' doesn't exist

¿Para qué vuelves a hacer la consulta en el último else? Puedes aprovechar los resultados de la anterior consulta y así evitas duplicarla.

En cuanto a lo que preguntas no veo nada raro, si estas bajo Linux revisa que coincidan las mayúsculas / minúsculas de los nombres de los campos de la tabla y de la tabla.
  #3 (permalink)  
Antiguo 04/08/2009, 04:26
 
Fecha de Ingreso: julio-2009
Mensajes: 19
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Table '.users' doesn't exist

No estoy bajo Linux, es windows. Yo tampoco logro ver que falla. Ayuda!!!
  #4 (permalink)  
Antiguo 04/08/2009, 04:32
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 18 años, 1 mes
Puntos: 74
Respuesta: Table '.users' doesn't exist

Lo dice claro, la tabla no existe. Como se llama la tabla, users o loqusea.users?

Saludos,
  #5 (permalink)  
Antiguo 04/08/2009, 05:31
 
Fecha de Ingreso: julio-2009
Mensajes: 19
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Table '.users' doesn't exist

lo que sea, el users me lo pone en el error.
En phpMyadmin el nombre es xxxx_midominio. Y yo tengo puesto:

$dbname='xxxx_midominio';

y si pongo:


$dbname='xxxx_midominio.users'; me dice: cannot select database
  #6 (permalink)  
Antiguo 04/08/2009, 08:01
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 18 años, 1 mes
Puntos: 74
Respuesta: Table '.users' doesn't exist

Buenas,

Por eso pregunté el nombre de la base...

Porque tanto el nombre de la base de datos como de la tabla no puede contener ningun tipo de slash o barra invertida (ni asi / ni asi \ ) y tampoco puede contener ningún punto que es lo que esta sucediendo en este caso.
  #7 (permalink)  
Antiguo 05/08/2009, 05:44
 
Fecha de Ingreso: julio-2009
Mensajes: 19
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Table '.users' doesn't exist

pero no tiene. Mi bd se llama xxxxx_midominio
  #8 (permalink)  
Antiguo 05/08/2009, 06:12
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 16 años, 3 meses
Puntos: 139
Respuesta: Table '.users' doesn't exist

Bueno aqui te pongo las cosas por pasos, hice varias modificaciones estudialas.



Este es el Sql que use para el ejemplo.

Código SQL:
Ver original
  1. CREATE TABLE  `prueba`.`users` (
  2.   `Codigo` INT(11) NOT NULL AUTO_INCREMENT,
  3.   `username` VARCHAR(30) NOT NULL DEFAULT '',
  4.   `password` VARCHAR(33) NOT NULL DEFAULT '',
  5.   PRIMARY KEY  (`Codigo`)
  6. ) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Fijate que he usado una base de datos que se llama prueba y la tabla
se llama users
tienes que crear una db que se llame prueba en tu servidor.


Tienes un formulario como este .
Código HTML:
<form name="form" action="validar.php"  method="post">
user<input type="text" name="username"><br>
password<input type="password" name="password">
<input type="submit" value="enviar" name="btn">
</form> 
Y tienes un archivo llamado Validar.php

Código PHP:
Ver original
  1.  
  2. if( isset($_POST['btn'])){
  3. // Configura los datos de tu cuenta
  4. $dbhost='localhost';  ## El servidor
  5. $dbusername='root'; ## Usuario
  6. $dbuserpass='1234'; ## Aqui va la clave de tu servidor de base de datos.
  7. $dbname='prueba';  ## Aqui va el nombre de la base de datos que te especifique arriba.
  8.  
  9.  
  10.  
  11. // Conectar a la base de datos
  12. mysql_connect ($dbhost, $dbusername, $dbuserpass);
  13. mysql_select_db($dbname) or die('Cannot select database');
  14.  
  15.  
  16. ## Escapamos los datos recibidos.
  17. $username = htmlentities(trim($_POST['username']));
  18. $password = htmlentities(trim($_POST['password'])); ## Es preferible que guarde tus password encriptados.
  19.  
  20.    
  21.    
  22.     ##Verificamos que el usuario contenga datos.
  23.     if (isset($username) && empty($username) ) {
  24.     echo "El usuario no fue instroducido";
  25.     exit();
  26.     }
  27.  
  28.    
  29.     ## Verificamos que el password contiene password.
  30.     if ( isset($password) && empty($password) ) {
  31.     echo "El password no fue instroducido";
  32.     exit();
  33.     }
  34.    
  35.    
  36.    
  37.     ## Hacemos la consulta de verificacion.
  38.     $query = mysql_query("SELECT username,password FROM users WHERE username = '$username' and password='$password'") or die(mysql_error());
  39.    
  40.    
  41.     ## Verificamos si regreso registro la consulta.
  42.     if(mysql_num_rows($query)){
  43.    
  44.  
  45.     ## recuperamos los datos.
  46.     $data = mysql_fetch_array($query);
  47.    
  48.    
  49.     ## Guadamos el usuario en la seccion.
  50.     $_SESSION["s_username"] = $data['username'];
  51.    
  52.     ## Mostramos el mensaje.
  53.     echo "Has sido logueado correctamente ".$_SESSION['s_username']." y puedes acceder al index.php.";
  54.     exit();
  55.     }
  56.    
  57.     else
  58.     {  
  59.     ##Mandamos ala mierda el que esta intentando entrar sin permisos.
  60.     echo "Login incorrecto";
  61.  
  62.     }  
  63. }

Suerte.
  #9 (permalink)  
Antiguo 06/08/2009, 03:45
 
Fecha de Ingreso: julio-2009
Mensajes: 19
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Table '.users' doesn't exist

Gracias!!!!! perfecto arreglado un saludo y mil gracias.

Última edición por angelyanos; 06/08/2009 a las 03:57
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 13:02.