首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果结果与表值一致,检查数据库

问如果结果与表值一致,检查数据库
EN

Stack Overflow用户
提问于 2013-05-23 19:49:53
回答 2查看 102关注 0票数 0

伙计们,使用这个脚本,我可以检查用户名和密码,这样我就可以得到rturn 2的值

代码语言:javascript
复制
 if( $result == false )
   {
    $packet->AddDWValue( "fail" );
    $packet->AddDWValue( "incorrect username and/or password" );
    ....

如果user传递true:

代码语言:javascript
复制
    $packet->AddDWValue( "ok" );
    $packet->AddDWValue( "nice." );
    ....

但我还需要检查名为"usergroup“的其他表,因此如果该表的值为"7”,则重新运行其他值,例如:

代码语言:javascript
复制
  if( $result == false )
   {
    $packet->AddDWValue( "fail" );
    $packet->AddDWValue( "you are banned" );
    ....

但是我搞不懂该怎么做,所以如果可能的话,请帮帮我。

这是我的代码:

代码语言:javascript
复制
 <?
  class Login
{
    function CheckLogin( $username, $password )
    {           

$MySQL_Host = "localhost";
$MySQL_User = "1";
$MySQL_Pass = "2";
$MySQL_DB = "3";
$tbl_name = "mybb_users";

     mysql_connect("$MySQL_Host", "$MySQL_User", "$MySQL_Pass") or die(mysql_error());
     mysql_select_db("$MySQL_DB") or die(mysql_error());

        $sql="SELECT * FROM $tbl_name WHERE username='$username'";
        $result=mysql_query($sql);          

        if( $result == false )
            return false;
//              fwrite($fh, $result);
//              fclose($fh);


        $count=mysql_num_rows($result);
        // If result matched $username and $password, table row must be 1 row
        if($count==1){
            $row = mysql_fetch_assoc($result);
            //global $mybb;         
            if (md5(md5($row['salt']).md5($password)) == $row['password'] ){
            return array( 'uid'  => $row['uid'] ,
                          'mail' => $row['email'],
                          'user' => $username
                        );
            }
        }
    }
}

  class DWAuth
{
    var $keys;

    function AddDWValue( $val )
    {
        $this->keys[] = $val;
    }

    function GetAuthString( )
    {
        $result = "";

        foreach( $this->keys as $c )
        {
            $result .= $c."#";
        }

        return $result;
    }
}


$login = new Login();
$result = $login->CheckLogin( $result[ 'user' ], $result[ 'pass' ] );

if( $result == false )
{
    $packet->AddDWValue( "fail" );
    $packet->AddDWValue( "incorrect username and/or password" );
    $packet->AddDWValue( 1 );
    $packet->AddDWValue( "Anonymous" );
    $packet->AddDWValue( "anonymous@example.com" );
    $packet->AddDWValue( 0 );
}
else
{
    $sessionID = md5( rand() );

    $packet->AddDWValue( "ok" );
    $packet->AddDWValue( "nice." ); 
    $packet->AddDWValue( $result[ 'uid' ] ); 
    $packet->AddDWValue( $result[ 'user' ] ); 
    $packet->AddDWValue( $result[ 'mail' ] ); 
    $packet->AddDWValue( $sessionID );      
}

echo $packet->GetAuthString();
 ?>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-23 19:55:39

据我所知,您需要从另一个表usergroup再创建一个SELECT,或者在第一个查询中使用JOIN,语法取决于您的模式,您可以参考以下内容:http://dev.mysql.com/doc/refman/5.0/en/join.html

票数 0
EN

Stack Overflow用户

发布于 2013-05-23 20:09:45

你可以试试像这样的东西。

代码语言:javascript
复制
    $sql="SELECT *,group_id FROM $tbl_name  INNER JOIN usergroup AS ug ON ug.id=".$table_name.".user_group_id WHERE username='$username'";
        $result=mysql_query($sql);          
        $res=mysql_fet_assoc($result);
        if( $res[group_id] == 7 )
            {
             $error_flag=1;//banned

            }
          else if($result==false)
         {
             $error_flag=2;//invlid user

          }

         return $error_flag;

$login = new Login();
$result = $login->CheckLogin( $result[ 'user' ], $result[ 'pass' ] );

if( $result == 1)

{
//your banned code
}
else if( $result == 2)
{
    $packet->AddDWValue( "fail" );
    $packet->AddDWValue( "incorrect username and/or password" );
    $packet->AddDWValue( 1 );
    $packet->AddDWValue( "Anonymous" );
    $packet->AddDWValue( "anonymous@example.com" );
    $packet->AddDWValue( 0 );
}
else
{
    $sessionID = md5( rand() );

    $packet->AddDWValue( "ok" );
    $packet->AddDWValue( "nice." ); 
    $packet->AddDWValue( $result[ 'uid' ] ); 
    $packet->AddDWValue( $result[ 'user' ] ); 
    $packet->AddDWValue( $result[ 'mail' ] ); 
    $packet->AddDWValue( $sessionID );      
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16713157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档