Foros del Web » Programando para Internet » PHP »

Problema con PHP (Acceso Bases de datos)

Estas en el tema de Problema con PHP (Acceso Bases de datos) en el foro de PHP en Foros del Web. Por favor necesito ayuda con un código. LLevo mas de 2 días cambiandolo y sigo sin entender cual es el error. Pienso que puede estar ...
  #1 (permalink)  
Antiguo 25/11/2007, 05:17
 
Fecha de Ingreso: noviembre-2007
Mensajes: 22
Antigüedad: 16 años, 5 meses
Puntos: 0
Exclamación Problema con PHP (Acceso Bases de datos)

Por favor necesito ayuda con un código. LLevo mas de 2 días cambiandolo y sigo sin entender cual es el error. Pienso que puede estar en la sentencia SQL, porq lo he ido arrinconando (al error XDD) y mas o menos me ha llevado allí. Espero vuestra respuesta amigo.

GRACIAS POR ADELANTADO!!








Código PHP:

<?php

if(!isset($_POST['nombre']) || !isset($_POST['password'])){
    
    
    echo 
' Por favor rellene todas las casillas del formulario';
    

    
}
else 
{


    
$formato_nombre addslashes($_POST['nombre']);
    
$formato_password addslashes($_POST['password']);
    

$conexiondb = new mysqli('localhost','NOMBRE_USUARIO','PASSWORD_USUARIO','NOMBRE_BD');

if (
mysqli_connect_errno()){  
        
        echo 
'Error 1: No se ha podido establecer la conexión con la base de datos. Por favor, inténtelo de nuevo.';

exit;
        
    }

    
    
$query "select * from usuarios where nombre ='".$formato_nombre." 'and password =' ".$formato_password." ' ";
                     

    
$resultado $conexiondb -> query($query);
    
    if(!
$resultado){
    
    echo 
'<br> Se ha producido un fallo en la instrucción SQL ' ;
    
    }

    if( 
$conexiondb -> mysqli_num_rows != 0){
    
    
$_SESSION ['nombre'] = $_POST['nombre'];
    
$_SESSION['password'] = $_POST['password'];
    
    echo 
'Te has logueado como ' $_SESSION['nombre'];
}
    else
    {
    
    echo 
'Lo sentimos, su contraseña no es VALIDA';
    
    
    }
}

?>
  #2 (permalink)  
Antiguo 25/11/2007, 05:49
 
Fecha de Ingreso: noviembre-2007
Mensajes: 3
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Problema con PHP (Acceso Bases de datos)

Buenas!

a simple vista no veo que puede ser. yo te recomendaria que lo quitaras todo y poco a poco fueras recogiendo resultados, y si son correctos continuar. Es la primera vez que haces conexiones a base de datos?

de todas formas te pongo un código de validación mio que hace tiempo hice por amor a php jejeje, a ver si te da nuevas ideas y enfoques ;) un saludo

Código PHP:
if ($_POST['stextone'] != "" && $_POST['stexttwo'] != ""){
       
       
$query "SELECT u.userid as id, u.insertdate as insertdatauser, u.nick, u.userpassword, u.userdatebirthday as birthday, w.name as namecountry FROM userregistry u, worldregions w " 
                
"WHERE u.country = w.idworld AND u.nick = '" $_POST['stextone'] . "' AND u.userpassword = '" $_POST['stexttwo'] . "';";
       
$result mysql_query($query) or die (mysql_error());
       
       if  (
mysql_num_rows ($result) ==  ){
            
$row mysql_fetch_array($result);
            
$oklogon "ok";
            
$_SESSION['user_logged'] = $_POST['stextone'];
            
$_SESSION['user_password'] = $_POST['stexttwo'];

            
header ("Refresh: 2; URL=" $pagewebini "");
            
            
$checkcorrect "Gracias por Validarte <br>Si tu navegador no te redirige en 2 segundos a la página inicial <a href=" "$pagewebini" ">Clica Aqui</a>";
       }else{
            
$checkcorrect "Este <strong>usuario</strong> y <strong>password</strong> no existe en nuestra base de datos. <br>Por favor intentalo de nuevo. Gracias. ";
       }
    }else{
       
$checkcorrect "No has introducido correctamente tu <strong>usuario</strong> y <strong>password</strong>. <br>Por favor intentalo de nuevo. Gracias."
    } 
  #3 (permalink)  
Antiguo 25/11/2007, 06:21
 
Fecha de Ingreso: noviembre-2007
Mensajes: 22
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Problema con PHP (Acceso Bases de datos)

Gracias amigo, siempre es bueno tener muchos ejemplos de PHP.

Si, si estoy empezando con PHP. Antes sabía un poco pero ahora le estoy metiendo caña a su "version orientada a objetos", es flipante la cantidad de cosas que se puede hacer si se dominan los conceptos .

Bueno, lo dicho, muchas gracias por tu ejemplo.


Saludos!
  #4 (permalink)  
Antiguo 25/11/2007, 10:03
 
Fecha de Ingreso: octubre-2003
Mensajes: 55
Antigüedad: 20 años, 7 meses
Puntos: 0
Sonrisa Re: Problema con PHP (Acceso Bases de datos)

