Go Back   vb.org Archive > vBulletin 4 Discussion > vB4 Programming Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 11-20-2009, 12:04 AM
Mythotical Mythotical is offline
 
Join Date: Jun 2004
Location: Booneville, AR, USA
Posts: 1,428
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Image displaying from database

I came up with my own way to pull images but the thing about is that it won't pull the image on vB4.0, here is the template and file.

Template:
HTML Code:
<img src="download.php?catimg={vb:var cid}" height="50">
Template with pulling image data through different file other than download.php:
HTML Code:
<img src="cat.php?img={vb:var cid}" height="50">
Keep in mind the var $cid is pulled in the download.php file while the image pull is a separate file but right now I want to attempt to combine the files into one.

File:
PHP Code:
if ($vbulletin->options['bfc_download_active']){
$img $_REQUEST['img'];

$result $db->query_read("SELECT cat_icon,cat_type FROM download_cats WHERE catid=" $img); 
   while (
$row $db->fetch_array($result) ) { 
    
$sid $row['cid'];
    
$type $row['cat_type'];
    
$encodeddata $row['cat_icon']; 
    }
$data = @mysql_RESULT($result,0,'cat_icon');
$type = @mysql_RESULT($result,0,'cat_type');

header"Content-type: $type"); 
echo 
$data;

Code that is pulling the data for the $cid variable:
PHP Code:
$sql $vbulletin->db->query_read("SELECT * FROM `" TABLE_PREFIX "download_cats` WHERE cat_active = '1'");

$total $vbulletin->db->num_rows($sql);
$i=0;
$perrow $total-2;

while (
$row $db->fetch_array($sql))
{
    
$cid $row['catid'];
    
$cat $row['catitle'];
    
$description $row['cat_description']; 
    
$caticon $row['cat_icon'];
        
$i++;

    if (
$total !== 0)
    {
  
    if (
$total $perrow){
            
$catc '</td>';
        
$perrow $perrow+2;
    } else {
$perrow $perrow-2;
    
$catc '</td></tr><tr>';
    }
        
$catb vB_Template::create('bfc_download_cat_bit');
            
$catb->register('cat_bit'$cat_bit);
            
$cat_bit .= $catb->render();  
    } 
Any help much appreciated.

Thanks
Steve M
Reply With Quote
  #2  
Old 11-20-2009, 09:55 AM
cellarius's Avatar
cellarius cellarius is offline
 
Join Date: Aug 2005
Posts: 1,987
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Where do you register $cid for use in the template in the second chunk of code?
Reply With Quote
  #3  
Old 11-20-2009, 05:05 PM
Mythotical Mythotical is offline
 
Join Date: Jun 2004
Location: Booneville, AR, USA
Posts: 1,428
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

PHP Code:
while ($row $db->fetch_array($sql))
{
    
$cid $row['catid']; 
Is that what you mean by registered? Or are you talking about cleaned?
Reply With Quote
  #4  
Old 11-20-2009, 06:10 PM
cellarius's Avatar
cellarius cellarius is offline
 
Join Date: Aug 2005
Posts: 1,987
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

You need to register variables to make them available in templates:
https://vborg.vbsupport.ru/showthread.php?t=228078

I thought you knew all that, since you're already doing it:
PHP Code:
$catb vB_Template::create('bfc_download_cat_bit');
            
$catb->register('cat_bit'$cat_bit);
            
$cat_bit .= $catb->render(); 
You need to do the same as in the second line for $catb for $cid.
Reply With Quote
  #5  
Old 11-20-2009, 06:21 PM
Mythotical Mythotical is offline
 
Join Date: Jun 2004
Location: Booneville, AR, USA
Posts: 1,428
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

$cid is not a template or do all variables you use no matter if they are a template or not need to be registered?

I knew about templates but was unaware of having to do it for data variables such as $cid.
Reply With Quote
  #6  
Old 11-20-2009, 06:29 PM
cellarius's Avatar
cellarius cellarius is offline
 
Join Date: Aug 2005
Posts: 1,987
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

bfc_download_cat_bit is the template. You create it by calling the vB_Template:create method, and then you need to register every variable you want to use inside that template, no matter what's saved inside that variable. It can contain a rendered template, or it can contain just a simple boolean false or true. That does not matter, you need to register it to be able to use it. Then, in the next step, you render the template.
Reply With Quote
  #7  
Old 11-20-2009, 06:30 PM
Mythotical Mythotical is offline
 
Join Date: Jun 2004
Location: Booneville, AR, USA
Posts: 1,428
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ok I can't figure out why this:
HTML Code:
</td> </td></tr><tr>
Is displaying above my results when it should only use those if its starting a new row and ending another.
Reply With Quote
  #8  
Old 11-20-2009, 10:32 PM
DavidsMods DavidsMods is offline
 
Join Date: Oct 2009
Posts: 134
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Just a quick note on security

PHP Code:
$img $_REQUEST['img']; 
Should be cleaned as you are using it here:
PHP Code:
$result $db->query_read("SELECT cat_icon,cat_type FROM download_cats WHERE catid=" $img); 
Reply With Quote
  #9  
Old 11-20-2009, 10:36 PM
Mythotical Mythotical is offline
 
Join Date: Jun 2004
Location: Booneville, AR, USA
Posts: 1,428
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks for pointing that out, I was actually starting to think I needed to clean it.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 03:22 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.04935 seconds
  • Memory Usage 2,268KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (3)bbcode_html
  • (6)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (9)post_thanks_box
  • (9)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (9)post_thanks_postbit_info
  • (9)postbit
  • (9)postbit_onlinestatus
  • (9)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete