Thread: Forms Hack
View Single Post
  #303  
Old 12-06-2005, 12:05 PM
Abe1's Avatar
Abe1 Abe1 is offline
 
Join Date: Feb 2004
Location: I LOVE New York!
Posts: 2,886
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Ramsesx
I tranfered my settings from 2.7 to 3.0 and get now this error:
Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ')' in /home/www/web153/html/forum/newthread.php(68) : eval()'d code on line 34
that's my form:
Code:
 // To add more then one form, copy this whole text, and creat a new plug-in with the hook location 'newthread_start'. 
// After, change the form name. You can't have 2 forms with the same name. 

// Name of this form 
$formname = "form"; 

if ($_REQUEST['do'] == $formname) 
{ 

// ####################################################################### 
// ######################## CUSTOMIZE VARIABLES ########################## 
// ####################################################################### 

//////////////////////////////////////////////////////////////////////////////////////////////////// 
////// BEGIN CUSTOMIZATION BELOW//////////////////////////////////////////////////////////////////// 
//////////////////////////////////////////////////////////////////////////////////////////////////// 

//////////////////////////////////////////////////////////////////////////////////////////////////// 
//VARIABLES 
//Study how variables are add here to add or remove any. If you add a variable to your form, you must add it to part one and part two. 
//////////////////////////////////////////////////////////////////////////////////////////////////// 

// Part 1 
$vbulletin->input->clean_array_gpc('p', array( 
'normalanswer1' => TYPE_STR, 
'normalanswer2' => TYPE_STR, 
'dropanswer1' => TYPE_STR, 
'radioanswer1' => TYPE_STR, 
'radioanswer2' => TYPE_STR, 
'radioanswer3' => TYPE_STR, 
'radioanswer3other' => TYPE_STR, 
'answer1' => TYPE_STR, 
'answer2' => TYPE_STR 
'answer3' => TYPE_STR, 
'longanswer1' => TYPE_STR 

)); 

// Part 2 
$normalanswer1 = $vbulletin->GPC['normalanswer1']; 
$normalanswer2 = $vbulletin->GPC['normalanswer2']; 
$dropanswer1 = $vbulletin->GPC['dropanswer1']; 
$radioanswer1 = $vbulletin->GPC['radioanswer1']; 
$radioanswer2 = $vbulletin->GPC['radioanswer2']; 
$radioanswer3 = $vbulletin->GPC['radioanswer3']; 
$radioanswer3other = $vbulletin->GPC['radioanswer3other']; 
$answer1 = $vbulletin->GPC['answer1']; 
$answer2 = $vbulletin->GPC['answer2']; 
$answer3 = $vbulletin->GPC['answer3']; 
$longanswer1 = $vbulletin->GPC['longanswer1']; 
//////////////////////////////////////////////////////////////////////////////////////////////////// 
//USERGROUPS ALLOWED 
//You can add or remove usegroups that are ALLOWED to use this form by changing the numbers below in the array. 
//To enable this feature, remove the '//' before the 'if'. 
//////////////////////////////////////////////////////////////////////////////////////////////////// 

// if (!in_array($vbulletin->userinfo['usergroupid'], array(2,5,6,7))) print_no_permission(); 

//////////////////////////////////////////////////////////////////////////////////////////////////// 

//////////////////////////////////////////////////////////////////////////////////////////////////// 
//NAME OF TEMPLATES - DO THIS BIT IF YOU ARE MAKING MORE FORMS AND WANT TO USE A DIFFERENT LOOKING TEMPLATE 
//////////////////////////////////////////////////////////////////////////////////////////////////// 

// Name of the main template 
$maintemplate = "form"; 
// Name of the answer template 
$answertemplate = "formanswers"; 

//////////////////////////////////////////////////////////////////////////////////////////////////// 

//////////////////////////////////////////////////////////////////////////////////////////////////// 
//CHOOSE WHETHER YOU WANT FORM TO BE POSTED IN A NEW THREAD, NEW POLL, REPLY TO EXISITING THREAD, PMed OR EMAILED 
/////////////////////////////////////////////////////////////////////////////////////////////////// 

//ENABLE FORM TO BE POSTED - 1 = yes, 0 = no 
$formforum = "1"; 

//FORUM TO POST NEW THREAD IN 
//You CAN make this number a variable. You can have a drop down menu or in the link like do=form&f=1. Make sure you add it the variables list. 
$formforumid = "231"; 

//ENABLE POLL TO BE CREATED - 1 = yes, 0 = no 
$formpoll = "0"; 
$polloption[1] = "Yes"; 
$polloption[2] = "No"; 
$polloption[3] = "Maybe"; 

//////////////////////////////////////////////////////////////////////////////////////////////////// 

//ENABLE FORM TO REPLY TO EXISTING THREAD - 1 = yes, 0 = no 
$formreply = "0"; 


//EXISTING THREAD ID FOR FORM TO REPLY IN 
$formreplythreadid = "12345"; 

//////////////////////////////////////////////////////////////////////////////////////////////////// 

//ENABLE FORM TO BE PMED - 1 = yes, 0 = no 
$formpm = "1"; 

//USERNAME TO PM TO 
$formpmname = "MC"; 

//////////////////////////////////////////////////////////////////////////////////////////////////// 

//ENABLE FORM TO BE EMAILED - 1 = yes, 0 = no 
$formemail = "0"; 

//EMAIL ADDRESS TO EMAIL TO 
$formemailaddress = "youremail@yourforums.com"; 

//////////////////////////////////////////////////////////////////////////////////////////////////// 

//////////////////////////////////////////////////////////////////////////////////////////////////// 
//REDIRECT OPTIONS: 
// 0 - thank you message (thread, reply, pm, or email) 
// 1 - redirect to post (thread or reply) 
// 2 - redirect to thread (thread only) 
// 3 - redirect to forum (thread only) 
// 4 - redirect to editpost to upload attachments (thread or reply) 
// 
// Feel free to change the thank you message if you choose option 0 
//////////////////////////////////////////////////////////////////////////////////////////////////// 

$redirectoption = "0"; 

$errormessage = "$vbphrase[errormessage]"; //This is the thank you message 

//////////////////////////////////////////////////////////////////////////////////////////////////// 

//////////////////////////////////////////////////////////////////////////////////////////////////// 
//FORCE USER TO ANSWER ALL QUESTIONS - 1 = yes, 0 = no 
//If you added or deleted variables, you must edit what it checked for. Search for "$answerall ==" and edit 2 lines under it. 
//////////////////////////////////////////////////////////////////////////////////////////////////// 

$answerall = "0"; 

//////////////////////////////////////////////////////////////////////////////////////////////////// 
//TITLE OF FORM (do not use quotation marks or you will get a parse error) 
//////////////////////////////////////////////////////////////////////////////////////////////////// 

$formtitle = "Modell Bericht"; 

//////////////////////////////////////////////////////////////////////////////////////////////////// 
//TITLE OF THREAD/POST/PM/EMAIL (do not use quotation marks in the title or you will get a parse error) 
//You may use variables from the form for this. 
//////////////////////////////////////////////////////////////////////////////////////////////////// 

$posttitle = "$formtitle"; 

//////////////////////////////////////////////////////////////////////////////////////////////////// 
//PURPOSE OF FORM (do not use quotation marks or you will get a parse error) 
//////////////////////////////////////////////////////////////////////////////////////////////////// 

$formpurpose = "$vbphrase[formpurpose]"; 

//////////////////////////////////////////////////////////////////////////////////////////////////// 

//////////////////////////////////////////////////////////////////////////////////////////////////// 
//NORMAL INPUT BOX : QUESTION 1 (Name der Agentur (wenn bei keiner Feld bitte auslassen):)  
//////////////////////////////////////////////////////////////////////////////////////////////////// 

$normalquestion1 = "$vbphrase[normalquestion1]";

//////////////////////////////////////////////////////////////////////////////////////////////////// 

//////////////////////////////////////////////////////////////////////////////////////////////////// 
//NORMAL INPUT BOX : QUESTION 1 (Name des Modells:) 
//////////////////////////////////////////////////////////////////////////////////////////////////// 

$normalquestion2 = "$vbphrase[normalquestion2]"; 

//////////////////////////////////////////////////////////////////////////////////////////////////// 

//////////////////////////////////////////////////////////////////////////////////////////////////// 
//DROP DOWN BOX : QUESTION 1 (Haarfarbe:) 
//////////////////////////////////////////////////////////////////////////////////////////////////// 

$dropquestion1 = "Haarfarbe"; 

$drop1 = "blond"; 
$drop2 = "schwarz"; 
$drop3 = "braun"; 
$drop4 = "brunett"; 
$drop5 = "rot"; 
$drop6 = "lila"; 
$drop7 = "sonstige"; 

//////////////////////////////////////////////////////////////////////////////////////////////////// 

//////////////////////////////////////////////////////////////////////////////////////////////////// 
//RADIO BOX CHOICES : QUESTION 1 (do not use quotation marks or you will get a parse error) 
//////////////////////////////////////////////////////////////////////////////////////////////////// 

$radioquestion1 = "Choose one of the following choices"; 

// The following choices must NOT have quotation marks 
$radiochoice1a = "yes"; 
$radiochoice1b = "no"; 

//////////////////////////////////////////////////////////////////////////////////////////////////// 
//////////////////////////////////////////////////////////////////////////////////////////////////// 
//RADIO BOX CHOICES : QUESTION 2 (do not use quotation marks or you will get a parse error) 
//////////////////////////////////////////////////////////////////////////////////////////////////// 

$radioquestion2 = "Choose another one of the following choices"; 

// The following choices must NOT have quotation marks 
$radiochoice2a = "good"; 
$radiochoice2b = "bad"; 
$radiochoice2c = "both"; 

//////////////////////////////////////////////////////////////////////////////////////////////////// 

//////////////////////////////////////////////////////////////////////////////////////////////////// 
//RADIO BOX CHOICES : QUESTION 3 (do not use quotation marks or you will get a parse error) 
//////////////////////////////////////////////////////////////////////////////////////////////////// 

$radioquestion3 = "Is it yes or no? If yes, please elaborate"; 

// The following choices must NOT have quotation marks 
$radiochoice3a = "yes"; 
$radiochoice3b = "no"; 

//////////////////////////////////////////////////////////////////////////////////////////////////// 
//QUESTION 1 (do not use quotation marks or you will get a parse error) 
$question1 = "What is your name?"; 
$explain1 = "Please enter your real name here."; 

//QUESTION 2 (do not use quotation marks or you will get a parse error) 
$question2 = "What is your email?"; 
$explain2 = "Please enter your real email here."; 

//QUESTION 3 (do not use quotation marks or you will get a parse error) 
$question3 = "What is your website?"; 
$explain3 = "Please enter your URL here."; 

//////////////////////////////////////////////////////////////////////////////////////////////////// 


//////////////////////////////////////////////////////////////////////////////////////////////////// 
//LONG TEXT AREA INPUT: QUESTION 1 (do not use quotation marks or you will get a parse error) 
//////////////////////////////////////////////////////////////////////////////////////////////////// 

$longquestion1 = "Please write down a paragraph about yourself."; 
$longexplain1 = "For example, a bit about your experience in this area."; 

//////////////////////////////////////////////////////////////////////////////////////////////// 
////// END OF CUSTOMIZATION //////////////////////////////////////////////////////////////////// 
/////  DO NOT CHANGE BELOW UNLESS YOU KNOW WHAT YOU ARE DOING!!! //////////////////////////////// 
//////////////////////////////////////////////////////////////////////////////////////////////////// 
//////////////////////////////////////////////////////////////////////////////////////////////////// 

// ####################################################################### 
// ######################## START MAIN SCRIPT ############################ 
// ####################################################################### 
if ($_REQUEST['action'] == '') 
{ 
  $_REQUEST['action'] = "form"; 
} 


$bbuserinfo = $vbulletin->userinfo; 

// start navbar 
$navbits = array(); 
$navbits['newthread.php?' . $vbulletin->session->vars['sessionurl'] . "do=$formname"] = $formtitle; 

$navbits = construct_navbits($navbits); 
eval('$navbar = "' . fetch_template('navbar') . '";'); 

if ($_REQUEST['action'] == "submit") 
{ 

    if ($answerall == "1") 
    { 
        if ($normalanswer1 == '' OR $normalanswer2 == '' OR $dropquestion1 == '' OR $radioanswer1 == '' OR $radioanswer2 == '' OR $radioanswer3 == '' OR $answer1 == '' OR $answer2 == '' OR $answer3 == '' OR $longanswer1 == '') 
        { 
            $errormessage = "$bbuserinfo[username], you need to answer every question!"; 
            eval('print_output("' . fetch_template('STANDARD_ERROR') . '");'); 
            exit(); 
        } 
    } 

    $vbulletin->input->clean_array_gpc('p', array( 
        'wysiwyg'            => TYPE_BOOL, 
        'message'            => TYPE_STR 
        )); 
             
    if ($vbulletin->GPC['wysiwyg']) 
    { 
        require_once(DIR . '/includes/functions_wysiwyg.php'); 
        $longanswer1 = convert_wysiwyg_html_to_bbcode($vbulletin->GPC['message'], $foruminfo['allowhtml']); 
    } 
    else 
    { 
        $longanswer1 =& $vbulletin->GPC['message']; 
    } 
             
    eval('$formsend = "' . fetch_template("$answertemplate") . '";'); 

    if ($formforum == "1") 
    { 
        $foruminfo = verify_id('forum', $formforumid, 0, 1); 
        $forumperms = fetch_permissions($foruminfo[forumid]); 
        $newpost['message'] =& $formsend; 
        $newpost['title'] =& $posttitle; 
        $newpost['parseurl'] = '1'; 
        $newpost['emailupdate'] = '9999'; 

        if ($vbulletin->userinfo['signature'] != '') 
        { 
            $newpost['signature'] = '1'; 
        } 
        else 
        { 
            $newpost['signature'] = '0'; 
        } 

        build_new_post('thread', $foruminfo, array(), array(), $newpost, $errors); 

        if ($formpoll == "1") 
        { 
            $threadinfo = verify_id('thread', $newpost[threadid], 0, 1); 
            $polloptions = count($polloption); 
            $question = $posttitle; 
            $vbulletin->GPC['options'] = $polloption; 

            $counter = 0; 

            $optioncount = 0; 
            $badoption = ''; 
            while ($counter++ < $polloptions) 
            { // 0..Pollnum-1 we want, as arrays start with 0 
                if ($vbulletin->options['maxpolllength'] AND vbstrlen($vbulletin->GPC['options']["$counter"]) > $vbulletin->options['maxpolllength']) 
                { 
                    $badoption .= iif($badoption, ', ') . $counter; 
                } 
                if (!empty($vbulletin->GPC['options']["$counter"])) 
                { 
                    $optioncount++; 
                } 
            } 

            // Add the poll 
            $poll =& datamanager_init('Poll', $vbulletin, ERRTYPE_STANDARD); 

            $counter = 0; 
            while ($counter++ < $polloptions) 
            { 
                if ($vbulletin->GPC['options']["$counter"] != '') 
                { 
                    $poll->set_option($vbulletin->GPC['options']["$counter"]); 
                } 
            } 

            $poll->set('question',    $question); 
            $poll->set('dateline',    TIMENOW); 
            $poll->set('active',    '1'); 

            $pollid = $poll->save(); 
            //end create new poll 

            // update thread 
            $threadman =& datamanager_init('Thread', $vbulletin, ERRTYPE_STANDARD, 'threadpost'); 
            $threadman->set_existing($threadinfo); 
            $threadman->set('pollid', $pollid); 
            $threadman->save(); 

        } 
    } 

    if ($formreply == "1") 
    { 
        $threadinfo = verify_id('thread', $formreplythreadid, 0, 1); 
        $forumperms = fetch_permissions($threadinfo[forumid]); 
        $newpost['message'] =& $formsend; 
        $newpost['title'] =& $posttitle; 
        $newpost['parseurl'] = "1"; 
        $newpost['emailupdate'] = '9999'; 

        if ($vbulletin->userinfo['signature'] != '') 
        { 
            $newpost['signature'] = '1'; 
        } 
        else 
        { 
            $newpost['signature'] = '0'; 
        } 

        build_new_post('reply', $foruminfo, $threadinfo, $postinfo, $newpost, $errors); 
    } 

    if ($formpm == "1") 
    { 
        $vbulletin->GPC['message'] =& $formsend; 
        $vbulletin->GPC['title'] =& $posttitle; 
        $vbulletin->GPC['recipients'] =& $formpmname; 

        $pm['message'] =& $vbulletin->GPC['message']; 
        $pm['title'] =& $vbulletin->GPC['title']; 
        $pm['recipients'] =& $vbulletin->GPC['recipients']; 


        // create the DM to do error checking and insert the new PM 
        $pmdm =& datamanager_init('PM', $vbulletin, ERRTYPE_ARRAY); 

        $pmdm->set('fromuserid', $vbulletin->userinfo['userid']); 
        $pmdm->set('fromusername', $vbulletin->userinfo['username']); 
        $pmdm->setr('title', $pm['title']); 
        $pmdm->setr('message', $pm['message']); 
        $pmdm->set_recipients($pm['recipients'], $permissions); 
        $pmdm->set('dateline', TIMENOW); 

        // everything's good! 
        $pmdm->save(); 
    } 

    if ($formemail == "1") 
    { 
        vbmail($formemailaddress, $posttitle, $formsend); 
    } 

    if ($redirectoption == "1") 
    { 
        $vbulletin->url = 'showthread.php?' . $vbulletin->session->vars['sessionurl'] . "p=$newpost[postid]"; 
        eval(print_standard_redirect('redirect_postthanks')); 
        exit(); 
    } 
    if ($redirectoption == "2") 
    { 
        $vbulletin->url = 'showthread.php?' . $vbulletin->session->vars['sessionurl'] . "t=$newpost[threadid]"; 
        eval(print_standard_redirect('redirect_postthanks')); 
        exit(); 
    } 
    if ($redirectoption == "3") 
    { 
        $vbulletin->url = 'forumdisplay.php?' . $vbulletin->session->vars['sessionurl'] . "f=$foruminfo[forumid]"; 
        eval(print_standard_redirect('redirect_postthanks')); 
        exit(); 
    } 
    if ($redirectoption == "4") 
    { 
        $vbulletin->url = 'editpost.php?do=editpost&' . $vbulletin->session->vars['sessionurl'] . "p=$newpost[postid]"; 
        eval(print_standard_redirect('redirect_postthanks')); 
        exit(); 
    } 
    eval('print_output("' . fetch_template('STANDARD_ERROR') . '");'); 
    exit(); 
} 

if ($_REQUEST['action'] == 'form') 
{ 
              // set message box width to usercp size 
            $stylevar['messagewidth'] = $stylevar['messagewidth_usercp']; 
            $dontusewysiwyg = 1; 
            $editorid = construct_edit_toolbar(); 

  eval('print_output("' . fetch_template("$maintemplate") . '");'); 
} 
}
You are missing a comma after
Quote:
'answer2' => TYPE_STR
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01664 seconds
  • Memory Usage 1,864KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_code
  • (2)bbcode_quote
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.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
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • 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
  • showpost_complete