Paths are working on localhost but not on server

Viewed 533

enter image description here

This is structure I have. Page add-product.php is in folder public_html. Partial page ConnectQuery.php I need to access is in folder partial. My project worked fine on localhost with wamp. Now I uploaded it to server and pathing got screwed. Error I get:

Warning: include(/storage/ssd3/728/17657728/public_html/partial/ConnectQuery.php): failed to open stream: No such file or directory in /storage/ssd3/728/17657728/public_html/add-product.php on line 13

Line 13 in add-product.php is

include __DIR__ . "/partial/ConnectQuery.php";

EDIT: There is one more error

Warning: include(): Failed opening '/storage/ssd4/729/17661729/public_html/partial/ConnectQuery.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /storage/ssd4/729/17661729/public_html/add-product.php on line 13
6 Answers

Check the case in the spelling of the filename ConnectQuery.php. Is it maybe connectQuery.php (like you wrote in another question)? Or connectquery.php?

Windows ignores differences in the case of file names, Linux doesn't.

usually paths never work the same way unless the development machine and server OS are same and they handle directories and files the same way -

Say if your development machine is Windows your Drive C:// will be there its not the same in case of Linux and most of the servers are on linux and hence you're facing paths issue try using a path library in your case

in Node js there is path ; which will point to current directory from you're running your project and from there on the paths will work with no issues .

If you are using PHP <= 5.2 than you have to try as below

$dir = dirname(FILE); include($dir.'/partial/ConnectQuery.php');

Please try this and if you using some other php version than mention it here

I used to have problems with includes in my PHP projects between localhost and the actual server. I was able to get rid of this by using dirname(__FILE__). In your case you would use the following in your add-product.php

include dirname(__FILE__)."/partial/ConnectQuery.php";

This bypasses some weird standard include path errors by providing the full path of the current files directory.

I think this is all caused by directory separator issue.

Check the case of the ConnectQuery.php filename.

Windows is case-insensitive which means that WAMP will find a file named connectquery.php even if you requested CONNECTQUERY.php

Linux won't. If you request a file named CONNECTQUERY.php, it will search for this exact filename.

I advise you to adopt a convention : only lower-case letters for filenames. This will save you a lot of headaches.

Related