vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vBulletin 3.0 Beta Releases (https://vborg.vbsupport.ru/forumdisplay.php?f=34)
-   -   Allow Your Users to Post Anonymously Without Logging Out (https://vborg.vbsupport.ru/showthread.php?t=78410)

amykhar 03-24-2005 10:03 PM

The query at the end updates the permissions for all user groups. You're going to have to double check your permission settings at every level. There is no difference in the code between admins and any other user group. If it works for one, it works for all if you have your settings correct.

Greebo 03-25-2005 09:36 AM

I just want to thank you again for developing this hack!! This is working great so far!

Greebo 03-28-2005 03:49 PM

Ok, the modification to editpost.php has a logic error in it.

You test two conditions in a nested double test:
Was post made anon?
- Yes
-- was it anon before?
---Yes set a bunch of vars incl $threadupdate
---No set a bunch of vars incl $threadupdate
- No
-- was it anon before?
---Yes set a bunch of vars incl $threadupdate
---No set a bunch of vars incl $threadupdate

Then you later have logic twice to update the thread
// if (!empty($threadupdate))

$threadupdate will never be empty in either case.

Net effect: When a thread is posted and someone replies to it and then edits their reply, thread.postusername and thread.postuserid are overwridden inappropriately and the 2nd threadupdate . Thread should only be updated with anon/real user names and IDs if the OP is edited.


This is the change I made to the entire code set of editpost.php following delete_post_index($postid);
PHP Code:

  // The post is made anonymously
  
if ($edit['postanon'])
  {
   
// Check to see if it was made anonymously BEFORE the edit
   
if ($postinfo['postanon'])
   {
    
$edit['postusername']= $postinfo['username'];
    
$edit['userid'] = $postinfo['userid'];
    
$edit['postanon'] = $postinfo['postanon'];
    
$edit['anonname'] = $postinfo['username'];
    if(
$threadinfo[firstpostid] == $postinfo[postid])
    {
     
$threadupdate[] = "postusername = '" addslashes(htmlspecialchars_uni($edit['postusername'])) . "',anonname = '" addslashes(htmlspecialchars_uni($edit['anonname'])) . "', postanon = $edit[postanon]";
    }
    
$forumupdate "anonname = '" addslashes(htmlspecialchars_uni($edit['anonname'])) . "', postanon = $edit[postanon]";
   }
   
// If not, we need to set the values.
   
else
   {
    
// This isn't exactly right. But, most times, it will work.
    
$edit['postusername']= $usergroupcache["$bbuserinfo[usergroupid]"]['anonname'];
    
$edit['postusername']= $threadinfo[postusername];
    
$edit['userid'] = 256;
    
$edit['postanon'] = $postinfo['userid'];
    
$edit['anonname'] = $postinfo['username'];
    if(
$threadinfo[firstpostid] == $postinfo[postid])
    {
     
$threadupdate[] = "postusername = '" addslashes(htmlspecialchars_uni($edit['postusername'])) . "',anonname = '" addslashes(htmlspecialchars_uni($edit['anonname'])) . "', postanon = $edit[postanon]";
    }
    
$forumupdate "anonname = '" addslashes(htmlspecialchars_uni($edit['anonname'])) . "', postanon = $edit[postanon]";
   }
  }
  
// The post is no longer made anonymously
  
else
  {
   
// Check to see if it was made anonymously BEFORE the edit.
   
if ($postinfo['postanon'])
   {
    
$edit['postusername']= $postinfo['anonname'];
    
$edit['userid'] = $postinfo['postanon'];
    
$edit['postanon'] = 0;
    
$edit['anonname'] = "";
    if(
$threadinfo[firstpostid] == $postinfo[postid])
    {
     
$threadupdate[] = "postusername = '" addslashes(htmlspecialchars_uni($edit['postusername'])) . "',anonname = '" addslashes(htmlspecialchars_uni($edit['anonname'])) . "', postanon = $edit[postanon]";
    }
    
$forumupdate "anonname = '" addslashes(htmlspecialchars_uni($edit['anonname'])) . "', postanon = $edit[postanon]";
   }
   else
   {
    
$edit['postanon'] = 0;
    
$edit['anonname'] = "";
    
$edit['userid'] = $postinfo['userid'];
    
$edit['postusername'] = $postinfo['username'];
    if(
$threadinfo[firstpostid] == $postinfo[postid])
    {
     
$threadupdate[] = "postusername = '" addslashes(htmlspecialchars_uni($edit['postusername'])) . "',anonname = '" addslashes(htmlspecialchars_uni($edit['anonname'])) . "', postanon = $edit[postanon]";
    }
    
$forumupdate "anonname = '" addslashes(htmlspecialchars_uni($edit['anonname'])) . "', postanon = $edit[postanon]";
   }
  }
  if (!empty(
$threadupdate))
  {
   
// do thread update
   
$DB_site->query("
    UPDATE " 
TABLE_PREFIX "thread
    SET " 
implode(', '$threadupdate) . "
    WHERE threadid = 
$threadinfo[threadid]
   "
);
  }
  if (
$foruminfo['lastposter'] == $postinfo['username'])
  {
   
// this thread is the one being displayed as the thread with the last post...
    
$forumupdate "lastposter = '" addslashes(htmlspecialchars_uni($edit['postusername'])) . "', postanon = $edit[postanon]";
  }
  if (
$threadinfo['lastposter'] == $postinfo['username'])
  {
   
// this post is the one being displayed as the thread with the last post...
     
$threadupdate[] = "lastposter = '" addslashes(htmlspecialchars_uni($edit['postusername'])) . "',anonname = '" addslashes(htmlspecialchars_uni($edit['anonname'])) . "', postanon = $edit[postanon]";
  }
  if (!empty(
$threadupdate))
  {
   
// do thread update
   
$DB_site->query("
    UPDATE " 
TABLE_PREFIX "thread
    SET " 
implode(', '$threadupdate) . "
    WHERE threadid = 
$threadinfo[threadid]
   "
);
  } 

You will see, I wrapped all updates to $threadupdate in a conditional validating that the post edited is the first post in the thread.

I also removed "postuserid = $edit[userid]" in all spots in that code (it was in every update to $threadupdate).

ThePimp 03-31-2005 12:32 PM

Ok, I've installed this hack, and it seems as though it's not functioning properly... can someone please assist me with this?

Here's what's happening...
I can post as anon via New Thread, Reply & Quick Reply.
Anon shows up as the username, however, the avatars still show, even when logged out. Also, the "location" shows up, and for some reason, the Anon avatar doesn't work, and the anon user title doesn't either. The other issue is that when you click on the Anonymous username, and view profile, it shows the REAL poster's profile.

I've tested this as Admin / Mod & User. Even Not Logged In users can see the Anon's REAL avatar / location etc...

Did I miss a step somewhere around the Postbit or showthread? I'm using the Postbit Legacy, on vb3.07.

amykhar 03-31-2005 04:29 PM

Well, if you have followed the directions, you have not completely installed the hack because this problem would have shown up during testing. What step are you on? That makes it easier to diagnose what could be going on. Also, I need a link to a thread that is having the problem.

Tsukasa2k5 04-01-2005 06:51 AM

Hi,

Excellent work, but I've a question:
If more users than one can answer anonymous a thread it will be usefull, that the users know, who had answerd. Maybe with a random number after the "Anonymous Registered User" username.

For example:

1. Post:
Anonymous Registered User [777]
Hi there

2. Post:
Anonymous Registered User [888]
What are you doing ?

3. Post:
Anonymous Registered User [777]
Nothing

So the other users know that the 1. and 3. post was posted by the same user.

I hope you understand what i mean :nervous:

spence2 04-01-2005 12:16 PM

I understand what you mean...and it sounds like a useful mod to the hack. Less confusion in the thread regarding who's replying to whom.

amykhar 04-01-2005 02:08 PM

Feel free to do it as an addon, but this hack is already massively complicated. I'm not sure users could take any more changes; so I won't be implementing that at this juncture.

MrZeropage 04-01-2005 05:30 PM

I just found this hack today and *funny* I am working on the same for some months now and will be going to finish it soon.

But it is less complicated, I just took a look on your instructions and how you did it *wow*

My "Anonymity-Hack" will bring that requested feature along with it and even some more, while it also does not need any additional table in the database and less queries.



I just started beta-testing my hack ...



Anyway - nice work, when mine is finished we should compare them ;)

ThePimp 04-01-2005 09:23 PM

Quote:

Originally Posted by amykhar
Well, if you have followed the directions, you have not completely installed the hack because this problem would have shown up during testing. What step are you on? That makes it easier to diagnose what could be going on. Also, I need a link to a thread that is having the problem.

I went top to bottom of your instructions, but it may be possible that something got missed, as it was around 4:00AM when I installed it, and I was starting to get tired. Let me ask you this... DOES your hack change the AVATAR for the Anon posters to the one being used in the Anon profile, as well as change the user title? If so, could you point me to which step in your instructions these functions are located?

Thanks


All times are GMT. The time now is 06:34 AM.

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.01231 seconds
  • Memory Usage 1,801KB
  • 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
  • (1)bbcode_php_printable
  • (1)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (10)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
  • pagenav_page
  • pagenav_complete
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete