PDA

View Full Version : Unable to add cookies, header already sent.


musclediscussio
01-11-2013, 09:41 PM
I just migrated my server to a new one different os version but rest of the environment is same.
I moved all my accounts using cpanel account transfer. Now i am getting strange errors

Only 1 light theme seems to be working right now when i try to view the forum category it shows

vBulletin Message
Unable to add cookies, header already sent.
File: /home/muscledi/public_html/includes/config.php
Line: 1

If i modify the cookie prefix to md instead of bb it gives me a different error which it shows if i select some other theme.

Fatal error: Call to undefined method stdClass::set()

Please hellp

Lynne
01-11-2013, 09:47 PM
The unable to add headers error is common if you didn't use a plain text editor to edit the config.php file and thus you end up with an unseen BOM at the beginning of the script.

musclediscussio
01-11-2013, 09:49 PM
I didn't touched the files first. They were gzipped and automatically moved the new server. I've tried reuploading config.php again & again but doesnot work.
My site's address is: www.musclediscussion.com

Try clicking on Full Site on top right you'll see another error.

Fatal error: Call to undefined method stdClass::set() in /home/muscledi/public_html/includes/functions.php on line 7401

--------------- Added 1357944731 at 1357944731 ---------------

This is my complete config file

<?php
define('DISABLE_HOOKS', true);
/*================================================= =====================*\
|| ################################################## ################## ||
|| # vBulletin 4.1.4 Patch Level 2
|| # ---------------------------------------------------------------- # ||
|| # All PHP code in this file is 2000-2011 vBulletin Solutions Inc. # ||
|| # This file may not be redistributed in whole or significant part. # ||
|| # ---------------- VBULLETIN IS NOT FREE SOFTWARE ---------------- # ||
|| # http://www.vbulletin.com | http://www.vbulletin.com/license.html # ||
|| ################################################## ################## ||
\*================================================ ======================*/

/*-------------------------------------------------------*\
| ****** NOTE REGARDING THE VARIABLES IN THIS FILE ****** |
+---------------------------------------------------------+
| If you get any errors while attempting to connect to |
| MySQL, you will need to email your webhost because we |
| cannot tell you the correct values for the variables |
| in this file. |
\*-------------------------------------------------------*/
$config['Misc']['debug'] = true;
// ****** DATABASE TYPE ******
// This is the type of the database server on which your vBulletin database will be located.
// Valid options are mysql and mysqli, for slave support add _slave. Try to use mysqli if you are using PHP 5 and MySQL 4.1+
// for slave options just append _slave to your preferred database type.
$config['Database']['dbtype'] = 'mysql';

// ****** DATABASE NAME ******
// This is the name of the database where your vBulletin will be located.
// This must be created by your webhost.
$config['Database']['dbname'] = 'hidden';

// ****** TABLE PREFIX ******
// Prefix that your vBulletin tables have in the database.
$config['Database']['tableprefix'] = '';

// ****** TECHNICAL EMAIL ADDRESS ******
// If any database errors occur, they will be emailed to the address specified here.
// Leave this blank to not send any emails when there is a database error.
$config['Database']['technicalemail'] = 'admin@musclediscussion.com';

// ****** FORCE EMPTY SQL MODE ******
// New versions of MySQL (4.1+) have introduced some behaviors that are
// incompatible with vBulletin. Setting this value to "true" disables those
// behaviors. You only need to modify this value if vBulletin recommends it.
$config['Database']['force_sql_mode'] = false;



// ****** MASTER DATABASE SERVER NAME AND PORT ******
// This is the hostname or IP address and port of the database server.
// If you are unsure of what to put here, leave the default values.
//
// Note: If you are using IIS 7+ and MySQL is on the same machine, you
// need to use 127.0.0.1 instead of localhost
$config['MasterServer']['servername'] = 'localhost';
$config['MasterServer']['port'] = 3306;

// ****** MASTER DATABASE USERNAME & PASSWORD ******
// This is the username and password you use to access MySQL.
// These must be obtained through your webhost.
$config['MasterServer']['username'] = 'hidden';
$config['MasterServer']['password'] = 'hidden';

// ****** MASTER DATABASE PERSISTENT CONNECTIONS ******
// This option allows you to turn persistent connections to MySQL on or off.
// The difference in performance is negligible for all but the largest boards.
// If you are unsure what this should be, leave it off. (0 = off; 1 = on)
$config['MasterServer']['usepconnect'] = 0;



// ****** SLAVE DATABASE CONFIGURATION ******
// If you have multiple database backends, this is the information for your slave
// server. If you are not 100% sure you need to fill in this information,
// do not change any of the values here.
$config['SlaveServer']['servername'] = '';
$config['SlaveServer']['port'] = 3306;
$config['SlaveServer']['username'] = '';
$config['SlaveServer']['password'] = '';
$config['SlaveServer']['usepconnect'] = 0;



