vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   Member Archives (https://vborg.vbsupport.ru/forumdisplay.php?f=202)
-   -   Awards Hack (https://vborg.vbsupport.ru/showthread.php?t=52374)

Dean C 04-30-2003 06:40 PM

Awards Hack
 
I have this one user on my forums. Lets call him Bob. Now in his profile with the awards each award is listed 5 times. Now as far as i can tell from editing some people's profiles in the ACP it is only happening to this user. I just can't pick up on why this happening.

Now one thing i can confirm is that each award appears 5 times. Now if i click the one awards tick box once out of the five times it appears - when going back to the page all five tickboxes are clicked for that award. So it's definately a case of a faulty loop of some sort.

Here is the code from user.php to generate the list of awards. Can someone perhaps pinpoint any possible problems with a certain users name or if the email contains special characters or something like that...


PHP Code:

// award/medals/card hack by lesane

          
maketableheader("Awards");
          
makeyesnocode("Enable awards for $user[username]?","hasaward",$user[award]);
          
$result mysql_query("SELECT * FROM useraward where userid='$user[userid]'");
          if (
$row mysql_fetch_array($result)) {
          
$toegang="yes";
          } else {
          
$toegang="no";
          }
                if (
$toegang=="yes") {
           
$result=$DB_site->query("SELECT awardsid,name,url,userid,aw FROM useraward where userid=$user[userid]");
           while(
$award mysql_fetch_array($result) ) {
            
$lesane="yes";
              
$id $award[awardsid];
             if(
$award[aw] == "$idand $award[userid] == "$user[userid]") {
         
$lala=" checked";
         
$up="equal";
         } else {
         
$lala="";
         
$up="not_equal";
         }

                  echo 
"<tr class='".getrowbg()."'><td><input type='checkbox' name='aw[$id]' value='yes'";
                  echo 
"$lala>$award[name]</td><td nowrap>";
                  echo 
"<input type=\"hidden\" name=\"all[$id]\" value=\"$up\">";
                  echo 
"<img src=\"$award[url]\">&nbsp;&nbsp;&nbsp;</td>";
                }

                echo 
"<input type=\"hidden\" name=\"lessie\" value=\"$lesane\">";

                } elseif (
$toegang=="no") {
                  
$noawa=$DB_site->query("SELECT awardsid,name,url,aw FROM award");
              while(
$useraward mysql_fetch_array($noawa) ) {
                   
$id $useraward[awardsid];
                  
$lesane="no";
              echo 
"<tr class='".getrowbg()."'><td><input type='checkbox' name='uaw[$id]' value='yes'";
                  if (
$uaw =='yes') {
                  echo 
" checked>$useraward[name]</td><td nowrap>";
                  
$userup='equal';
                  } else {
                  echo 
">$useraward[name]</td><td nowrap>";
                  
$userup='not_equal';
                 }
                  echo 
"<input type=\"hidden\" name=\"uall[$id]\" value=\"$userup\">";
                  echo 
"<img src=\"$useraward[url]\">&nbsp;&nbsp;&nbsp;</td>";
          echo 
"<input type=\"hidden\" name=\"userhomes[$id]\" value=\"$useraward[name]\">";
                  echo 
"<input type=\"hidden\" name=\"userurls[$id]\" value=\"$useraward[url]\">";

                 }
                 echo 
"<input type=\"hidden\" name=\"lessie\" value=\"$lesane\">";
       }
           
//  end award/medals/card hack by lesane 

Thanks in advance :)

- Dean

filburt1 04-30-2003 07:06 PM

Useless reply but I ditched that horrible awards hack a long time ago; at WDF I simply have an admin-only-editable hidden profile field that has the actual HTML for the awards :)

Dean C 05-01-2003 03:50 PM

Yea but i like the ease in which i can add awards with the store hack and how there is an add-on to display who has what award etc.

I just like the way it works. See any flaws in code then buddy :)?

- miSt

GaleForce 05-01-2003 07:20 PM

Quote:

