Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 Programming Discussions
  #1  
Old 12-07-2006, 11:31 PM
Antivirus's Avatar
Antivirus Antivirus is offline
 
Join Date: Sep 2004
Location: Black Lagoon
Posts: 1,090
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default How do I use input cleaner to clean arrays?

the following code works fine for me using straight php, however when i try to get it to work using the vbulletin input cleaner, it just posts "array" into the responses field and wipes out the submittes results:

here's what's working for me using "non-vb" php:
PHP Code:
foreach ($_POST['whatyoudid'] as $feedbackdetailid => $whatyoudid)
{
    
$db->query_write("
        UPDATE scst_feedbackdetail SET 
            whatyoudid = '" 
addslashes($whatyoudid) . "', 
            responses = '" 
addslashes($_POST['responses'][$feedbackdetailid]) . "',
            comments = '" 
addslashes($_POST['comments'][$feedbackdetailid]) . "'
        WHERE feedbackdetailid = '" 
$feedbackdetailid "'
    "
);

i tried to clean it as follows but no dice:
PHP Code:
    $vbulletin->input->clean_array_gpc('p', array(
        
'feedbackdetailid'    =>    TYPE_UINT,
        
'whatyoudid'        =>    TYPE_STR,
        
'responses'            =>    TYPE_STR,
        
'comments'            =>    TYPE_STR
    
));

foreach (
$db->escape_string($vbulletin->GPC['whatyoudid']) as $feedbackdetailid => $whatyoudid)
{
    
$db->query_write("
        UPDATE " 
TABLE_PREFIX "scst_feedbackdetail SET 
            whatyoudid = '" 
$whatyoudid "', 
            responses = '" 
$db->escape_string($vbulletin->GPC['responses'][$feedbackdetailid]) . "',
            comments = '" 
$db->escape_string($vbulletin->GPC['comments'][$feedbackdetailid]) . "'
        WHERE feedbackdetailid = '" 
$feedbackdetailid "'
    "
);

I just need to figure out how to clean the two arrays above... $_POST['responses'][$feedbackdetailid] and $_POST['comments'][$feedbackdetailid]

can anyone save me from bloody torment?
Reply With Quote
  #2  
Old 12-10-2006, 01:36 AM
Antivirus's Avatar
Antivirus Antivirus is offline
 
Join Date: Sep 2004
Location: Black Lagoon
Posts: 1,090
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

ok i figured it out... thanks to Alan's HOWTO on the input cleaner class...

this works for me:
PHP Code:
$vbulletin->input->clean_array_gpc('p', array(
    
'whatyoudid'    =>    TYPE_ARRAY_STR,
    
'responses'    =>    TYPE_ARRAY_STR,
    
'comments'    =>    TYPE_ARRAY_STR
));

foreach (
$vbulletin->GPC['whatyoudid'] as $feedbackdetailid => $whatyoudid)
{
    
$db->query_write("
        UPDATE scst_feedbackdetail SET 
            whatyoudid    = '" 
$db->escape_string($whatyoudid) . "', 
            responses    = '" 
$db->escape_string($vbulletin->GPC['responses'][$feedbackdetailid]) . "', 
            comments    = '" 
$vbulletin->GPC['comments'][$feedbackdetailid] . "'
        WHERE feedbackdetailid    = '" 
$feedbackdetailid "'
    "
);

Reply With Quote
Reply

Thread Tools
Display Modes

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 04:35 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.06358 seconds
  • Memory Usage 2,187KB
  • 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_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (2)post_thanks_box
  • (2)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (2)post_thanks_postbit_info
  • (2)postbit
  • (2)postbit_onlinestatus
  • (2)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