Php 有办法注销sql数据库吗?

Php 有办法注销sql数据库吗?,php,sql,Php,Sql,好的,我正在尝试创建一个简单的登录页面 我可以成功地做到这一点,但似乎我无法让多台计算机访问该页面。我在我的mysql数据库上创建了多个不同的用户,这些用户通过各自的凭证进入数据库并查询数据,但似乎只有一台计算机可以进入 我还将PHP会话变量设置为包含登录信息 我的简单问题是: 是否有办法注销数据库并销毁我的会话,以便在一台计算机完成后让其他计算机访问用户名 可能是会话或数据库登录仍然停留在一台计算机上导致了这种情况 我知道我的代码乱七八糟: <?php session_start();

好的,我正在尝试创建一个简单的登录页面

我可以成功地做到这一点,但似乎我无法让多台计算机访问该页面。我在我的mysql数据库上创建了多个不同的用户,这些用户通过各自的凭证进入数据库并查询数据,但似乎只有一台计算机可以进入

我还将PHP会话变量设置为包含登录信息

我的简单问题是:

是否有办法注销数据库并销毁我的会话,以便在一台计算机完成后让其他计算机访问用户名

可能是会话或数据库登录仍然停留在一台计算机上导致了这种情况

我知道我的代码乱七八糟:

 <?php session_start(); 
    include("password.php"); ?>
    ...
    <body>

 <div class="main_content">
 <?php 
   $submenarray = array(
    'Purpose' => 'purpose.php',
     'Leading Self'  => 'leadingself.php',
    'Leading with Strategy' => 'leadingwithstrategy.php',
    'Leading People' => 'leadingpeople.php',
    'Leading for Results' => 'leadingforresults.php',
   );

   insert_header_with_params(0,0,$submenarray);
 ?>

 <div class="content_body">
   <div class="description">
    <h1 style="margin-left:5%;">
     User <span style="color:red"> Login</span>
    </h1>
    <p></p>
   </div>




<?
  global $USERS;
  global $_SESSION;
  $USERS= getUsers("member1","password");
  $record;
  $max_login_attempts = 3;



  if(isset($_POST['password'])){$_SESSION["password"] = $_POST["password"];}

  if($_GET["logged"] == "false"){
    $_SESSION["logged"] = "";
  }

  if(isset($_POST['Field1'])){
    $record = getRecord($_POST["Field1"],removeUnwantedChar($_POST["Field1"]),$_POST["password"]);}


if ($_POST["ac"]=="log") { /// do after login form is submitted  
    if ($record[19]==$_POST["password"]) {   
       $_SESSION["logged"]=$_POST["Field1"]; 
      $sql = "UPDATE `leading_initiatives` SET `Login Attempts`='0'
          WHERE `Name`='".$_POST['Field1']."'";
          sql_command($sql,removeUnwantedChar($_POST["Field1"]),$_POST["password"]);

     } else {  
       if($record[20] < $max_login_attempts){
       setRecord('Login Attempts',$record[20]+1,$record[1],removeUnwantedChar($_POST["Field1"]),$_POST["password"]);
         echo '<p style="padding-left:20%;">Incorrect username/password. '.($max_login_attempts-$record[20]).' attempts remaining.</p>'; 
       }else{
       echo 'max reached';
     } 
     }
} 

  $attempts = $record[20];
  if($attempts > $max_login_attempts)
    $_SESSION["locked_out"] = "true";

if (array_key_exists($_SESSION["logged"],$USERS)) { //// check if user is logged or not  
  echo "<p style='padding-left:20%;'>Logged in: ".$_SESSION["logged"]."</p>"; //// if user is logged show a message 
  echo "<a href='http://newsite.com' style='padding-left:20%;'>form</a></br></br>";    
}elseif($_SESSION["locked_out"] == "true"){
  echo "<script>
  window.location.replace('site/max_attempts.php');
  </script>";
}
    else { //// if not logged show login form 
      echo '<form id="the_form" name="the_form" action="http://site/login.php" method="post" style="padding-left:20%;">
    <input type="hidden" name="ac" value="log">'; 
  echo 'Username: <select id="Field1" name="Field1">
       <option value=""></option>
       <option value="Admin">Admin</option>
       <option value="Anton, Manny">Anton, Manny</option>
     </select>';
     echo 'Password: <input type="password" name="password" id="password" />'; 
     echo '<input type="submit" value="Login" />'; 
     echo '</form>';
}


  if($_GET["logged"] == "false"){
    echo "<script>document.forms['the_form']['Field1'].value = ".$_GET["Field1"].";</script>";
  } 
  ?>



    </div> <!--end content body-->



  </div>  <!--end the main content div-->

</body>
​

...
用户登录


有许多方法可以破坏会话。这个很彻底,

// destroy session the correct way
function destroySession() {
    $_SESSION = array();
    if (ini_get('session.use_cookies')) {
        $params = session_get_cookie_params();
        setcookie(session_name(), '', time() - 42000,
            $params['path'], $params['domain'], $params['secure'], $params['httponly']
        );
    }
    session_destroy();
}

确保调用
session_start()
销毁会话()之前。。。会话+会话cookie将消失。

您可以尝试向php页面添加会话,如:

session_start();
必须将其添加到php页面顶部,完成工作后,销毁会话:

session_destroy();
此外,请尝试关闭数据库连接:

$conn = NULL;
上面用于关闭数据库连接的代码是针对PHP PDO的。如果您正在使用mysqli,请使用:

mysqli_close($conn);

顺便说一句,我从来没有遇到或听到过这样的问题。可能是端口或某些不正确的参数导致了问题?

您能与我们共享一些代码吗?这听起来有些奇怪。连接到数据库时,多个用户可以共享相同的凭据。简单地说,这不是DB的问题。这看起来是一个更大的问题。您说过只有一个用户可以访问您的“数据库”。这可能是因为您的web服务器的HTTP管道“功能”被卡住了。您一定是对的。为什么设置cookie将cookie设置为这些值,我不想将它们设置为null或空?你能解释一下这些函数的作用吗?另外,我不能简单地调用session_destroy吗?session_destroy()工作正常,但会话ID仍保留在cookie中,如果您将cookie用于其他用途,则会话ID也会保留在cookie中。它所做的是循环遍历每个cookie,并将其设置为过期,这与删除我们可以得到的cookie非常接近。