vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 Programming Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=15)
-   -   Issue with vBulletin php include on non vb page (https://vborg.vbsupport.ru/showthread.php?t=192803)

DandD 10-06-2008 12:14 AM

Issue with vBulletin php include on non vb page
 
We have a new site on which we use a php include to display calendar.php on the home page. It seems to work well with two exceptions. Fist, we noticed the calendar view links are not in the proper place and second, the user login status is incorrect (user is not shown as logged in when he is). These problems are on the home page (root folder - index.php), but the calendar.php page in the forum folder works correctly.

The site home page is: www.lahabraevents.com
The calendar page is: www.lahabraevents.com/forum/calendar.php

We suspect the problem is a sessions issue due to the home page being in the root folder rather than the forum folder, but we need help from someone a little more knowledgable. Any help is appreciated.

Lynne 10-06-2008 03:21 AM

Did you make sure to include the global.php in the page?

Marco van Herwaarden 10-06-2008 07:44 AM

Chdir() to the forum directory before including the calendar.php.

DandD 10-07-2008 03:37 AM

Thanks for the replies.

Lynne, yes we included global.php both on the page and it is also in the calendar.php include but no joy.

Marco, we tried using Chdir but we aren't familiar enough to know how to use it properly. If you could give us some guidance, that would be great. When we tried, we got the dreaded "Unable to add cookies, header already sent." message.

Thanks in advance for any help.

Marco van Herwaarden 10-07-2008 10:07 AM

PHP Code:

chdir('/path/to/your/forum/'); 


DandD 10-07-2008 03:32 PM

Quote:

Originally Posted by Marco van Herwaarden (Post 1639228)
PHP Code:

chdir('/path/to/your/forum/'); 


Hi Marco,

Thanks for the reply. Unfortunately, that is the code I have tried before in numerous variations along with other coded edits - full paths, relative paths, etc. - with no success. Either I still have the original problems at best, or worse, some sort of error code. Any further help is certainly appreciated. Here is the current code for the page (if I don't include the base href, I lose the CSS). BTW, this is a test page in the same directory as index.php. The url is http://www.lahabrevents.com/index-test.php.:

<base href="http://www.lahabraevents.com/forum/" />
<?php chdir('/forum/'); include ("http://www.lahabraevents.com/forum/calendar.php"); ?>

thanks,
David

Dismounted 10-08-2008 05:50 AM

Why do you include the whole calendar.php page - this will most likely create errors. either replicate calendar.php's code, or modify it to meet your needs.

DandD 10-08-2008 12:20 PM

Quote:

Originally Posted by Dismounted (Post 1640015)
Why do you include the whole calendar.php page - this will most likely create errors. either replicate calendar.php's code, or modify it to meet your needs.

Hi Dismounted,

Thanks for the thoughts. Admittedly I am a novice, so please bear with me. It seems the problem is due to relative paths in all the files. The site home page (the page in question) is in the root folder. The calendar.php file is in the /forum/ folder. If I understand your suggestion correctly, I can copy the calendar.php code into the home page rather than using an include. I tried this and modified the paths on all the includes for that file accordingly. But we then have the same problem with the first file called down the line - in this case my modified code can now find /forum/global.php but returns an error because /includes/init.php can't be found. I would then need to modify the path in global.php and so on back to who knows where. That seems more than a little convoluted, not to mention opening the door to other issues.

Hopefully I am missing something simple. As you can tell I could really use some guidance.

Thanks for any help.
David
:eek:

noppid 10-08-2008 01:29 PM

preface urls in your templates as...

HTML Code:

$vboptions[bburl]
Maybe?

DandD 10-08-2008 04:55 PM

Quote:

Originally Posted by noppid (Post 1640261)
preface urls in your templates as...

HTML Code:

$vboptions[bburl]
Maybe?

Hi noppid,

Thanks for that. Tried it with same result. It appears I would need to modify all the include files and still not sure if that would work.

David

noppid 10-08-2008 05:00 PM

Then you need something like in vBa CMPS that does a search and replace I guess.

Dismounted 10-09-2008 02:49 AM

Quote:

Originally Posted by DandD (Post 1640236)
Hi Dismounted,

Thanks for the thoughts. Admittedly I am a novice, so please bear with me. It seems the problem is due to relative paths in all the files. The site home page (the page in question) is in the root folder. The calendar.php file is in the /forum/ folder. If I understand your suggestion correctly, I can copy the calendar.php code into the home page rather than using an include. I tried this and modified the paths on all the includes for that file accordingly. But we then have the same problem with the first file called down the line - in this case my modified code can now find /forum/global.php but returns an error because /includes/init.php can't be found. I would then need to modify the path in global.php and so on back to who knows where. That seems more than a little convoluted, not to mention opening the door to other issues.

Hopefully I am missing something simple. As you can tell I could really use some guidance.

Thanks for any help.
David
:eek:

As Marco has said - you can use chdir(). This will change the working directory to whatever you want.

DandD 10-09-2008 06:42 AM

Quote:

Originally Posted by Dismounted (Post 1640816)
As Marco has said - you can use chdir(). This will change the working directory to whatever you want.

Hi Dismounted,

I really appreciate your help. This has been quite strange. I was repeatedly getting error codes when trying to use the chdir but now I'm not and everything seems to be working with the exact same code I tried before. I mean exactly. There is one other problem now: I have additional html on the page after the php tags which simply does not show up now, not on the page, not on the page source code. Is there a trick I'm missing?

Edit: I spoke too soon. Before I would get the errors in Firefox immediately and eventually in Safari. Tonight all seemed well in Safari, even after clearing the cache. In Firefox, I again get the error message:

Unable to add cookies, header already sent.
File: /home/xxxx/public_html/index-test.php
Line: 2

Here is the entire code I'm trying now:

<base href="forum/" />
<?php chdir('forum/'); ?>
<?php include ("calendar.php"); ?>

(If I don't use the base href the css does not work. I even tried a link href for the .css file instead but it does not work.)

This is the page: http://www.lahabraevents.com/index-test.php

I feel like I am going crazy. Obviously, I could use any help you could offer. Much thanks.
David

Dismounted 10-09-2008 07:04 AM

Add your base element in the headinclude template, and use an absolute URL (http://www.site.com/forum). Use absolute paths (i.e. /home/user/public_html) for chdir().

DandD 10-09-2008 08:51 AM

Quote:

Originally Posted by Dismounted (Post 1640892)
Add your base element in the headinclude template, and use an absolute URL (http://www.site.com/forum). Use absolute paths (i.e. /home/user/public_html) for chdir().

Dismounted,

I feel like I should apologize for taking your time. You have been most gracious. I would like to think we are making progress. I added the base element to the headinclude template using the absolute URL as suggested. I added to the index-test.php page:

chdir('/home/xxxx/public_html/forum')

The CSS worked in Safari but not Firefox on the index page. I added a link href to the .css file in the index page and now that works (I had to use the absolute URL, relative did not work).

I no longer get error messages and my html footer now displays again. Unfortunately, the original issue remains. The user login status and the calendar view links do not display correctly. I am wondering if this is related to the include itself. If I use a relative path, the page does not work, I only get error codes. The code now is:

include ("http://www.lahabraevents.com/forum/calendar.php");

If you have a magic wand to make this work, I would be most appreciative.

Thanks again,
David

Dismounted 10-09-2008 09:15 AM

And the errors are?...

DandD 10-09-2008 04:58 PM

Quote:

Originally Posted by Dismounted (Post 1640945)
And the errors are?...

With this current code, no errors but still the original issues:

headinclude
base href="http://www.lahabraevents.com/forum/"

index-test.php
chdir('/home/xxxx/public_html/forum')

link href="http://www.lahabraevents.com/forum/clientscript/vbulletin_css/style-b391d83b-00002.css" rel="stylesheet" type="text/css"

include ("http://www.lahabraevents.com/forum/calendar.php");

Error
If I change the include to a relative path, I get the same errors I have been fighting.

include ("calendar.php");

Error:
Unable to add cookies, header already sent.
File: /home/xxxx/public_html/index-test.php
Line: 7

Hopefully I am missing something simple.

Thanks again,
David

Lynne 10-09-2008 05:18 PM

It is very hard to tell what you have done since you are not using the php or html tags to quote exactly what you code is. One thing I have noticed it your chdir is not ending in a slash and then your include is not starting with a slash. Perhaps that is a problem? I would try:

PHP Code:

chdir('/home/xxxx/public_html/forum');
include (
"./calendar.php"); 


DandD 10-09-2008 06:12 PM

Quote:

Originally Posted by Lynne (Post 1641247)
It is very hard to tell what you have done since you are not using the php or html tags to quote exactly what you code is. One thing I have noticed it your chdir is not ending in a slash and then your include is not starting with a slash. Perhaps that is a problem? I would try:

PHP Code:

chdir('/home/xxxx/public_html/forum');
include (
"./calendar.php"); 


Hi Lynne,

Thanks for the suggestion. I have tried so many variations I have ended up going in circles. The above gives the same error code. If I add a slash to the end of the chdir path and use any relative path variation for the include, same error. If I add a slash to the chdir path and use the absolute path for the include, no error but the original issue exists. Examples:

1
PHP Code:

chdir('/home/xxxx/public_html/forum'); 

PHP Code:

include ("calendar.php"); 

Error
Unable to add cookies, header already sent.
File: /home/xxxx/public_html/index-test.php
Line: 7

2
PHP Code:

chdir('/home/xxxx/public_html/forum'); 

PHP Code:

include ("/calendar.php"); 

Error
Warning: main(/calendar.php) [function.main]: failed to open stream: No such file or directory in /home/xxxx/public_html/index-test.php on line 8

Warning: main(/calendar.php) [function.main]: failed to open stream: No such file or directory in /home/xxxx/public_html/index-test.php on line 8

Warning: main() [function.include]: Failed opening '/calendar.php' for inclusion (include_path='.:/usr/lib/php') in /home/xxxx/public_html/index-test.php on line 8

3
PHP Code:

chdir('/home/xxxx/public_html/forum'

;
PHP Code:

include ("./calendar.php"); 

Error
Unable to add cookies, header already sent.
File: /home/xxxx/public_html/index-test.php
Line: 7

4
PHP Code:

chdir('/home/xxxx/public_html/forum'); 

PHP Code:

include ("/home/xxxx/public_html/forum/calendar.php"); 

Error
Unable to add cookies, header already sent.
File: /home/xxxx/public_html/index-test.php
Line: 7

5
PHP Code:

chdir('/home/xxxx/public_html/forum'); 

PHP Code:

include ("http://www.lahabraevents.com/forum/calendar.php"); 

Page displays, no errors, but original issues unresolved.

thanks,
David

Lynne 10-09-2008 08:59 PM

But, what is your entire code? Unable to add cookies usually means you have it doing 'header-type' stuff twice. Once you start to write your page, you can't go back and try to set a cookie again. So, it could be that you are doing things out-of-order in your page. You may have to try rearranging your php.

Dismounted 10-10-2008 05:09 AM

"Unable to add cookies" means you have sent output to the browser before the script could send cookie headers. Whitespace is considered output.

Marco van Herwaarden 10-10-2008 08:56 AM

Please also post the contents of index-test.php.

DandD 10-10-2008 11:44 PM

Hey guys,

Thanks to all of you for your continued support. I've stripped down the code to the bare minimum. Currently this is the entire code for the index-test.php page:

=========
<?php chdir('/home/xxxx/public_html/forum'); ?>
<link href="http://www.lahabraevents.com/forum/clientscript/vbulletin_css/style-b391d83b-00002.css" rel="stylesheet" type="text/css">
<?php include ("http://www.lahabraevents.com/forum/calendar.php"); ?>
=========

As previously suggested I added to the headinclude template:

=========
base href="http://www.lahabraevents.com/forum/"
=========

I've tried various combinations of code, changing the order, making sure to delete white space, etc. but still can't get this to work. (I have also tried putting the two php code elements within the same php tags with no difference. The reason they are separate is I need to use some table tags for layout.) As the code is above, the calendar loads on the page and there are no error codes but the login status and calendar view links are not correct. If I make the include path relative ("calendar.php"), we get the error:

"Unable to add cookies, header already sent.
File: /home/xxxx/public_html/index-test.php
Line: 3"

I understand the idea there may be conflict due to duplicate header calls. I just don't know how to avoid it. As Dismounted previously suggested, I've tried using the calendar.php code on the index page rather than using an include but I don't know how to delete the header call - IF that is what I need to do.

Once again, I appreciate any other ideas or suggestons.
David

Dismounted 10-11-2008 04:12 AM

In your code:
Code:

<?php chdir('/home/xxxx/public_html/forum'); ?>
<link href="http://www.lahabraevents.com/forum/clientscript/vbulletin_css/style-b391d83b-00002.css" rel="stylesheet" type="text/css">
<?php include ("http://www.lahabraevents.com/forum/calendar.php"); ?>

Your second line is output. global.php (which is included in calendar.php), will most likely set cookies. That can't happen because you've already sent output to the browser.

DandD 10-11-2008 06:10 AM

Quote:

Originally Posted by Dismounted (Post 1642443)
In your code:
Code:

<?php chdir('/home/xxxx/public_html/forum'); ?>
<link href="http://www.lahabraevents.com/forum/clientscript/vbulletin_css/style-b391d83b-00002.css" rel="stylesheet" type="text/css">
<?php include ("http://www.lahabraevents.com/forum/calendar.php"); ?>

Your second line is output. global.php (which is included in calendar.php), will most likely set cookies. That can't happen because you've already sent output to the browser.

By the second line, I assume you mean the link href code. After more testing I can get things to work but it appears I cannot have ANY html between the two above lines of php, not even some table tags where I wanted to place the include file. And any html on the page after the php is ignored - my added footer does not display. Not the end of the world - at least we have fixed the main issue.

Thanks again everyone for all the help. I really do appreciate it.

David

Dismounted 10-11-2008 10:41 AM

Quote:

Originally Posted by DandD (Post 1642482)
By the second line, I assume you mean the link href code. After more testing I can get things to work but it appears I cannot have ANY html between the two above lines of php, not even some table tags where I wanted to place the include file.

That is correct. Any character sent to the browser is considered output. HTML is sent directly to the browser.


All times are GMT. The time now is 08:04 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.03109 seconds
  • Memory Usage 1,832KB
  • 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_code_printable
  • (2)bbcode_html_printable
  • (14)bbcode_php_printable
  • (10)bbcode_quote_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (26)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