Cómo incluir un archivo en PHP, basado en la información del usuario en DB

Necesitaríamos más detalles para dar una buena respuesta a esta pregunta: ¿está utilizando un marco o CMS, qué archivo se incluye / cuántos archivos de inclusión están disponibles para cargar, qué información se utiliza para determinar qué archivo cargar? , etc. Pero una descripción genérica de cómo se podría hacer:

  • Comience por obtener los datos del usuario con su consulta de base de datos.
  • Use una instrucción if para evaluar qué archivo cargar.
  • Comprueba si el archivo existe.
  • Use include para importar el archivo si existe
  • Manejarlo adecuadamente si el archivo no existe (mensaje de error, establecer un archivo predeterminado para cargar si el solicitado no está allí, etc.)

Entonces, un código psuedo de cómo podría verse esto:

$ query = “SELECCIONAR nombre de usuario, ubicación DESDE usuarios DONDE nombre de usuario =?”;
$ resultado = $ db-> prepare ($ consulta);
$ result-> execute ($ _ POST [‘nombre de usuario’]);

foreach ($ resultado como $ usuario)
{
if ($ usuario [‘ubicación’] === ‘Murika’)
{
if (file_exists (‘file1.php’))
{
include_once ‘file1.php’;
} más {
echo “Lo sentimos, archivo 1 no encontrado”;
}
}
más
{
if (file_exists (‘file2.php’))
{
include_once ‘file2.php’;
} más {
echo “Lo siento, archivo 2 no encontrado”;
}
}
}

Ahora esto está lejos de ser una forma optimizada de escribir el código real; significado: lo anterior funcionaría, pero hay mejores formas de hacerlo. Esto está escrito de esta manera para que sea fácil visualizar el código. Nuevamente, se puede dar una respuesta mucho mejor si tenemos más detalles con los que trabajar.

El argumento principal en la función de inclusión es una cadena, por lo que puede manipular la cadena de la forma que desee antes de llamarla. Cambie las declaraciones, la concatenación de cadenas, la expresión regular, si / de lo contrario todo funcionaría. ¡Solo asegúrese de permitir información de usuario extraña y / o llamar a un archivo que no existe!

Dependiendo de la información de usuario que esté utilizando, puede incluir un archivo pre-creado en PHP de la siguiente manera:

Supongamos que está utilizando el tipo de usuario de una consulta db para incluir un archivo para ese tipo de usuario / rol / grupo

$ mysqli = nuevo mysqli (HOST, USUARIO, CONTRASEÑA);
$ db_select = $ mysqli-> select_db (DB_NAME);
$ sql = “SELECCIONAR tipo de usuario DESDE usuarios DONDE id = ‘$ user_id'”;
$ query = $ mysqli-> query ($ sql);
while ($ row = $ query-> fetch_assoc ()) {
$ user_type = $ row [‘user_type’];
if (file_exists (‘user_group _’. $ user_type. ‘. php’)) {
include_once ‘user_group _’. $ user_type. ‘. php’;
} más {
include_once ‘default_file.php’; // solo un archivo de respaldo
}
}

Esto supone que los archivos creados para cada grupo de usuarios comienzan con ‘user_group_’ y son archivos PHP.

puede incluir cualquier archivo con el uso de la función de inclusión

p.ej

incluir “db.php”;

donde include es el nombre de la función y “db.php” es el nombre del archivo que debe incluir