// ****** PATH TO ADMIN & MODERATOR CONTROL PANELS ******
// This setting allows you to change the name of the folders that the admin and
// moderator control panels reside in. You may wish to do this for security purposes.
// Please note that if you change the name of the directory here, you will still need
// to manually change the name of the directory on the server.
$config['Misc']['admincpdir'] = 'admincp';
$config['Misc']['modcpdir'] = 'modcp';

// Prefix that all vBulletin cookies will have
// Keep this short and only use numbers and letters, i.e. 1-9 and a-Z
$config['Misc']['cookieprefix'] = 'bb';

// ******** FULL PATH TO FORUMS DIRECTORY ******
// On a few systems it may be necessary to input the full path to your forums directory
// for vBulletin to function normally. You can ignore this setting unless vBulletin
// tells you to fill this in. Do not include a trailing slash!
// Example Unix:
// $config['Misc']['forumpath'] = '/home/users/public_html/forums';
// Example Win32:
// $config['Misc']['forumpath'] = 'c:\program files\apache group\apache\htdocs\vb3';
$config['Misc']['forumpath'] = '';



// ****** USERS WITH ADMIN LOG VIEWING PERMISSIONS ******
// The users specified here will be allowed to view the admin log in the control panel.
// Users must be specified by *ID number* here. To obtain a user's ID number,
// view their profile via the control panel. If this is a new installation, leave
// the first user created will have a user ID of 1. Seperate each userid with a comma.
$config['SpecialUsers']['canviewadminlog'] = '1';

// ****** USERS WITH ADMIN LOG PRUNING PERMISSIONS ******
// The users specified here will be allowed to remove ("prune") entries from the admin
// log. See the above entry for more information on the format.
$config['SpecialUsers']['canpruneadminlog'] = '1';

// ****** USERS WITH QUERY RUNNING PERMISSIONS ******
// The users specified here will be allowed to run queries from the control panel.
// See the above entries for more information on the format.
// Please note that the ability to run queries is quite powerful. You may wish
// to remove all user IDs from this list for security reasons.
$config['SpecialUsers']['canrunqueries'] = '';

// ****** UNDELETABLE / UNALTERABLE USERS ******
// The users specified here will not be deletable or alterable from the control panel by any users.
// To specify more than one user, separate userids with commas.
$config['SpecialUsers']['undeletableusers'] = '1';

// ****** SUPER ADMINISTRATORS ******
// The users specified below will have permission to access the administrator permissions
// page, which controls the permissions of other administrators
$config['SpecialUsers']['superadministrators'] = '1';

// ****** DATASTORE CACHE CONFIGURATION *****
// Here you can configure different methods for caching datastore items.
// vB_Datastore_Filecache - to use includes/datastore/datastore_cache.php
// vB_Datastore_APC - to use APC
// vB_Datastore_XCache - to use XCache
// vB_Datastore_Memcached - to use a Memcache server, more configuration below
// $config['Datastore']['class'] = 'vB_Datastore_Filecache';

// ******** DATASTORE PREFIX ******
// If you are using a PHP Caching system (APC, XCache, eAccelerator) with more
// than one set of forums installed on your host, you *may* need to use a prefix
// so that they do not try to use the same variable within the cache.
// This works in a similar manner to the database table prefix.
// $config['Datastore']['prefix'] = '';

// It is also necessary to specify the hostname or IP address and the port the server is listening on
/*
$config['Datastore']['class'] = 'vB_Datastore_Memcached';
$i = 0;
// First Server
$i++;
$config['Misc']['memcacheserver'][$i] = '127.0.0.1';
$config['Misc']['memcacheport'][$i] = 11211;
$config['Misc']['memcachepersistent'][$i] = true;
$config['Misc']['memcacheweight'][$i] = 1;
$config['Misc']['memcachetimeout'][$i] = 1;
$config['Misc']['memcacheretry_interval'][$i] = 15;
*/

// ****** The following options are only needed in special cases ******

// ****** MySQLI OPTIONS *****
// When using MySQL 4.1+, MySQLi should be used to connect to the database.
// If you need to set the default connection charset because your database
// is using a charset other than latin1, you can set the charset here.
// If you don't set the charset to be the same as your database, you
// may receive collation errors. Ignore this setting unless you
// are sure you need to use it.
// $config['Mysqli']['charset'] = 'utf8';

// Optionally, PHP can be instructed to set connection parameters by reading from the
// file named in 'ini_file'. Please use a full path to the file.
// Example:
// $config['Mysqli']['ini_file'] = 'c:\program files\MySQL\MySQL Server 4.1\my.ini';
//$config['Mysqli']['ini_file'] = '';

