0

基本上,我有一个登录面板,用户可以在其中登录,我想做的是当他们登录时,我想找出他们在 MSSQL 数据库中设置的身份验证 ID。

我希望能够获取用户的“AuthID”并使其“死亡”(die $result),以便结果显示在浏览器中。

目前我有这段代码,我可以通过它获取 AuthID,但它没有获取正在登录的特定用户。它获取数据库中的每个 AuthID。

<?php

$dbhandle = mssql_connect($myServer, $myUser, $myPass)
     or die("Couldn't connect to SQL Server on $myServer"); 

  $selected = mssql_select_db($myDB, $dbhandle)
      or die("Couldn't open database $myDB"); 

 $query = "SELECT nAuthID FROM tAccounts";

 $result = mssql_query($query)
     or die('A error occured: ' . mysql_error());

    while ( $record = mssql_fetch_array($result) )
      {
          die ($record ['nAuthID']);
      }   

    mssql_free_result($result);

    mssql_close($dbhandle);
?>

谢谢。

4

2 回答 2

0

如果您希望用户能够登录到您的站点并保持登录状态,您必须将信息保存为他以某种方式登录的用户 -> SESSIONS / COOKIES

对于登录特定数据,您应该使用 SESSION,因为它们的数据存储在服务器上。
放在session_start()您想要访问任何用户信息的每个文件的开头。然后,如果用户登录,您应该通过保存 nEMID 甚至 nAuthID$_SEESION['nID'] = ...your id...;

在任何其他站点上,您可以检查用户是否使用if (isset($_SEESION['nID'])). 然后您可以使用您的查询用户信息"SELECT * FROM tAccounts WHERE nEMID=" . $_SEESION['nID']

这对你有帮助吗?

于 2013-06-12T11:55:45.583 回答
0

在您的代码中,连接到数据库后,您将直接执行查询“SELECT nAuthID FROM tAccounts”,该查询将从表中获取所有可用的 nAuthID。

在登录表单中输入登录详细信息后,您的查询应该对用户进行身份验证。因此,您在代码中的查询应该如下所示...

<?php
$myServer = "Your-PC\SQLExpress";
$myUser = "user";
$myPass = "pass";
$myDB = "Account";

$dbhandle = mssql_connect($myServer, $myUser, $myPass)
 or die("Couldn't connect to SQL Server on $myServer"); 

$selected = mssql_select_db($myDB, $dbhandle)
  or die("Couldn't open database $myDB"); 

// $query = "SELECT nAuthID FROM tAccounts";

//Your Query Should be something like this
 $query = "SELECT nAuthID FROM tAccounts WHERE sUsername='username' AND sUserpass= 'yourpassword' ";
$result = mssql_query($query)
 or die('A error occured: ' . mysql_error());

/*while ( $record = mssql_fetch_array($result) )
  {
      die ($record ['nAuthID']);    
  } */  
if(mssql_num_rows($result)>0){
$record = mssql_fetch_array($result);
$nAuthID = $record ['nAuthID'];
session_start();
$_SESSION['nAuthID'] = $nAuthID;
}else{
    echo 'Login Failed';
}

mssql_free_result($result);

mssql_close($dbhandle);


?>

请确保您将动态值传递给查询。并记下您可以使用会话变量 $_SESSION['nAuthID'] 来获取 nAuthID 任何您想要显示的地方。

通过这样做,您将获得已成功登录的特定用户的 nAuthID。此外,如果身份验证失败,您可以使用 else 循环并将用户重定向回登录屏幕。

希望这能澄清你的疑问??

于 2013-06-12T12:45:52.130 回答