php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #23821 Not requireing or including files
Submitted: 2003-05-26 18:53 UTC Modified: 2003-05-30 08:35 UTC
Votes:1
Avg. Score:5.0 ± 0.0
Reproduced:0 of 0 (0.0%)
From: admin at donelson dot net Assigned:
Status: Not a bug Package: Scripting Engine problem
PHP Version: 4.3.3-dev OS: Windows XP
Private report: No CVE-ID: None
 [2003-05-26 18:53 UTC] admin at donelson dot net
I saw in the docs that windows does not include http/ftp for some reason. Looking at the dates of the other simular messages I would think it would have been fixed by now.

Any way I wrote the code and uploaded it to my host which is a unix box with apache. When run it from my site it does not include / require the intended file.

Now, I use the Zend Studio and Integrated debugger, If I debug the page, localhost or remote windows or unix, IT WORKS!

Why is this? Do I have to have everyone that will visit my page download and install the Zend Debugger and debug my site to see it?

I have been stuck on this for months and monitoring for a fix or answer and nothing.

HELP!


btw heres some code and a URL so you can check it out.


http://www.donelson.net/InetX/test.php

Go here and you get this message:
Fatal error: Cannot instantiate non-existent class: iunknown in /home/andydonelson/www/InetX/test.php on line 5

Why? A file that does exist on the server is not being loaded. Here is the require() call rom test.php line 5:

require_once("http://www.donelson.net/InetX/Interface/IUnknown.php");

Purpose? no matter where you run this script, it will get this file from this location.

Remember, This code works on a windows XP Home machine when debugging the page with Zend Debugger, But it wont work if I just open a brower and visit the page. On windows or unix.

The debugger makes it work for windows (local) and unix (remote)

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2003-05-26 18:56 UTC] admin at donelson dot net
When you click on the require() link abovem it is including the " for some reason, just remove it from your address bar and hit enter, the file is there. It will show up as blank page because its a library file. No output.
 [2003-05-26 19:03 UTC] admin at donelson dot net
localhost is a Windows XP Home machine, running php 4.3.1 and Apache 2. The localhost file test.php requires the files needed from http://www.donelson.net/InetX/ and works great. The below URL is in the address bar from the Zend Debugger.

http://localhost/InetX/test.php?start_debug=1&debug_stop=1&debug_port=10000&debug_no_cache=1053993574959
 [2003-05-26 19:19 UTC] sniper@php.net
This bug has been fixed in CVS.

In case this was a PHP problem, snapshots of the sources are packaged
every three hours; this change will be in the next snapshot. You can
grab the snapshot at http://snaps.php.net/.
 
In case this was a documentation problem, the fix will show up soon at
http://www.php.net/manual/.

In case this was a PHP.net website problem, the change will show
up on the PHP.net site and on the mirror sites in short time.
 
Thank you for the report, and for helping us make PHP better.


 [2003-05-26 19:53 UTC] admin at donelson dot net
Thanks sniper, I went there and download/installed 4.3.3-dev. I get the samething on localhost, dont know on remote host. They only run the latest released stable versions :(

Everything is same as it was before. Any more ideas for me? I got an entire library that I am trying to get out but this needs to be fixed first.
 [2003-05-26 19:54 UTC] admin at donelson dot net
reopened.
 [2003-05-27 03:39 UTC] wez@php.net
Not enough information was provided for us to be able
to handle this bug. Please re-read the instructions at
http://bugs.php.net/how-to-report.php

If you can provide more information, feel free to add it
to this bug and change the status back to "Open".

Thank you for your interest in PHP.


We need a short, self contained reproducing script.

 [2003-05-28 13:45 UTC] admin at donelson dot net
Here is the scripts you requested. I had done as you asked and looked into reporting a bug
and here is the end result. This order.php reproduces the error perfectly. order.php is supposed to include McDonalds.php so it knows how to place and receive and order.



<?PHP /* save anywhere as order.php */

/*
Project:	PHPBug
File:		order.php
Purpose:	To order a Happy Meal from another server.
*/

/* error info from Windows:
	PHP Script Interpreter
	szAppName : php.exe     szAppVer : 4.3.3.3     szModName : php4ts.dll     
	szModVer : 4.3.3.3     offset : 000b2edf  
*/

// Enable first line below for local testing, 
// second URL local testing (not working), and third for actual usage (not Working)
// The support files are uploaded for testing purposes.
//require("phpBug/McDonalds.php");	// Works
//require("http://localhost/phpBug/McDonalds.php"); // Nope
require("http://www.donelson.net/phpBug/McDonalds.php"); // Nope

$meal = new HappyMeal(1);
$meal->Buy();

?>




<?php 
/* 
	This file included just so you can see the source. It is at
	http://www.donelson.net/phpBug/McDonalds.php
*/

// Enable first line below for local testing, 
// second URL local testing, and third for actual usage
// The support files are uploaded for testing purposes.
require("food.php");
//require("http://localhost/phpBug/food.php");
//require("http://www.donelson.net/phpBug/food.php");

class HappyMeal {
	var $m_meal = array();
	var $m_burger;
	var $m_side;
	var $m_drink;
	
	function HappyMeal($number=1) {
		$this->m_meal['burger'] = new Burger($number);
		$this->m_meal['side'] = new Side($number);
		$this->m_meal['drink'] = new Drink($number);
	}

	function Buy() {
		foreach ($this->m_meal as $item) {
		    echo sprintf("Preparing %s<br />",$item->Prepare());
		}	
	}

}

?>



<?php 
/* 
	This file included just so you can see the source. It is at
	http://www.donelson.net/phpBug/food.php
*/

class Item {
	var $name = '';	
	function Prepare() { return $this->name; }
}

class Burger extends Item {
	var $name = 'BigMAC';	
}

class Side extends Item {
	var $name = 'Fries';
}

class Drink extends Item {
	var $name = 'Dr Pepper';
}

?>
 [2003-05-30 01:16 UTC] keithm at aoeex dot com
This isn't a bug, but user error.  When includeing a file via URL, php will make a request the server just as a browser would.  Therefore, PHP will not have access to the acutual PHP code, but only what it outputs.  Inorder to make this work, either name your file something else so that the webserver doesn't parse it (.inc for example) or use local filesystem paths to include files and not URLs.
 [2003-05-30 08:35 UTC] iliaa@php.net
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to report
a bug at http://bugs.php.net/how-to-report.php

Read last user comment.
 
PHP Copyright © 2001-2025 The PHP Group
All rights reserved.
Last updated: Thu Jul 17 14:04:04 2025 UTC