Yesterday at 09:06 PM filburt1 said this in Post #2
Useless reply but I ditched that horrible awards hack a long time ago; at WDF I simply have an admin-only-editable hidden profile field that has the actual HTML for the awards :)
Hey... thats a really good idea, but I like being able to hit the checkbox to add them. Needless to say though, it was a good move just adding the field, because not only can it display in the postbit, but it shows up in the profile too :)

Dean C 05-03-2003 12:36 PM

Ok i have not found the cause of this problem but i've made some progress. I counted the num of rows outputted by the loop. And outputted it. Now I have 5 awards and for this user the query is looping 5 times so in total it performs 25 queries :(

Now i kind of solved it in the admin cp by making a new setting in the vbulletin options which i enter how many awards there are and then add a LIMIT $numawards to the query. $numawards being the global variable. Now this solved the problem in the ACP. But in functions.php the global variable cannot be accessed - therefore i can't stop the award looping in the postbit too :(

Any ideas?

- miSt

eoc_Jason 05-03-2003 05:40 PM

I noticed the hack wasn't using some of the standard vB functions for accessing mysql stuff, so I fixed that, but I doubt it will correct the situation with your multiple's of 5...

I'm going to D/L the hack itself and take a look at it, I'm looking at variables that I have no clue what they mean or anything.. ;)

PHP Code:

// award/medals/card hack by lesane

          
maketableheader("Awards");
          
makeyesnocode("Enable awards for $user[username]?","hasaward",$user[award]);

          
$result $DB_site->query_first("SELECT * FROM useraward where userid='$user[userid]'");
          if (isset(
$result[userid])) { $toegang="yes"; } else { $toegang="no"; }

          if (
$toegang=="yes") {
            
$result=$DB_site->query("SELECT awardsid,name,url,userid,aw FROM useraward WHERE userid='$user[userid]'");
            while( 
$award $DB_site->fetch_array($result) ) {
              
$lesane="yes";
              
$id $award[awardsid];
              if(
$award[aw] == $id && $award[userid] == $user[userid]) {
                
$lala=" checked";
                
$up="equal";
              } else {
                
$lala="";
                
$up="not_equal";
              }
              echo 
"<tr class='".getrowbg()."'><td><input type='checkbox' name='aw[$id]' value='yes'";
              echo 
"$lala>$award[name]</td><td nowrap>";
              echo 
"<input type=\"hidden\" name=\"all[$id]\" value=\"$up\">";
              echo 
"<img src=\"$award[url]\">&nbsp;&nbsp;&nbsp;</td>";
            }
            echo 
"<input type=\"hidden\" name=\"lessie\" value=\"$lesane\">";

          } elseif (
$toegang=="no") {

            
$noawa=$DB_site->query("SELECT awardsid,name,url,aw FROM award");
            while(
$useraward $DB_site->fetch_array($noawa) ) {
              
$id $useraward[awardsid];
              
$lesane="no";
              echo 
"<tr class='".getrowbg()."'><td><input type='checkbox' name='uaw[$id]' value='yes'";
              if (
$uaw =='yes') {
                echo 
" checked>$useraward[name]</td><td nowrap>";
                
$userup='equal';
              } else {
                echo 
">$useraward[name]</td><td nowrap>";
                
$userup='not_equal';
              }
              echo 
"<input type=\"hidden\" name=\"uall[$id]\" value=\"$userup\">";
              echo 
"<img src=\"$useraward[url]\">&nbsp;&nbsp;&nbsp;</td>";
              echo 
"<input type=\"hidden\" name=\"userhomes[$id]\" value=\"$useraward[name]\">";
              echo 
"<input type=\"hidden\" name=\"userurls[$id]\" value=\"$useraward[url]\">";
            }
            echo 
"<input type=\"hidden\" name=\"lessie\" value=\"$lesane\">";

          } 
// END if/elseif

//  end award/medals/card hack by lesane 



All times are GMT. The time now is 12:12 PM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01248 seconds
  • Memory Usage 1,802KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (2)bbcode_php_printable
  • (1)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (6)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete