Fatal error: require_once(): Failed opening required 'Core.php'
ik gebruik een wegserver van Apache/2.4.18 en PHP/7.0.2 op mijn macbooktpro
Nu ben ik een cursus aan het volgen van udemy. maar op een punt komt ik een error tegen :
Fatal error: require_once(): Failed opening required 'Core.php'
kan dit aan de versie van php liggen ?
index.php
<script>
</script>
autoload.php
<script>
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
require_once('_config.php');
function __autoload($class_name) {
$class = explode("_", $class_name);
$path = implode("/", $class).".php";
require_once($path);
}
?>
require_once('_config.php');
function __autoload($class_name) {
$class = explode("_", $class_name);
$path = implode("/", $class).".php";
require_once($path);
}
?>
</script>
_config.php
<script>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
if(!isset($_SESSION)) {
session_start();
}
// site domain name with http
defined("SITE_URL")
|| define("SITE_URL", "http://".$_SERVER['SERVER_NAME']);
// directory separator
defined("DS")
|| define("DS", DIRECTORY_SEPARATOR);
// root path
defined("ROOT_PATH")
|| define("ROOT_PATH", realpath(dirname(__FILE__).DS."..".DS));
// classes folder
defined("CLASSES_DIR")
|| define("CLASSES_DIR", "classes");
// pages directory
defined("PAGES_DIR")
|| define("PAGES_DIR", "pages");
// modules folder
defined("MOD_DIR")
|| define("MOD_DIR", "mod");
// inc folder
defined("INC_DIR")
|| define("INC_DIR", "inc");
// template folder
defined("TEMPLATE_DIR")
|| define("TEMPLATE_DIR", "template");
// emails path
defined("EMAILS_PATH")
|| define("EMAILS_PATH", ROOT_PATH.DS."emails");
// catalogue images path
defined("CATALOGUE_PATH")
|| define("CATALOGUE_PATH", ROOT_PATH.DS."media".DS."catalogue");
// add all above directories to the include path
set_include_path(implode(PATH_SEPARATOR, array(
realpath(ROOT_PATH.DS.CLASSES_DIR),
realpath(ROOT_PATH.DS.PAGES_DIR),
realpath(ROOT_PATH.DS.MOD_DIR),
realpath(ROOT_PATH.DS.INC_DIR),
realpath(ROOT_PATH.DS.TEMPLATE_DIR),
get_include_path()
)));
?>
if(!isset($_SESSION)) {
session_start();
}
// site domain name with http
defined("SITE_URL")
|| define("SITE_URL", "http://".$_SERVER['SERVER_NAME']);
// directory separator
defined("DS")
|| define("DS", DIRECTORY_SEPARATOR);
// root path
defined("ROOT_PATH")
|| define("ROOT_PATH", realpath(dirname(__FILE__).DS."..".DS));
// classes folder
defined("CLASSES_DIR")
|| define("CLASSES_DIR", "classes");
// pages directory
defined("PAGES_DIR")
|| define("PAGES_DIR", "pages");
// modules folder
defined("MOD_DIR")
|| define("MOD_DIR", "mod");
// inc folder
defined("INC_DIR")
|| define("INC_DIR", "inc");
// template folder
defined("TEMPLATE_DIR")
|| define("TEMPLATE_DIR", "template");
// emails path
defined("EMAILS_PATH")
|| define("EMAILS_PATH", ROOT_PATH.DS."emails");
// catalogue images path
defined("CATALOGUE_PATH")
|| define("CATALOGUE_PATH", ROOT_PATH.DS."media".DS."catalogue");
// add all above directories to the include path
set_include_path(implode(PATH_SEPARATOR, array(
realpath(ROOT_PATH.DS.CLASSES_DIR),
realpath(ROOT_PATH.DS.PAGES_DIR),
realpath(ROOT_PATH.DS.MOD_DIR),
realpath(ROOT_PATH.DS.INC_DIR),
realpath(ROOT_PATH.DS.TEMPLATE_DIR),
get_include_path()
)));
?>
</script>
Core.php
<script>
Code (php)
</script>
Kan iemand mij hier bij helpen ?
met vriendelijke groeten
Johan
Toevoeging op 28/08/2016 12:08:14:
als ik deze uitvoer krijg ik de melding:
Warning: require_once(Core.php): failed to open stream: No such file or directory in /Users/JohanCuypers/Sites/Udemy/inc/autoload.php on line 7
Fatal error: require_once(): Failed opening required 'Core.php' (include_path='/Users/JohanCuypers/Sites/Udemy/classes:/Users/JohanCuypers/Sites/Udemy/pages:/Users/JohanCuypers/Sites/Udemy/mod:/Users/JohanCuypers/Sites/Udemy/inc:/Users/JohanCuypers/Sites/Udemy/template:.:/usr/local/php5/lib/php') in /Users/JohanCuypers/Sites/Udemy/inc/autoload.php on line 7
Met ../ kan je een map omhoog gaan.
Geef eens een print-screen van je mappenstructuur waarin BEIDE bestanden staan. Dus index.php en autoload.php
hoe kan ik een foto hierop zetten ? heb reeds een prinsscreen genomen
Ik zie core de ene keer met hoofdletter en dan weer met kleine letter.
classes
Core.php
Helper.php
css
core.css
invoice.css
dbase
ecommmerce.sql
emails
images
loadinfo.net.gif
sprite.png
inc
_config.php
autoload.php
media
catalogue
mod
pages
template
_footer.php
_header.php
daar ik al reeds gelezen had op internet dat dit kan zijn dat in php.ini ook verwezen wordt naar een config.php werd daar aangeraden de config.php naar _config.php
te hernoemen
Toevoeging op 28/08/2016 12:49:42:
zal mapjes met * aanduiden en submaps met ** en de files -
in de root heb ik volgende mappen
*classes
- Core.php
- Helper.php
*css
- core.css
- invoice.css
*dbase
- ecommmerce.sql
*emails
*images
-loadinfo.net.gif
-sprite.png
*inc
- _config.php
- autoload.php
*media
**catalogue
*mod
*pages
*template
- _footer.php
- _header.php
En zo werkt het op de server :
http://adoptive.esy.es/_core/
Gewijzigd op 28/08/2016 12:54:06 door Adoptive Solution
hier ook rekening mee?
Hou je volgens de cursus zou
set_include_path(implode(PATH_SEPARATOR, array(
realpath(ROOT_PATH.DS.CLASSES_DIR),
realpath(ROOT_PATH.DS.PAGES_DIR),
realpath(ROOT_PATH.DS.MOD_DIR),
realpath(ROOT_PATH.DS.INC_DIR),
realpath(ROOT_PATH.DS.TEMPLATE_DIR),
get_include_path()
)));
dit de folder meenemen ?
Toevoeging op 28/08/2016 12:59:15:
en inderdaad met de Core.php in the root te zetten werkt het . maar kan ik die ergens aanpassen dat die in de map classes ziet ?
<img>http://www.jcreations.be/img/Schermafbeelding.png</img>
http://localhost/_core/
http://localhost/~username/_core/
En met een symbolic link in Root naar de Sites map in de Thuismap :
http://localhost/username/_core/
Adoptive Solution op 28/08/2016 13:07:15:
heb je iets moeten aanpassen ?
- SanThe - op 28/08/2016 12:52:39:
Hou je hier ook rekening mee?
Quote:
Let op:
Als je in een bestand een ander bestand include, en in dat andere bestand wil je óók een include gebruiken, dan moet je de include in dat andere bestand zo instellen alsof het door het éérste bestand wordt geinclude.
Als je in een bestand een ander bestand include, en in dat andere bestand wil je óók een include gebruiken, dan moet je de include in dat andere bestand zo instellen alsof het door het éérste bestand wordt geinclude.
Quote:
heb je iets moeten aanpassen ?
Precies wat er staat : Core.php naar map classes verplaatst.
Toevoeging op 28/08/2016 13:41:34:
Ik heb niet alle bestanden dus ik weet niet wie/wat deze functie aanroept in autoload.php :
Misschien zit daar de fout.
Adoptive Solution op 28/08/2016 13:32:49:
Precies wat er staat : Core.php naar map classes verplaatst.
Quote:
heb je iets moeten aanpassen ?
Precies wat er staat : Core.php naar map classes verplaatst.
als ik dit doe krijg ik die error dus denk iets met instellen van de wegserver ?
er zijn nog ander die dit probleem hebben :> dit staat in de hulp van de instructor:
Hi Sebastian,
after setting config.php and Core class I tried running the app and got following error:
Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0
Fatal error: Unknown: Failed opening required '/opt/lampp/htdocs/ecommerce/index.php' (include_path='.:/opt/lampp/lib/php') in Unknown on line 0
what could be the possible falw??
not able to figure out!!
Follow Responses
Sebastian — Instructor · 2 years ago Answer
Hi Atul,
It looks like some conflict with your server setup and the include path.
Try to rename config.php file to _config.php and then change its name in the autoloader.php - where you require it - see if that works.
Maar als ik naam wijzig maak geen verschil
Toevoeging op 28/08/2016 17:44:01:
Na het installeren van MAMP pro werkt deze wel :)