Enviar nombre de base de datos por POST
Publicado por Ignacio (1 intervención) el 22/10/2019 19:16:52
Buenos dias a todos. Tengo una duda ya que estoy intentando hacer algo que no se si es posible, aunque aun no entiendo porque no funciona.
Tengo una pagina login.html donde ingreso IDequipo y Password. Envio mediante POST estos datos a login.php donde se requiere un archivo llamado database donde estan los valores para conecarse a la base de datos mysql y validar al usuario.
Este es el codigo de database.php
La cuestion es la siguiente, en el login, el campo IDequipo representa al nombre de la base de datos y al nombre de usuario de esa base de datos (es un sistema interno por lo cual no me preocupa la seguridad contra inyeccion y demas).
Yo quiero recibir por POST el 'idequipo' y asignarlo a la variable $username y $database, que de hecho, si hago un echo $username o $database veo que recibo bien el nombre (que en realidad es una concatenacion de un nombre fijo + el 'idequipo'). La concatenacion la hago $database = 'nombrebase'.$variable; donde variable es $variable= $_POST['idequipo'];
Estos datos los recibo bien, porque lo compurebo con un echo, pero al momento de asignarlo a la variable de conexion, deja de funcionar la misma.
La respuesta que recibo del catch de la bd es:
La verdad como soy un poco nuevo en php, no se si esto que quiero hacer es posible o no. Mi intención es tener una pagina sola de login, donde existen distintos usuarios que acceden a distintas base de datos, por eso quiero simplificarlo de esa forma, que usuario1 ingrese con id usuario1 a la base de datos usuario1, y usuario2 ingrese con id usuario2 a la base de datos usuario2.
Muchas gracias por su tiempo!
Tengo una pagina login.html donde ingreso IDequipo y Password. Envio mediante POST estos datos a login.php donde se requiere un archivo llamado database donde estan los valores para conecarse a la base de datos mysql y validar al usuario.
Este es el codigo de database.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$server = 'localhost';
$username = 'usuario';
$password = 'pass';
$database = 'usuario';
try {
$conn = new PDO("mysql:host=$server;dbname=$database", $username, $password);
} catch (PDOException $e) {
die('Error en la conexión - Contacte con soporte '.$e );
}
?>
La cuestion es la siguiente, en el login, el campo IDequipo representa al nombre de la base de datos y al nombre de usuario de esa base de datos (es un sistema interno por lo cual no me preocupa la seguridad contra inyeccion y demas).
Yo quiero recibir por POST el 'idequipo' y asignarlo a la variable $username y $database, que de hecho, si hago un echo $username o $database veo que recibo bien el nombre (que en realidad es una concatenacion de un nombre fijo + el 'idequipo'). La concatenacion la hago $database = 'nombrebase'.$variable; donde variable es $variable= $_POST['idequipo'];
Estos datos los recibo bien, porque lo compurebo con un echo, pero al momento de asignarlo a la variable de conexion, deja de funcionar la misma.
La respuesta que recibo del catch de la bd es:
1
PDOException: SQLSTATE[HY000] [1045] Access denied for user 'nombrebase'@'172.17.110.255' (using password: YES) in /home/xxxxx/public_html/xxxxx/database.php:11 Stack trace: #0 /home/xxxxx/public_html/xxxxx/db/database.php(11): PDO->__construct('mysql:host=loca...', 'nombrebase', 'xxxxxx') #1 /home/c1380069/public_html/xxxxx/principal.php(3): require('/home/xxxxxx/...') #2 {main}
La verdad como soy un poco nuevo en php, no se si esto que quiero hacer es posible o no. Mi intención es tener una pagina sola de login, donde existen distintos usuarios que acceden a distintas base de datos, por eso quiero simplificarlo de esa forma, que usuario1 ingrese con id usuario1 a la base de datos usuario1, y usuario2 ingrese con id usuario2 a la base de datos usuario2.
Muchas gracias por su tiempo!
Valora esta pregunta


0