根据可变变量,通过php在mssql中搜索一个术语

根据可变变量,通过php在mssql中搜索一个术语,php,sql-server,database,Php,Sql Server,Database,基本上,我有一个登录面板,用户可以在其中登录,我试图做的是当他们登录时,我想找出他们在MSSQL数据库中设置的身份验证ID <?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(

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

<?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);
?>
我希望能够获得用户的“AuthID”,并将其设置为“die”(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);
?>


谢谢。

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

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

在任何其他网站上,您都可以使用
if(isset($\u seision['nID'])检查用户是否登录了
。然后,您可以使用
“SELECT*FROM tAccounts WHERE nEMID=”查询用户信息$_请参阅选项['nID']


这对您有帮助吗?

在您的代码中,连接到数据库后,您直接执行一个查询“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);


?>

请确保将动态值传递给查询。请注意,您可以使用会话变量$\u session['nAuthID']来获取nAuthID,无论您想在何处显示

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


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

问题是他们不是登录网站,而是一个用vb.net编写的程序。你必须从某个地方获取用户id,如果你得到它一次,你可以保存它并再次阅读它,但如果你没有id,我看不出有什么好办法来确定哪个用户当前正在浏览它保存在mssql数据库中,用户使用他们的用户名登录,所以当他们登录时,是不是不可能只获得它。好的,有了新代码,一切都应该正常:在这里插入令牌
$setToken=mssql\u查询(…
-在这里,您必须设置一个包含令牌的会话变量,稍后您可以获取令牌,然后您可以从tTokens表中查询nEMID。然后您就有了您的用户。您应该设置会话变量putting
session\u start();
直接在打开的php标记之后。在插入令牌时,另外写入
$\u会话['token']=$token;
。然后,您可以通过
$t=$\u会话['token']获取令牌;
。但我告诉您,您根本不需要在数据库系统中使用令牌,因为您只需要使用它来验证用户,这正是会话的目的。但首先,请尝试使用上述方法,然后您可以稍后更改;)不,那也没用。我在我原来的帖子上进行了扩展。请阅读,看看你是否能更好地理解它。谢谢。