vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 General Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=111)
-   -   Error : Unable to add cookies, header already sent. (https://vborg.vbsupport.ru/showthread.php?t=217931)

nirvana43 07-06-2009 02:54 AM

Error : Unable to add cookies, header already sent.
 
Hello
I've created 1 custom page by referring to vBulletin API Basics topic posted by Psionic Vision.
Here is topic url : https://vborg.vbsupport.ru/showthread.php?t=98009
I'm getting following error :confused: :
Quote:

Unable to add cookies, header already sent.
File: /home2/aditya43/public_html/forums/test.php
Line: 1

My test.php file contains following code :
Quote:

<?php
error_reporting(E_ALL & ~E_NOTICE);
define('NO_REGISTER_GLOBALS', 1);
define('THIS_SCRIPT', 'adi');
$globaltemplates = array('adi');
require('./global.php');
include('aaa/tmp.php');
$navbits = array();
$navbits[$parent] = 'Aditya Test Page';
$navbits = construct_navbits($navbits);
eval('$navbar = "' . fetch_template('navbar') . '";');
if (!$vbulletin->userinfo['userid'])
{
print_no_permission();
}
else
{
eval('print_output("' . fetch_template('adi') . '");');
}
?>
My template "adi" under vbulletin contains following code :
Quote:

$stylevar[htmldoctype]
<html dir="$stylevar[textdirection]" lang="$stylevar[languagecode]">
<head>
<title>$vboptions[bbtitle]</title>
$headinclude
</head>
<body>
$header
$navbar
<if condition="$adiinitcond">
$testcond1
<else/>
$testcond2
</if>
</table>
$footer
</body>
</html>
tmp.php file contains :
Quote:

$a=5;
$b=6;
$adiinitcond="$a>$b";
$testcond1="$a is bigger";
$testcond2="$b is bigger";
However if i login to vbulletin forum and then access test.php, it works perfect. But as a guest it gives me above error.
I also wanna allow guests on test.php or at least it should print vbulletin error message.

Here is what i've done so far to get rid of above error :
1. Removed all whitespace etc.
2. Tried "<?php" tag without closing php tag "?>"
3. Tested after removing "include('aaa/tmp.php');" from test.php
4. Removed all "echo", "print" etc. from tmp.php

The possible cause of above error is i'm trying to send data or something to browser before vbulletin cookies. So i traced my entire code and found i'm not sending anything to browser before cookies (or am i?).

Lynne 07-06-2009 03:24 PM

You posted this exact same question on vb.com and I answered over there.

nirvana43 07-07-2009 01:03 AM

Quote:

Originally Posted by Lynne (Post 1843851)
You posted this exact same question on vb.com and I answered over there.

Thank you for your reply :
Quote:

You should be posting this over at vb.org where they deal with custom coding.

You should try giving no permission *before* you eval any templates (like your navbar).

If you need further help, you should post this over at vb.org.
You should try giving no permission *before* you eval any templates (like your navbar).
Please explain more... how do i do that?
Can you post the code segment?
Here is what i've tried so far :
Quote:

eval('$navbar = "' . fetch_template('navbar') . '";');
if (!$vbulletin->userinfo['userid'])
{
print_no_permission();
}
else
{
eval('print_output("' . fetch_template('bebo') . '");');
}

But that ain't solving the problem.
Well can you tell me something, if i write "include(file.php)" in else part before "eval('print...')" can cause error??
But still i think as cookies are already sent because of *no permission* condition, it would've worked...

EDIT :
I tried all above things but still nothing is working.

Lynne 07-07-2009 01:26 AM

Right after including global.php is when you want to do the lines about whether the user is logged in:
PHP Code:

 if (!$vbulletin->userinfo['userid'])
{
print_no_permission();


Then do the rest of your stuff.

nirvana43 07-07-2009 02:31 AM

Quote:

Originally Posted by Lynne (Post 1844238)
Right after including global.php is when you want to do the lines about whether the user is logged in:
PHP Code:

 if (!$vbulletin->userinfo['userid'])
{
print_no_permission();


Then do the rest of your stuff.

That is exactly what i've tried as specified in my above post. But i'm still getting same error.
BTW is there any way i can permit guests also on same page.
Because if we put *no permission* thing then only registered members can view the page.
Is there any way we can get around this cookies problem?

I also tried ob_flush();
But still aint working :erm:

Lynne 07-07-2009 02:45 PM

Quote:

Originally Posted by nirvana43 (Post 1844261)
That is exactly what i've tried as specified in my above post. But i'm still getting same error.

That is not what you are showing in the above post. You have the no permission going on after the template is evaled, not before.
Quote:

Originally Posted by nirvana43 (Post 1844261)
BTW is there any way i can permit guests also on same page.

Sure, by not putting in that line. The code says 'if there is no userid, then give them a no permission page'. If you don't want that to happen, why do you have it in your code?

saajjj 01-02-2010 09:39 PM

Apologies for digging up this old thread.

I was wondering if the OP found a solution?

I was stuck in EXACTLY the same position and the solution was quite strange. All I did was to ensure that test.php was saved without the Byte Order Mark. For those who don't know, the BOM allows applications to know what the encoding of the file is. You can read all about it here

Software like notepad++ (free) make it very easy to save a file without the BOM.

nirvana43 01-03-2010 01:15 AM

Yes, BOM could cause similar problem. Saving file in utf encoded format could also cause garbage character data to be displayed on page. All we gotta do is save file in ANSI/ASCII. I use Ultra Edit for writing codes. :)


All times are GMT. The time now is 02:44 PM.

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.01085 seconds
  • Memory Usage 1,746KB
  • 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
  • (2)bbcode_php_printable
  • (10)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (8)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
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete