Ik heb een website gemaakt op mijn localhost en daar werkte alles prima, maar zodra ik de website uploadde naar de webhost werkte ineens de 'include' function niet meer,
Ik heb al vanalles geprobeerd maar niets helpt
Het is gewoon een index.php bestand dus daar zal en niet aan liggen en de chmod is van alle bestanden en mappen 777.
Het rare is ook nog dat een aantal include functions wel werken en sommige niet.

wie o wie kan me helpen?
Zet het melden en weergeven van fouten aan en gebruik require(_once) in plaats van include.
Maarten van Rijssel op 02/09/2015 14:44:38

Dat staat aan ...


Dan krijg je toch een duidelijke melding te zien van wat er fout gaat.

<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>
Als een include niet lukt, dan ligt dat vaak aan het pad, of in heel sommige gevallen de leesrechten van het bestand.
Maarten van Rijssel op 02/09/2015 14:41:38

... de chmod is van alle bestanden en mappen 777.


Je hebt dus alle deuren en ramen opengezet voor eventuele kwaadwillenden. Slim.
Ik denk dat je het niet zo ver hoeft te zoeken (open basedir)

om te testen of het klopt wat je include / required:

ff een file_exists($url) op het te includen bestand.

Waarschijnlijk bestaat het bestand niet waar jij naar toe refereert.
Indien het in dezelfde directory staat kun je
include __DIR__ . 'file.php'
gebruiken. Daarnaast zou je de file permissies weer goed moeten zetten 644 zou voldoende moeten zijn.

Nou, het punt is dat de vragensteller schrijft:
Het rare is ook nog dat een aantal include functions wel werken en sommige niet.

En hij heeft al vanalles geprobeerd...
open_basedir is vrij normaal op (remote) systemen die niet volledig onder eigen beheer vallen, zoals een NAS van Synology. Maar dan kan je het vaak wel weer eenvoudig instellen.
wat eventueel ook nog zou kunnen is het volgende:

de owner:group is niet juist.

de web user is normaliter www-data:www-data en het zou kunnen zijn dat deze bij jou anders staan voor sommige bestanden waardoor de user www-data deze niet ziet. dit verander je door chown toe te passen via de terminal
van windows naar linux misschien?

windows pad:

C:\submap\subsubmap\bestand.txt ( met backslashes )

linux pad:

/submap/subsubmap/bestand.txt ( met normale slashes )

Reageren