Include ne fonctionne pas ?

Résolu/Fermé
Shidoo - Modifié le 2 juil. 2017 à 15:13
yg_be Messages postés 22729 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 - 2 juil. 2017 à 16:13
Bonjour,

J'ai un concept de site internet un peu spécial, cependant, je ne parviens pas à déterminer la source de mon problème.

http://image.noelshack.com/fichiers/2017/26/7/1499000509-sans-titre.png

Je vous donne le lien de cette image pour comprendre la structure de mon site.

En faite, tout se passe parfaitement, jusqu'à la croix rouge indiquée. La page fonctionne parfaitement cependant, je ne peux pas interagir avec les pages que j'ai "include". Ma base de donnée ne fonctionne pas ou les fonctions que j'ai me retourne des erreurs comme ceci :


Fatal error: Call to undefined function verif_auth() in C:\xampp\htdocs\projet\views\accueil.php on line 3


Ce qui m'étonne c'est que si j'essais de déclarer cette fonction, il me fait comprendre que celle-ci existe déjà. Donc l' "inclusion" s'effectue bel et bien mais à moitié ? ...

Bonne journée, merci

5 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
2 juil. 2017 à 15:21
Bonjour

Sans voir ton code... impossible de t'aider
0
J'ai mis mon code ci-dessous :x
0
yg_be Messages postés 22729 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
2 juil. 2017 à 15:38
bonjour,
tu appelles verif_auth() à partir de accueil.php.
y-a-t'il des includes dans accueil.php?
ce que tu montres en "Résultat", où le vois-tu?
0
J'ai mis mon code ci-dessous, je pensais facilité la compréhension de celui-ci par une image simple mais bon ^^, ce que j'appelle résultat c'est ma page chargé sur un navigateur chrome en localhost
0
index.php

<!doctype html>
<html lang="fr">

<head>

<title>a</title>
<meta charset="UTF-8">

<!-- chargement de...
jquery
bootstrap
-->
<script src="https://code.jquery.com/jquery-2.2.4.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>

<!-- chargement de...
services
controleur
css
-->
<script src="js/services/httpServ.js"></script>
<script src="js/controllers/indexCtrl.js"></script>
<link rel="stylesheet" href="css/main.css">

</head>

<body>

<?php
session_start();
include("includes/database.php");
include("includes/init.php");
include("views/menu.php");
?>

<div id="conteneur" class="container">
<div id="view" class="col-sm-12"></div>
</div>
</body>

</html>


httpServ.js

var httpServ = (function () {

function _chargerVue(nomVue) {
var nomFichierHtml = 'views/' + nomVue + '.php';
var nomFichierCtrl = 'js/controllers/' + nomVue + 'Ctrl.js';

$('#view').load(nomFichierHtml, function () {
console.debug(nomFichierHtml + ' OK !');

$.getScript(nomFichierCtrl, function () {
console.debug(nomFichierCtrl + ' OK !');
});

});
}

return{
chargerVue: _chargerVue
};
})();


indexCtrl.js

var indexCtrl = (function () {
$(document).ready(function () {
if (httpServ) {
httpServ.chargerVue("accueil");
}
});
})();


accueil.php

<!DOCTYPE html>
<div id="accueil"><?php
if (!verif_auth(INSCRIT)) erreur(ERR_IS_NOT_CO);
?>
</div>


init.php
<?php 
include("./includes/functions.php");
?>


functions.php

function verif_auth($auth_necessaire)
{
$level=(isset($_SESSION['level']))?$_SESSION['level']:1;
return ($auth_necessaire <= intval($level));
}


Mon erreur
Fatal error: Call to undefined function verif_auth() in C:\xampp\htdocs\ANIME STORAGE\views\accueil.php on line 3
0
yg_be Messages postés 22729 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
2 juil. 2017 à 15:44
je suggère d'ajouter
session_start();
include("includes/init.php");

dans
accueil.php
0
Mais je le déclare déjà dans index.php
accueil est chargé grâce à indexCtrl.js dans index.php (dans la balise <div id="view"/>)
0
yg_be Messages postés 22729 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477 > Shidoo
2 juil. 2017 à 16:09
quand accueil.php est exécuté, il ne sait pas grâce à quoi il a été appelé.
0
Je l'ai fais et sa semble fonctionner (j'ai d'autre erreur qui ne concerne pas le problème mais je vais pouvoir m'en sortir)

Cependant, j'aimerais tout de même rester sur mon idée de base, c'est à dire garder mes includes dans index.php pour ne pas avoir à les rappeler dans chacune de mes pages accueil.php / contact.php etc...

Et normalement ça devrait fonctionner car la base c'est index.php mais grâce à ma fonction js chargerVue() je charge le contenu de la page accueil dans index.php :/
0
yg_be Messages postés 22729 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477 > Shidoo
2 juil. 2017 à 16:13
je pense que ton idée de base est incorrecte.
chacun des appels à un url d'un site est indépendant des autres appels.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
2 juil. 2017 à 16:05
Bonjour,

Je confirme la réponse de yg_be.
Car .. tu passes par un LOAD (javascript) pour charger ta page ....
Sauf que, le load ne transmet pas les variables ni les "fonctions" vers ta page .....
Un load (javascript...) ne se comporte pas comme un include php !

Il faut donc que dans ta page appelée (ici accueil.php) il y ait également les includes.

0
D'accord, c'est bien dommage, car sa aurait été pratique :/
Il me semblait qu'un truc comme ça m'en empêchait mais sans le connaître, je ne pouvais y mettre la main dessus :/

Merci beaucoup
0