有没有办法使用数据库连接进行登录,然后根据登录表单中的参数更改数据库?

问题描述 投票:0回答:1

我的网络应用程序有一个登录表单,其中包含以下字段:机构、用户名、密码。 我希望能够使用数据库连接来登录和验证用户身份,然后关闭该数据库并根据其机构打开不同的数据库。目的是让每个机构都有自己的数据库和自己的表格。

你可以看到我的登录页面HERE

这是我的配置文件:

<?php

session_start();

$connLogin = mysqli_connect('localhost','root','', 'login_users');

$conn = mysqli_connect('localhost', 'root', '', $agency); 

//I know you cant post a variable here, but it explains better of what im trying to do.

?>

这是我的登录代码:

<?php

@include 'config.php';

if(!isset($_SESSION)) 
    { 
        session_start(); 
    } 


if(isset($_POST['submit'])){
    
   $agency = mysqli_real_escape_string($connLogin, $_POST['agency']);
   $username = mysqli_real_escape_string($connLogin, $_POST['username']);
   $password = mysqli_real_escape_string($connLogin, $_POST['password']);

   $select = " SELECT * FROM login_users WHERE agency = '$agency' && username = '$username' && password = '$password' ";

   $result = mysqli_query($connLogin, $select);

   if(mysqli_num_rows($result) > 0){

      $row = mysqli_fetch_array($result);

      if ($row['active_inactive'] > 0) {

          mysqli_close($connLogin);
          
          mysqli_connect($conn);
          
         $_SESSION['user_name'] = $row['username'];
         header('location:worker.php');

      }
     
   }else{   
       
    echo '<script>alert("Invalid Credentials. If you believe this is an error, please contact your system administrator.")</script>'; 
   }
}


?>

这是我的文件,为当前用户及其代理机构设置变量:

<?php

@include 'config.php';

if(!isset($_SESSION['user_name'])){
   header('location:login.php');
}

$currentUser = ($_SESSION['user_name']);
    
//User Information

$select = " SELECT * FROM user_db WHERE username = '$currentUser' ";

$result = mysqli_query($conn, $select);
    
$row = mysqli_fetch_assoc($result);

$userid = $row['id'];
$firstname = $row['firstname'];
$position = $row['position'];
$lastname = $row['lastname'];
$email = $row['email'];
$agency = $row['agency'];
$department_name = $row['department_name'];
$phone = $row['phone_number'];
$address = $row['address'];
$city = $row['city'];
$state = $row['state'];
$zip = $row['zip'];
$country = $row['country'];
$profile_picture = $row['profile_picture'];
$default_picture = $row['default_pic'];

//Issued Gear
 
$selectIssuedGear = " SELECT * FROM user_issued_gear WHERE (member_first_name = '$firstname' AND member_last_name = '$lastname') ";

$resultIssuedGear = mysqli_query($conn, $selectIssuedGear);
    
$rowIssuedGear = mysqli_fetch_assoc($resultIssuedGear);

$gearID = $rowIssuedGear['id'];
$turnoutCoat = $rowIssuedGear['coat_size'];
$turnoutPants = $rowIssuedGear['pants_size'];
$boots = $rowIssuedGear['boots_size'];
$fireGloves = $rowIssuedGear['fire_gloves_size'];
$streamlite = $rowIssuedGear['streamlite'];
$ScbaSize = $rowIssuedGear['scba_mask'];
$safetyVest = $rowIssuedGear['safety_vest_size'];
$extGloves = $rowIssuedGear['ext_gloves_size'];
$pagerSerial = $rowIssuedGear['pager'];
$pagerBaseSerial = $rowIssuedGear['pager_charging_base'];
$winterCoat = $rowIssuedGear['reflective_winter_coat'];

//Apparatus

$selectApparatus = " SELECT * FROM apparatus ";

$resultApparatus = mysqli_query($conn, $selectApparatus);
    
$rowApparatus = mysqli_fetch_assoc($resultApparatus);

$apparatus1 = $rowApparatus['apparatus_1'];
$apparatus2 = $rowApparatus['apparatus_2'];
$apparatus3 = $rowApparatus['apparatus_3'];
$apparatus4 = $rowApparatus['apparatus_4'];
$apparatus5 = $rowApparatus['apparatus_5'];
$apparatus6 = $rowApparatus['apparatus_6'];
$apparatus7 = $rowApparatus['apparatus_7'];
$apparatus8 = $rowApparatus['apparatus_8'];
$apparatus9 = $rowApparatus['apparatus_9'];
$apparatus10 = $rowApparatus['apparatus_10'];

?>
php mysql web-applications
1个回答
0
投票

为什么不直接使用:

mysqli_select_db($connLogin, $agency):

这将允许您使用相同的连接进行登录和后续调用。

© www.soinside.com 2019 - 2024. All rights reserved.