entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

conectar mysql con php

Estoy intentando logar a usuarios en un bbdd mysql que tengo en mi servidor
He implementado un ejemplo que he visto y llevo atascado unos días

Tengo un primer archivo index.php donde el usuario introduce el email y la password

<?php
echo 'Bienvenido, ';
if (isset($_SESSION['email'])) {
    echo '<b>'.$_SESSION['email'].'</b>.('.$_SESSION['fp_username'].')';
    echo '<p><a href="logout.php">Logout</a></p>';
}else{
    echo '<form action="validar_usuario.php" method="post">
email:<input type="text" name="email" size="30" maxlength="30" >
<br >
Password:<input type="password" name="password" size="15" maxlength="25" >
<br >
<input type="submit" value="Ingresar" >
</form>
     <p><a href="registrar.php">Registrar</a></p>';
}
?>

Ese codigo no me da errores,me da errores el **validar_usuario.php** a la hora de seleccionar la bbdd 

Aquí pongo el código el cual me da error siempre en la segunda línea , una vez conectado con la bbdd no es capaz de conectarse a la unica bbdd que tengo 

    enter code here
mysql_connect('xxxx ( direccion de la bbdd','XXxX (usuario)','xxx (contraseña')or die ('Ha fallado la conexión: '.mysql_error());

mysql_select_db('xxxx ( nombre de la bbdd')or die ('Error al seleccionar la Base de Datos: '.mysql_error());

**Me da error siempre en esta linea.** 
if(trim($_POST['email']) != "" && trim($_POST['password']) != "")
{
    $email = htmlentities($_POST['email']);
    $password = sha1($_POST["password"]);   
    $result = mysql_query('SELECT password, email, username FROM usuarios WHERE email=\''.$email.'\'');
    if($row = mysql_fetch_array($result)){      
        if($row['password'] == $password){
            $_SESSION['fp_username'] = $row['username'];
            $_SESSION['email'] = $row['email'];
            echo 'Has sido logueado correctamente '.$_SESSION['fp_username'].' <p>';
            echo '<a href="index.php">Index</a></p>Ingreso exitoso, ahora sera dirigido a la pagina principal.
            <SCRIPT LANGUAGE="javascript">
            location.href = "index.php";
            </SCRIPT>';
        }else{
            echo 'Datos incorrectos ;)';
        }
    }else{
        echo 'datos incorrectos :)';
    }
    mysql_free_result($result);
}else{
    echo 'Debe especificar un usuario y password';
}
mysql_close();
?>

Muchas gracias

0voto

gonzalss comentado

El error realmente me lo da aquí

mysqlconnect('xxxx ( direccion de la bbdd','XXxX (usuario)','xxx (contraseña')or die ('Ha fallado la conexión: '.mysqlerror());

Hasta aquí , ok

mysqlselectdb('xxxx ( nombre de la bbdd')or die ('Error al seleccionar la Base de Datos: '.mysql_error());

Aqui es donde me da el siguiente error : Access denied for user 'xxxx' to database 'xxxx'.

El servidor no tengo en 1&1

Muchas gracias

2 Respuestas

0voto

Leonardo-Tadei Puntos227320

Hola gonzalss,

el error es porque el usuario que estás usando no tiene acceso a esa DB. Puede ser simplemente porque el usuario o la contraseña sean incorrectas, o porque ese usuario tiene solo permisos para conectarse en local (y PHPMyAdmin corre en local) y no desde otra computadora.

Está el script de conexión en el mismo servidor que la DB?

Por otra parte, salvo que seas el SYSDBA de ese servidor, no tendrás permisos para crear usuarios arbitrarios (a veces sí basados en alguna regla o con algún prefijo). Consultá con tu proveedor por laforma correcta de hacer la conexión.

Recordá también que las funciones mysql_* están por desaparecer: fijate de ir cambiando a mysqli o a PDO para usar MySQL.

Saludos!

0voto

gonzalss comentado

Era cuestión de privilegios ya que he probado en otro servidor y me funciona.
Gracias por la ayuda

0voto

Leonardo-Tadei comentado

Por nada!
Si considerás que esta es la respuesta correcta, por favor seleccionala así el tema queda marcado como solucionado.
Si no lo es, por favor agregá una respuesta explicando qué es lo que pasó y cómo lo solucionaste, y luego marcá tu propia respuesta.

Saludos cordiales!

0voto

gonzalss comentado

SOLUCIONADA Era cuestión, en función de los privilegios que tu usuario tenga en la bbdd

0voto

Edward Puntos140

Puedes intentar con esto:
creas un archivo php con nombre conexion.php

<?php
$conexion=mysql_connect('localhost','usuario','contraseña') or die ("no seconecto la host");
$base=mysql_select_db("tu_base de datos",$conexion) or die ("no seconecto la base");
?>

y este archivo lo mandas a llamar desde tu archivo
con la siguiente linea
include "conexion.php";
....
espero y te sirva

0voto

gonzalss comentado

Me da la sensación que es por los permisos que este usuario tiene por el error que me está dando Access denied for user 'xxxx' to database 'xxxx'., pero en mi phpMyAdmin no veo la posibilidad de darle permisos a los usuarios.

0voto

gonzalss comentado

He cambiado el servidor y parece que ahora me funciona,por lo menos no me da error,pero en la consulta me sale un Resource id #2 .

$conexion=mysql_connect('localhost','xxx','Xxxx')or die ('Ha fallado la conexión: '.mysql_error());
$base=mysql_select_db('percy',$conexion)or die ('Error al seleccionar la Base de Datos: '.mysql_error());
$result = mysql_query('SELECT password FROM usuarios WHERE email="[email protected]"');

echo $result;

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta