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

Reply
 
Thread Tools Display Modes
  #1  
Old 12-04-2011, 12:47 PM
Marvin Hlavac Marvin Hlavac is offline
 
Join Date: Sep 2007
Posts: 102
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default How to disable cookies being served to guests?

I'd like to not serve cookies to guests. How would I go about implementing it?
Reply With Quote
  #2  
Old 12-04-2011, 04:44 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

NOCOOKIES can be defined to stop cookies from being created, but the problem is that some cookie values are set before you know if you have a guest or a logged in user. But I think you might be able to remove cookies from the headers before they're sent, so maybe something like:

PHP Code:
if ($vbulletin->userinfo['userid'] == 0)
{
    
define('NOCOOKIES'1);
    
header_remove('Set-Cookie');


in a plugin using hook [S]global_bootstrap_init_start[/S] global_start.
Reply With Quote
  #3  
Old 12-04-2011, 05:16 PM
Marvin Hlavac Marvin Hlavac is offline
 
Join Date: Sep 2007
Posts: 102
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hi kh99,

Thanks very much for that. For some reason, my vBulletin (3.8.x) doesn't seem to have the global_bootstrap_init_start hook though.
Reply With Quote
  #4  
Old 12-04-2011, 05:54 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Marvin Hlavac View Post
Hi kh99,

Thanks very much for that. For some reason, my vBulletin (3.8.x) doesn't seem to have the global_bootstrap_init_start hook though.
Oops - that's only in vb4 . Use global_start.
Reply With Quote
  #5  
Old 12-04-2011, 06:20 PM
Marvin Hlavac Marvin Hlavac is offline
 
Join Date: Sep 2007
Posts: 102
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Kevin, when the header_remove('Set-Cookie'); is present in the plug in, a guest sees a white page with the following error:

Fatal error: Call to undefined function header_remove() in /home/xxxxxx/public_html/test/global.php(400) : eval()'d code on line 48


The define('NOCOOKIES', 1); alone doesn't prevent cookies from being sent.

I very much appreciate your help, as I have absolutely no clue how to implement this.
Reply With Quote
  #6  
Old 12-04-2011, 06:28 PM
EXIDE EXIDE is offline
 
Join Date: Feb 2009
Posts: 16
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Marvin Hlavac View Post
Kevin, when the header_remove('Set-Cookie'); is present in the plug in, a guest sees a white page with the following error:

Fatal error: Call to undefined function header_remove() in /home/hlavac/public_html/test/global.php(400) : eval()'d code on line 48


The define('NOCOOKIES', 1); alone doesn't prevent cookies from being sent.

I very much appreciate your help, as I have absolutely no clue how to implement this.
You need to be using PHP 5.3.0 to use that function.
Reply With Quote
  #7  
Old 12-04-2011, 06:32 PM
Marvin Hlavac Marvin Hlavac is offline
 
Join Date: Sep 2007
Posts: 102
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hi Exide,

I may be out of luck then, as I'm currently using PHP 5.2.17. But I will consider upgrading.

Thanks to both for help. If/when I upgrade, I will post how the plug-in works.
Reply With Quote
  #8  
Old 12-05-2011, 11:01 PM
kh99 kh99 is offline
 
Join Date: Aug 2009
Location: Maine
Posts: 13,185
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Yeah, sorry, I never thought to check that. But something else I discovered the hard way - if you never serve cookies to guests, no one can ever stay logged in. (...or more precisely, everything will work OK for logged in users with "Remember Me" checked, but no one else will be able to log in).

So that code will need to check THIS_SCRIPT or something to make sure if a user is in the process of logging in, cookies are sent.
Reply With Quote
  #9  
Old 12-06-2011, 12:14 AM
Marvin Hlavac Marvin Hlavac is offline
 
Join Date: Sep 2007
Posts: 102
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks, Kevin. Yeah, I was afraid this could cause issues with logging in :-(
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 09:40 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.04426 seconds
  • Memory Usage 2,238KB
  • 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
  • (1)bbcode_php
  • (2)bbcode_quote
  • (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_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