Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 2.x > vBulletin 2.x Full Releases

Reply
 
Thread Tools
Details »»

Version: , by bira bira is offline
Developer Last Online: Jun 2013 Show Printable Version Email this Page

Version: 2.2.x Rating:
Released: 05-02-2001 Last Update: Never Installs: 101
 
No support by the author.

HACK UPDATED NOV 27TH 2001 - WORKS WITH ALL 2.X.X VERSIONS!

Since I was asked to make this available, here's my hack for downloading Private Messages (as many as you select) at once into a local txt file.

This is helpful if you need to clear out your PM folder(s) due to quota limitation, but don't want to lose those messages.

In effect, it works like an e-mail RFC archive.

Installation Instructions:

1. Open private.php.

Find:

Code:
  if ($delete!="") {
    $what="delete";
  }
Immediately AFTER it put:

PHP Code:
  if ($download!="") {
    
$what="download";
  } 
Find:

Code:
}

// ############################### start delete ###############################
Immediately ABOVE it (make sure you put it ABOVE the } ) put:

PHP Code:
if ($what=="download") {
    if (
is_array($privatemessage)) {
        
header("Content-disposition: filename=messages.txt");
        
header("Content-type: application/octet-stream");
        
header("Pragma: no-cache");
        
header("Expires: 0");

          while(list(
$key,$val)=each($privatemessage)) {
            
$downloads=$DB_site->query_first("SELECT touserid,fromuserid,dateline,title,message FROM privatemessage WHERE privatemessageid='$key' AND userid=$bbuserinfo[userid]");
            
$tousername=$DB_site->query_first("SELECT username FROM user WHERE userid='$downloads[touserid]'");
            
$fromusername=$DB_site->query_first("SELECT username FROM user WHERE userid='$downloads[fromuserid]'");
            
$msgdt vbdate($dateformat,$downloads[dateline]);
            
$msgtm vbdate($timeformat,$downloads[dateline]);
            
$wordwrap wordwrap($downloads[message],75,"\r\n");
            
            print(
"Date/Time Sent: $msgdt$msgtm\r\n");
            print(
"From: $fromusername[username]\r\n");
            print(
"To: $tousername[username]\r\n");
            print(
"Subject: $downloads[title]\r\n\r\n");
            print(
"$wordwrap\r\n");
            print(
"==========================================================================\r\n\r\n\r\n");


        } 
//end while
    
    
} else {
      eval(
"standarderror(\"".gettemplate("error_pmnoselected")."\");");
      exit;
   }

Note for Foreign Users: replace the words 'Date/Time Sent', 'From', 'To', 'Subject' in the above code with whatever wording in your language that suits you.

Save file and upload.

2. Edit template privfolder.

Find:

Code:
$massforwardlink
Immediately after OR before it (it does not matter), put:

Code:
or <input type="submit" class="bginput2" name="download" value="Download" style="background-color:#606096;color:#FFF788;font-size:10px;font-weight:bold">
Note for Foreign Users: replace the word "or" and the value "Download" with whatever wording in your language that suits you.


That's it!

Usage: select one or more messages in one of your Private Messages folder and click on "Download". You will be prompted to save messages.txt on your hard drive (a Windows filename & folder selection dialogue will pop up).

Cheers,

Bira

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #82  
Old 04-06-2002, 03:41 PM
bart bart is offline
 
Join Date: Dec 2001
Posts: 8
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I changed the script a little:

Code:
if ($what=="download") {
   if (is_array($privatemessage)) {
//	        header("Content-disposition: filename=messages.txt");
//	        header("Content-type: application/octet-stream");
//	        header("Pragma: no-cache");
//	        header("Expires: 0");
	
     while(list($key,$val)=each($privatemessage)) {
            $downloads=$DB_site->query_first("SELECT touserid,fromuserid,dateline,title,message FROM privatemessage WHERE privatemessageid='$key' AND userid=$bbuserinfo[userid]");
            $tousername=$DB_site->query_first("SELECT username FROM user WHERE userid='$downloads[touserid]'");
            $fromusername=$DB_site->query_first("SELECT username FROM user WHERE userid='$downloads[fromuserid]'");
            $msgdt = vbdate($dateformat,$downloads[dateline]);
            $msgtm = vbdate($timeformat,$downloads[dateline]);
            $wordwrap = wordwrap($downloads[message],75,"\r\n");
	            
   $dump .= "\r\nDate/Time Sent: $msgdt, $msgtm\r\n";
   $dump .= "from: $fromusername[username]\r\n"; 
   $dump .= "To: $tousername[username]\r\n";
   $dump .= "Subject: $downloads[title]\r\n\r\n";
   $dump .= "$wordwrap\r\n";
   $dump .= "\r\n==========================================================================\r\n";

} //end while

  mail("$bbuserinfo[email]","Download Private Messages","$dump","From: Title of your board <no_reply_emailaddress>");

  eval("standarderror(\"".gettemplate("pm_download_complete")."\");");
 exit;
	    
} else {
  eval("standarderror(\"".gettemplate("error_pmnoselected")."\");");
  exit;
  }
}
Now the messages are send to the users emailaddress. In the template "pm_download_complete" you can warn them to check the email before deleting the messages.
Reply With Quote
  #83  
Old 04-06-2002, 06:02 PM
LouChipher LouChipher is offline
 
Join Date: Oct 2001
Posts: 37
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

@ bart, search the bug...
every user can see and download all pns...
Reply With Quote
  #84  
Old 04-06-2002, 07:19 PM
bart bart is offline
 
Join Date: Dec 2001
Posts: 8
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Guess you're right, Lou. Thanks for your warning (though less for making it a puzzle).

Does this solve it?

Code:
	if ($what=="download") {
	    if (is_array($privatemessage)) {
			$pms = implode(",",array_keys($privatemessage));
			$downloads=$DB_site->query("SELECT touserid,fromuserid,dateline,title,message FROM privatemessage WHERE privatemessageid IN ($pms) AND userid=$bbuserinfo[userid]");
			while ($pm = mysql_fetch_array($downloads)) {
			    $tousername=$DB_site->query_first("SELECT username FROM user WHERE userid='$pm[touserid]'");
			    $fromusername=$DB_site->query_first("SELECT username FROM user WHERE userid='$pm[fromuserid]'");
			    $msgdt = vbdate($dateformat,$downloads[dateline]);
			    $msgtm = vbdate($timeformat,$downloads[dateline]);
			    $wordwrap = wordwrap($pm[message],75,"\r\n");
			    
			    $dump .= "\r\nDate/Time Sent: $msgdt, $msgtm\r\n";
			    $dump .= "From: $fromusername[username]\r\n";
			    $dump .= "To: $tousername[username]\r\n";
			    $dump .= "Subject: $pm[title]\r\n\r\n";
			    $dump .= "$wordwrap\r\n";
			    $dump .= "\r\n==========================================================================\r\n";
			} //end while
			mail("$bbuserinfo[email]","Download Private Messages","$dump","From: BOARD-TITLE <EMAILADDRESS>");
		   eval("standarderror(\"".gettemplate("pm_download_complete")."\");");
		   exit;    
	    } else {
	      eval("standarderror(\"".gettemplate("error_pmnoselected")."\");");
	      exit;
	   }
	}
Reply With Quote
  #85  
Old 04-07-2002, 08:15 AM
LouChipher LouChipher is offline
 
Join Date: Oct 2001
Posts: 37
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

looks bad... one of my moderators tell u what's wrong. btw he release a secure template version (save pms as a html file) in a few days.

lou
Reply With Quote
  #86  
Old 04-08-2002, 08:16 PM
Cano2 Cano2 is offline
 
Join Date: Apr 2002
Posts: 15
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hi,
sorry forposting so late... didn't have much time


The most importent rule in web-programming is "never trust user input". But this rule is ignored here, so injection of SQL statements is possible...

[detailed description removed]

I have postet a very simmilar hack with enhanced functionality (templates...), which should be safe (uses verifyid() ) here: https://vborg.vbsupport.ru/showthrea...threadid=37172
Reply With Quote
  #87  
Old 04-08-2002, 09:33 PM
bart bart is offline
 
Join Date: Dec 2001
Posts: 8
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Oops.

Thanks for your reply Cano. I'll switch to your version soon as I have the time.

I couldn't do what you suggest is possible, but the thought of it maybe being possible is more then enough.

Maybe you should remove your post to not give someone a bad idea.
Reply With Quote
  #88  
Old 04-29-2002, 05:04 PM
Boofo's Avatar
Boofo Boofo is offline
 
Join Date: Mar 2002
Location: Des Moines, IA (USA)
Posts: 15,776
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks zarkov, that fixed it. :-)
Reply With Quote
  #89  
Old 04-29-2002, 05:09 PM
Boofo's Avatar
Boofo Boofo is offline
 
Join Date: Mar 2002
Location: Des Moines, IA (USA)
Posts: 15,776
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks for the great hack, bira! I am in the process of getting the board ready to go up and this will be a great addition and surprise for everyone. Keep up the great work!
Reply With Quote
  #90  
Old 08-21-2002, 12:59 AM
Dark Shogun Dark Shogun is offline
 
Join Date: Aug 2002
Location: The Underworld
Posts: 249
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I got a error. Does anyone know how to fix this? I have Ver. 2.2.6.

PHP Code:
Parse errorparse errorunexpected in /home/blarg/public_html/forum/member.php on line 1638 
Dark Shogun
Reply With Quote
  #91  
Old 08-21-2002, 01:21 AM
Boofo's Avatar
Boofo Boofo is offline
 
Join Date: Mar 2002
Location: Des Moines, IA (USA)
Posts: 15,776
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Show us the code a few lines up and a few lines after the error and we'll see if we can spot the problem.

Quote:
Originally posted by Dark Shogun
I got a error. Does anyone know how to fix this? I have Ver. 2.2.6.

PHP Code:
Parse errorparse errorunexpected in /home/blarg/public_html/forum/member.php on line 1638 
Dark Shogun
Reply With Quote
Reply

Thread Tools

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 09:42 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.05194 seconds
  • Memory Usage 2,337KB
  • Queries Executed 25 (?)
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
  • (6)bbcode_code
  • (4)bbcode_php
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (3)pagenav_pagelink
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)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_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
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete