This is the new home of the egghelp.org community forum.
All data has been migrated (including user logins/passwords) to a new phpBB version.


For more information, see this announcement post. Click the X in the top right-corner of this box to dismiss this message.

[SOLVED]Help with Tcl error [user_search]: can't read "

Help for those learning Tcl or writing their own scripts.
Post Reply
User avatar
Fire-Fox
Master
Posts: 299
Joined: Sat Sep 23, 2006 9:01 pm
Location: /dev/null

[SOLVED]Help with Tcl error [user_search]: can't read "

Post by Fire-Fox »

I have an error when i type !me <username> then it gives me the error from the subject line

I need some help to locate the error ....

Code: Select all

##################################################
#       Set user defined flag for users          #
##################################################

set site_add "http://phpbb3-forum.org"

setudef flag UserSearch
setudef flag AdminSearch
package require mysqltcl

bind pub "-|-" !me user_search

##################################
### Define The Channels On IRC ###
##################################
set chan_(mainchan)     "#phpBB3-Forum"
set chan_(staffchan)    "#phpBB3-Staff"

##################
### Mysql path ###
##################
if {![info exists db_handle] } {
set db_handle [mysqlconnect -host xxxxxxxx -port xxxx-user xxxxx-password xxxx-db xxxx]
}
##################################################
#           Perform User Search                  #
##################################################
proc user_search { nick host handle channel text } {
  global db_handle staffchan userchan site_add login_ botnick

  set arg $text
  if { $text != "" } { 
    if {[channel get $channel AdminSearch]} {
    
     if {[mysqlping $db_handle] != 1} { 
         putserv "PRIVMSG $channel :The connection to the mysql server has been lost."
         return 0
     }

     set sqlnick "SELECT user_id FROM phpbb_users WHERE username='[mysqlescape $nick]'"
     set resultnick [mysqlquery $db_handle $sqlnick]
      
     set nicki 0
     while {[set record [mysqlnext $resultnick]] != ""} {
        set user_id [lindex $record 0]
        incr nicki
     }
      
     if { $nicki == 0 } { 
         puthelp "NOTICE $nick :Det pågældende IRC Nick er ikke tilknyttet en bruger"  
         puthelp "NOTICE $nick :Brug kommandoen !regnick for at tilknytte dit IRC Nick til din bruger"
     }
     
     if { $user_id == "" } { 
           
              set sqlnick "SELECT regkode FROM phpbb_users WHERE username='[mysqlescape $nick]'"
              set resultkode [mysqlquery $db_handle $sqlnick]
              while {[set record [mysqlnext $resultkode]] != ""} {
              set regkode [lindex $record 0]
              }
           
              puthelp "NOTICE $nick :Du har glemt at indtaste dit password på"
              puthelp "NOTICE $nick :http\:\/\/phpbb3-forum.org\/irc\.php"
              puthelp "NOTICE $nick :Hvis du har glemt din kode er den : $regkode"
              return 0
      }

     set result [mysqlquery $db_handle $sql]
      
     while {[set record [mysqlnext $result]] != ""} {    
     set rank_title [lindex $record 0]
     }  
     
     
     if { $rank_id < 13  } { puthelp "NOTICE $nick :Access Denied, you are not on The Team" } else {
    
         #set sql "SELECT user_id, username, user_posts FROM phpbb_users WHERE username='[mysqlescape $arg]'"
         set sql "SELECT u.user_id, u.username, u.user_posts, u.user_rank, r.rank_id, r.rank_title FROM phpbb_ranks AS r LEFT JOIN phpbb_users AS u ON (r.rank_id=u.user_rank) WHERE u.user_id = '[mysqlescape $arg]'"

          set result [mysqlquery $db_handle $sql]
          
            set i 0
            while {[set record [mysqlnext $result]] != ""} {
                 
                set user_id [lindex $record 0];
                set username [lindex $record 1];
                set user_posts [lindex $record 2];
                set rank_title [lindex $record 3];
                
                putquick "PRIVMSG $channel : User: $username ::: Posts: $user_posts ::: Rank: $user_rank ::: Link: $site_add/memberlist.php?mode=viewprofile&u=$user_id :::"
                    incr i 
        }
         if { $i == 0 } { putserv "PRIVMSG $channel :No matches : Please try again"  }
     
     }
    }    
    
    } else {
    
    
    if {![channel get $channel UserSearch]} {
        return 0
    } 
    
    if {[mysqlping $db_handle] != 1} { 
       putserv "PRIVMSG $channel :The connection to the mysql server has been lost."
       return 0
    }

    
      set sqlnick "SELECT user_id FROM phpbb_users WHERE username='[mysqlescape $nick]'"
      set resultnick [mysqlquery $db_handle $sqlnick]
      
      set nicki 0
      while {[set record [mysqlnext $resultnick]] != ""} {
      set user_id [lindex $record 0]
      incr nicki
      }
      
      if { $nicki == 0 } { 
      puthelp "NOTICE $nick :Det pågældende IRC Nick er ikke tilknyttet en bruger"  
      puthelp "NOTICE $nick :Brug kommandoen !regnick for at tilknytte dit IRC Nick til din bruger"
      }

      if { $user_id == "" } { 
            
               set sqlnick "SELECT regkode FROM phpbb_users WHERE username='[mysqlescape $nick]'"
               set resultkode [mysqlquery $db_handle $sqlnick]
               while {[set record [mysqlnext $resultkode]] != ""} {
               set regkode [lindex $record 0]
               }
            
               puthelp "NOTICE $nick :Du har glemt at indtaste dit password på"
               puthelp "NOTICE $nick :http\:\/\/pgpbb3-forum.org\/irc\.php"
               puthelp "NOTICE $nick :Hvis du har glemt din kode er den : $regkode"
               return 0
      }
      
     # set sql "SELECT rank_id, rank_title FROM phpbb_ranks WHERE rank_id='[mysqlescape $rank_id]'"
     # set sql "SELECT user_id, username, user_posts FROM phpbb_users WHERE user_id='[mysqlescape $user_id]'"
     
     set sql "SELECT u.user_id, u.username, u.user_posts, u.user_rank, u.user_lang, r.rank_id, r.rank_title FROM phpbb_ranks AS r LEFT JOIN phpbb_users AS u ON (r.rank_id=u.user_rank) WHERE u.user_id = '[mysqlescape $user_id]'"

      
      set result [mysqlquery $db_handle $sql]
      
      
      set i 0
      while {[set record [mysqlnext $result]] != ""} {
             
          set user_id [lindex $record 0];
          set username [lindex $record 1];
          set user_posts [lindex $record 2];
          set rank_title [lindex $record 3];
          set user_lang [lindex $record 4];

          putquick "PRIVMSG $channel : User: $username ::: Posts: $user_posts ::: Rank: $rank_title ::: Lang: $user_lang ::: Link $site_add/memberlist.php?mode=viewprofile&u=$user_id :::"
          incr i 
      }
        
      if { $i == 0 } { puthelp "PRIVMSG $channel :No matches : Please try again"  }
      mysqlendquery $result
      mysqlendquery $resultnick
    }
}
putlog "User search - Loaded"
GreatZ
Fire-Fox | Denmark

Scripts: Relay | Store Text | TvMaze
Post Reply