[PHP-JS] [Débutant] Variables et inclusion
Bonjour à tous,
je sais qu'une discussion existe déjà sur ce sujet ici, mais pour être honnête, je comprends pas bien cette histoire de "redéfinition de variable". Le but de la manoeuvre : un script "en_tete.inc.php" qui détermine si le client prend Ajax ou pas, et en fonction du résultat réécrit les liens des scripts appelant à partir d'extraction mysql.
en_tete.inc.php :
Code:
$lien = "appel_panier.inc.php5?titre=$titre&auteur=$auteur&prix=$prix&qty=1&action=1";
pour php et
Code:
$lien = "<a href=\"javascript:ajouterPanier($titre, $auteur, $prix, '1')\"><font color=\"#FFCC33\"><b>Ajoutez au panier</b></font></a>";
pour javascript.
dans accueil.php par exemple :
Code:
include_once('./inc/en_tete.inc.php)';
puis :
extraction de $auteur, $prix et $titre, puis :
Je pensais que php résolvait tous les includes, et qu'au final on se retrouve avec un seul script où les redéfinitions sont possibles. $auteur, $prix et $titre sont bien définis après extraction mais php semble se "tromper" de variable et ne résoud pas celles incluses dans . Même en les définissant avant l'inclusion ça ne marche pas. Je ne comprends pas pourquoi la déclaration en global changerait quelque chose, puisqu'aucune de mes variables n'est au final dans une fonction.
Merci par avance de votre aide
Frédéric
Re:Re:[Débutant]Variables et inclusion
Bonjour,
Oui c'est ça.
J'envoie un test javascript sur toute page visitée, puis récupère une variable de session $_SESSION['javascript'] et $_SESSION['xmlHttpRequest'] (si le POST que je lance en ajax a bien réussi) . Ce test est écrit dans 'en_tete.inc.php' et est inclus dans toutes les pages (vérification à chaque fois du contenu de $_SESSION['test_javascript'] qui détermine si oui ou non le test a eu lieu et lancement du test si besoin). En fonction du résultat du test "ajax", en_tete.inc.php définit la variable $lien (soit php, soit javascript). Le problème est là : $lien utilise des variables ($auteur, $prix, $titre) qui ne seront définies que dans le script appelant (grâce à des requêtes mysql). Et même en définissant $auteur, $prix et $titre à null, avant l'inclusion (ce qui semble être la solution d'après Phill_S) rien ne bouge!
Merci de t'inquiéter de mon sort ;-)
(je peux t'envoyer le script complet si mon explication n'est pas claire)
A plus,
Frédéric
[Résolu]variables et inclusion
Bonjour,
une erreur toute bête :
avant l'inclusion la variable $lien est résolue en une chaîne, donc sans moyen de récupérer les trois variables $titre, $auteur et $prix par la suite.
Solution [que je dois à Rico] : une fonction définie dans $en_tete et appelée avec un paramètre $type (défini dans en_tete en fonction du test js ou php) depuis le script appelant.
Frédéric