No explicas cual el el mensaje de error que arroja tu script.

Pero puedes simplificar mucho la validación de un usuario como yo lo hago.


Código PHP:
if (isset($_POST["nombre"]) &&  isset($_POST["password"]))
{
$nombre $_POST["nombre"];
$password $_POST["password"];
$database "mibase";
$tabla "usuarios";
$conexion mysql_connect('db_servidor','db_usuario','db_password');
mysql_select_db($database,$conexion);
$resultado mysql_query("SELECT nombre, password FROM $tabla WHERE nombre='$nombre' AND password='$password'"$conexion);
if (isset(
$resultado))
{
session_start();
$_SESSION ['nombre'] = $nombre;
$_SESSION['password'] = $password;
echo 
'Te has logueado como'.$_SESSION['nombre'];
}
else
{
echo 
'Lo sentimos, su contraseña o nombre de usuario no son válidos';
}


Última edición por lordchile; 25/11/2007 a las 10:10
  #5 (permalink)  
Antiguo 25/11/2007, 15:13
 
Fecha de Ingreso: noviembre-2007
Mensajes: 22
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Problema con PHP (Acceso Bases de datos)

Gracias tio por tu código. Pero lo he puesto y me deja acceder con cualquier usuario. Es decir, puedo acceder con cualquier usuario, esté o no esté en la base de datos.

Pienso que el fallo podría estar en la condición que mencionas si accede, es decir:

$resultado = mysql_query("SELECT nombre, password FROM $tabla WHERE nombre='$nombre' AND password='$password'", $conexion);
if (isset($resultado))
{
....



Gracias por adelantado.


EDITADO: Lo he probado con

$nrows= mysqli_affected_rows($conexion);
if ($nrows>0)
{



y tampoco me va, me sale:

Warning: mysqli_affected_rows() expects parameter 1 to be mysqli, resource given in C:\wamp\www\Sesiones\index.php on line 30

Alguien sabe lo que significa???

NOTA: Puede ser un problema de comillas???

Última edición por Devsp; 25/11/2007 a las 15:33
  #6 (permalink)  
Antiguo 25/11/2007, 19:10
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 7 meses
Puntos: 101
Re: Problema con PHP (Acceso Bases de datos)

intenta con esto:

Código PHP:
$nrows mysqli_affected_rows ('$conexion');
if (
'$nrows'>0));

pero yo todabia soy prinsipiante.
no te puedo asegurar de que anda.
Toma esta web por si te sirbe
suerte
salu2
__________________
Half Music - www.halfmusic.com
  #7 (permalink)  
Antiguo 26/11/2007, 02:20
 
Fecha de Ingreso: noviembre-2007
Mensajes: 22
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Problema con PHP (Acceso Bases de datos)

Gracias por la respuesta pero tampoco va. ME ESTOY VOLVIENDO LOCO!!!

Aquí vuelvo a dejar el código y el error que me sale por si alguien sabe cual es:

Código PHP:
<

?
php

if(!isset($_POST['nombre']) || !isset($_POST['password'])){
    
    
    echo 
' Por favor rellene todas las casillas del formulario';
    

    
}
else 
{


    
$formato_nombre addslashes($_POST['nombre']);
    
$formato_password addslashes($_POST['password']);
    

$conexiondb = new mysqli('localhost','root','stomach','autentificacion');

if (
mysqli_connect_errno()){  
        
        echo 
'Error 1: No se ha podido establecer la conexión con la base de datos. Por favor, inténtelo de nuevo.';

exit;
        
    }

    
    
$query "select * from usuarios where nombre =' ".$formato_nombre." 'and password =' ".$formato_password." ' ";
                     

    
$resultado $conexiondb -> query($query);
    
    if(!
$resultado){
    
    echo 
'<br> Se ha producido un fallo en la instrucción SQL ' ;
    
    }

    
$nrows mysqli_num_rows($conexiondb);
    if( 
'$nrows' 0){
    
    
$_SESSION ['nombre'] = $_POST['nombre'];
    
$_SESSION['password'] = $_POST['password'];
    
    echo 
'Te has logueado como ' $_SESSION['nombre'];
}
    else
    {
    
    echo 
'Lo sentimos, su contraseña no es VALIDA';
    
    
    }
}

?> 

Please, decidme el fallo que hay, el error q me sale es:

Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, object given in C:\wamp\www\Sesiones\index.php on line 57


He probado quitando el parámetro, cambiandolo, poniendole $resultado, poniendole comillas simples, dobles.... y sigue sin funcionar....


Espero vuestra ayuda amigos. Gracias por adelantado!!.
  #8 (permalink)  
Antiguo 26/11/2007, 06:46
 
Fecha de Ingreso: noviembre-2007
Mensajes: 22
Antigüedad: 16 años, 5 meses
Puntos: 0
Re: Problema con PHP (Acceso Bases de datos)

AMIGOS ya encontré el fallo!!! XDDD


Era la maldita sentencia SQL, no ponia la estructura de ' " $variable " '. Aunque no me explico los errores q tenia la verdad xDD.

Bueno gracias a todos por los codigos y sugerencias que me habeis pasao. Con vosotros da gusto entrar en este foro.


DEWWW.
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 15:26.