Php include

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Maarten van Rijssel

Maarten van Rijssel

02/09/2015 14:41:38
Quote Anchor link
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?
 
PHP hulp

PHP hulp

02/12/2020 16:01:13
 
Thomas van den Heuvel

Thomas van den Heuvel

02/09/2015 14:43:45
Quote Anchor link
Zet het melden en weergeven van fouten aan en gebruik require(_once) in plaats van include.
 
Maarten van Rijssel

Maarten van Rijssel

02/09/2015 14:44:38
Quote Anchor link
Dat staat aan en require(_once) werkt ook niet
 
- SanThe -

- SanThe -

02/09/2015 14:56:15
Quote Anchor link
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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
?>
 
- Ariën -
Beheerder

- Ariën -

02/09/2015 14:59:22
Quote Anchor link
Als een include niet lukt, dan ligt dat vaak aan het pad, of in heel sommige gevallen de leesrechten van het bestand.
 
- SanThe -

- SanThe -

02/09/2015 15:02:01
Quote Anchor link
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.
 

02/09/2015 15:28:29
Quote Anchor link
In aanvulling op de laatste reactie van Aar, misschien ligt het aan de open_basedir lijst?
http://www.php.net/manual/en/ini.core.php#ini.open-basedir
Staat jouw te includen bestand in een pad dat is vermeld in die lijst?
 
Remco van der Velde

Remco van der Velde

03/09/2015 11:41:24
Quote Anchor link
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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
include __DIR__ . 'file.php'
gebruiken. Daarnaast zou je de file permissies weer goed moeten zetten 644 zou voldoende moeten zijn.
 

03/09/2015 14:53:56
Quote Anchor link
Nou, het punt is dat de vragensteller schrijft:
Quote:
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.
 
Remco van der Velde

Remco van der Velde

04/09/2015 17:04:10
Quote Anchor link
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
 
Frank Nietbelangrijk

Frank Nietbelangrijk

04/09/2015 19:22:51
Quote Anchor link
van windows naar linux misschien?

windows pad:

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

linux pad:

/submap/subsubmap/bestand.txt ( met normale slashes )
 
Thomas van den Heuvel

Thomas van den Heuvel

04/09/2015 19:49:14
Quote Anchor link
Het zou verdomd veel helpen als de topicstarter aangeeft:
- vanuit welk bestand hij iets aanroept (en hoe)
- waar het aangeroepen bestand zich bevindt

Anders kunnen we tot in den treure proberen te beredeneren waar het misgaat.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.