Include ne fonctionne pas ?

Résolu
Shidoo -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour

Sans voir ton code... impossible de t'aider
0
Shidoo
 
J'ai mis mon code ci-dessous :x
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
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
Shidoo
 
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
Shidoo
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
je suggère d'ajouter
session_start();
include("includes/init.php");

dans
accueil.php
0
Shidoo
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Shidoo
 
quand accueil.php est exécuté, il ne sait pas grâce à quoi il a été appelé.
0
Shidoo
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Shidoo
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
Shidoo
 
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