Bonjour, j'ai une question à propos de la fonction include (ou require ou include_once, ou require_once) de php:

J'ai un fichier script.php qui contient diverses fonctions:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
<?php
function f1(){
   return 1;
}
function f2(){
   return 2;
}
?>
Depuis un fichier test.php, j'inclus script.php:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
<?php include('../include/script.php');//notez que script.php est un autre dossier?>
<html>
<head></head>
<body>Test<?php echo f1();?>
</body>
</html>
Tout cela fonctionne très bien.

Je voudrai maintenant pouvoir inclure mon script.php mais depuis son url,
j'ai donc créé et redirigé mon nom de domaine comme il faut et script.php est accessible: http://include.nomdedomaine.com/script.php
j'ai ensuite activé les paramètres allow_url_include et allow_url_fopen sur mon serveur (version php 5.6), en étant contient des problèmes de sécurité que cela pourrait engendrer.

Mais lorsque je modifie mon fichier test.php:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
<?php include('http://include.nomdedomaine.com/script.php');?>
<html>
<head></head>
<body>Test<?php echo f1();?>
</body>
</html>
j'ai le message d'erreur: Fatal error: call to undefined function f1()

J'ai effectué quelques tests:
en modifiant script.php ainsi:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
<?php
echo 'script';
function f1(){
   return 1;
}
function f2(){
   return 2;
}
?>
j'ai bien le mot script qui apparaît, mais ensuite, toujours le message d'erreur: Fatal error: call to undefined function f1()

J'ai essayé de remplacer mon include() par file_get_contents() et j'ai le même comportement

Le script.php serait exécuté et pas inséré ?

J'avoue ne pas comprendre. Auriez-vous une idée ?
Merci.