// Image Processing Options
// Images that exceed either dimension below will not be resized by vBulletin. If you need to resize larger images, alter these settings.
$config['Misc']['maxwidth'] = 2592;
$config['Misc']['maxheight'] = 1944;

/*================================================= =====================*\
|| ################################################## ##################
|| # Downloaded: 01:59, Wed Jul 20th 2011
|| # CVS: $RCSfile$ - $Revision: 39199 $
|| ################################################## ##################
\*================================================ ======================*/

--------------- Added 1357945729 at 1357945729 ---------------

This seems to be more serious issue here

Fatal error: Call to undefined method stdClass::set() in /home/muscledi/public_html/includes/functions.php on line 7401

final kaoss
01-11-2013, 10:30 PM
as was said...

you end up with an unseen BOM at the beginning of the script.

Use something like notepad ++ or editplus.

kh99
01-11-2013, 10:43 PM
As a couple of people have mentioned, you should make sure your config.php is OK by starting with a fresh copy (or the one from the old server) and using a programming editor to make changes (you say you didn't chnage any of the files, but wouldn't you have to change config.php if you moved servers?). The reason the original error says "unable to add cookies" is because they cannot be added to the header once any output has been sent, and the hidden character at the beginning of config.php causes output (this is a common error message that's been seen here many times, that's why everyone's so sure what the problem is). How did you manage to change the cookie prefix if you were getting that error?

I don't know what's causing that other error - which version of vbulletin are you running?

final kaoss
01-11-2013, 10:46 PM
As for the other error, read this.

Author: Gez Lemon

Yesterday, I stumbled across a problem when saving files in UTF format. When the script is copied to the server, I received a warning stating that the headers could not be modified as they had already been sent. I was sure that the headers hadn't already been written, but as far as PHP was concerned, they had. Having argued unsuccessfully with machines in the past, I decided to believe it, but couldn't understand how they could have been written. Saving the same file in regular ANSI solved the header problem, but the characters didn't display correctly, as they were no longer encoded correctly.

Simon Carlisle emailed me a link to a document called, Guide To Unicode , which mentions the type of problem I encountered in Part 3 of the article . The article mentions that if a UTF file is incorrectly declared as ISO-8859-1 by the HTTP response headers, a Byte Order Mark (BOM) will be interpreted as data by Apache, by which time the headers should have been written; hence the warnings I was receiving. What I couldn't understand is why the HTTP headers were incorrectly declaring ISO-8859-1.

The BOM consists of three bytes to distinguish the big endian and little endian byte order for UTF-16. As there's no requirement for UTF-8 to distinguish between big endian and little endian byte order, there's no reason to include a BOM; particularly if it's being interpreted as data on the server. Stupidly, my editor of choice is Notepad, which doesn't have an option to save as UTF without a BOM. In a desperate attempt, I wrote a simple script to remove the first three-bytes from the UTF file, to see if the BOM was definitely the problem in my case.

<?php

musclediscussio
01-11-2013, 10:51 PM
I have reuploaded every single file by making a zip from previous server and deleting every single file on the new server and than extracting the zip onto the new one but i think my real issue is with the 2nd error i posted not with the first one.

http://www.musclediscussion.com/index.php?styleid=6

http://www.musclediscussion.com/forumdisplay.php?f=29

kh99
01-11-2013, 11:00 PM
That error, on the other hand, is one I don't remember ever seeing before.

As far as I can determine, that error means an object didn't get created like it should have. I'm not sure which object it is because in vb4.2.0PL3 there's no call to set() on that line.

If you're moving to a new server, wouldn't you have to edit the details in config.php? I would think that most of the time the database connection info would change.

musclediscussio
01-11-2013, 11:01 PM
As for the other error, read this.

You might be right because using firebug tell shows me this 
In html for the forum display page

How do i look in which file it is?

--------------- Added 1357949437 at 1357949437 ---------------

Error gone now. Very good article there bro. Helped me to disable bom in notepad++ and my issue was gone.

--------------- Added 1357950245 at 1357950245 ---------------

Can some one guide me why only 1 light theme is working fine and not others?

--------------- Added 1357953064 at 1357953064 ---------------

Thank You for the solution guys Thank You very much.

I just have one more issue right now whenever i rebuild style or any of the module does it destroys and deletes threadbit templates and several other.
Why is this happening?

--------------- Added 1357954159 at 1357954159 ---------------

I took a backup of template table and than rebuild templates. Site started to look shitty than reloaded template.sql to the db but it still looks shitty and missing a hell lot of template groups.

Does anyone have suggestions?