根据可变变量,通过php在mssql中搜索一个术语
基本上,我有一个登录面板,用户可以在其中登录,我试图做的是当他们登录时,我想找出他们在MSSQL数据库中设置的身份验证ID根据可变变量,通过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(
<?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。然后您就有了您的用户。您应该设置会话变量puttingsession\u start();
直接在打开的php标记之后。在插入令牌时,另外写入$\u会话['token']=$token;
。然后,您可以通过$t=$\u会话['token']获取令牌;
。但我告诉您,您根本不需要在数据库系统中使用令牌,因为您只需要使用它来验证用户,这正是会话的目的。但首先,请尝试使用上述方法,然后您可以稍后更改;)不,那也没用。我在我原来的帖子上进行了扩展。请阅读,看看你是否能更好地理解它。谢谢。