croco

  • Nombre de sujets
    5
  • Nombre de messages
    19
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses derniers messages sur les forums

croco
le 08/12/2006 à 22:19
txt qui va, php qui ne va pas
précision :

j'ai remplacé les :
$url=$_SERVER["HTTP_HOST"];
$chemin_racine="http://".$url."";
...
include $chemin_racine."/machin/truc/fichier.php";

par des :
$chemin_racine=$_SERVER['DOCUMENT_ROOT'];
...
include $chemin_racine."/machin/truc/fichier.php";

Mais ça ne suffit pas.

Ca passe avec
include "fichier.php"; // si l'appelant et l'appelé sont dans le même rép, bien sûr


J'oublie quelque chose ?
croco
le 08/12/2006 à 22:10
txt qui va, php qui ne va pas
Ok, donc ma réticence à laisser des fichiers en .txt était sur la bonne voie, puisque c'est précisément parce que les .txt sont édités in extenso via l'url que ça se passe bien dans les include. Et c'est parce que ça ne se passe pas bien avec des .php que c'est justement intéressant (l'indiscret qui cible l'url d'un fichier php de traitement ne verra rien).
Si j'ai bien compris...

Le truc, c'est de ne pas oublier que même si l'appelant et l'appelé sont sur le même serveur, une fois qu'on passe par http://... on sort pour rerentrer.
Si j'ai bien compris...

Je vais essayer de revenir à des chemins relatifs locaux autant que possible et sur les cas simples, si je m'enlise dans les pages plus complexes je mettrai le code impliqué.

SI j'ai écrit une (des ?) co******s, merci de me le dire (avec ou sans ironie).

En tous cas merci pour cet éclairage sur la différence de php entre local et disatnt.
croco
le 08/12/2006 à 21:24
txt qui va, php qui ne va pas
Je sais, mais je voulais éviter de noyer la page sous des codes. Je vais voir si je peux donner des exemples pas trop gros.

Par rapport à ce qui était dit, est-ce que la différence entre un fichier txt inclus et un php inclus, ayant rigoureusement le même contenu, c'est que :
le xxx.txt inclus est copié/collé avant d'être interprété, alors le xxx.php inclus est interprété avant que le résultat ne soit copié/collé ?

En effet, si je fais le test avec une variable locale définie dans le fichier appelant mais pas dans le fichier appelé, en .txt c'est ok, et en .php ça ne retrouve pas la valeur de la variable.

Si c'est exact, alors une $_SESSION devrait être reconnue dès lors que session_start est présent, c'est là que ça coince.
croco
le 08/12/2006 à 20:18
txt qui va, php qui ne va pas
Soit.
Et pour que la pédagogie soit constructive, quelle est la manière propre ?

Cela signifie-t-il qu'il n'est pas possible d'avoir dans un fichier .php inclus du code comportant des variables $_SESSION ?
Réponse interdite : "t'as qu'à mettre un session_start dans les fichiers inclus". Ca, comme je l'ai écrit, j'ai déjà essayé sans résultat.

A lire ce qu'a écrit Lupus, j'en déduis que nombre d'informations sur le PHP sont incomplètes (voire, pas propre, mais scandaleusement etc), puisque contrairement à ce que j'ai lu en divers endroits, include n'est pas qu'un copier/coller de code mis ailleurs.
croco
le 08/12/2006 à 13:30
txt qui va, php qui ne va pas
Peut-être faut-il poser mon problème autrement :

y a-t-il dans PHP, une fiddérence de traitement selon qu'un fichier a l'extension php ou l'extension txt, pour un contenu strictement identique ?
croco
le 08/12/2006 à 13:11
txt qui va, php qui ne va pas
ben non, si c'était le cas que le fichier s'appelle toto.txt ou toto.php ça ne changerait rien.
croco
le 08/12/2006 à 11:18
txt qui va, php qui ne va pas
Vérification faite, ça ne résoud pas mon problème.

Je vais tout de même passer de $_SERVER["HTTP_HOST"] à $_SERVER['DOCUMENT_ROOT'] parce que c'est plus propre, mais si je remplace les .txt par .php, j'ai toujours ma $_SESSION['machin'] qui s'évapore !
croco
le 08/12/2006 à 10:46
txt qui va, php qui ne va pas
Merci pour les conseils, je vais vérifier.

Mais, avez-vous l'explication sur le fait que ce qui bloque en .php passe en .txt, dès lors que l'on utilise une adresse en url plutôt qu'en local ? (par curiosité)

Pour session_start, oui, j'ai essayé avec et sans, ça ne change rien (au demeurant, s'agissant d'un include, l'important n'est-il pas que le session-start soit dans le fichier qui appelle l'include ?)
croco
le 08/12/2006 à 00:56
txt qui va, php qui ne va pas
Tout d'abord bonjour, puisque je viens de m'inscrire.

Pour essayer de faire bref :
j'ai des problèmes avec des fichiers "cibles" xxx.php, alors qu'en le nommant xxx.txt le problème n'apparait pas.
Exemple :
Dans un fichier index.php, accompagné de fichiers css, plusieurs éléments sont appelés, tels que :

<?php
$url=$_SERVER["HTTP_HOST"];
$chemin_racine="http://".$url."";
?>

(ça c'est pour que vous sachiez ce que représente $chemin_racine)

<?php include $chemin_racine."/site/sommaire.php"; php ?>


Le problème apparait si dans le code passé par "include" j'ai besoin de récupérer une variable $_SESSION['blabla"], car la session (ouverte, bien sûr) se perd en route : vérification faite, la variable est vide.

Autre exemple, dans un élément de page chargé dans les mêmes conditions servant à fermer une session, la fonction session_destroy(); renvoie un message indiquant que je cherche à fermer un session qui n'existe pas.

Or, si je renomme ces fichiers en .txt (sommaire.php pour le premier exemple), tout rentre dans l'ordre, sans rien changer au contenu.
COmme il s'agit d'include - c'est-à-dire sauf erreur rien d'autre qu'une sorte de copier/coller automatique, je ne comprends pas et ne parviens pas à trouver la solution.

Si je " m'amuse " à faire depuis ma page d'index un include sur une partie nommée en .txt et une autre en .php, les deux affichant par exemple le pseudo de la session ouverte, la partie txt affiche le pseudo, la partie php reste muette.

Et, ça me gène de laisser des fichiers .txt dont le contenu est édité si on met leur chemin exact en url.

J'ai l'impression de tourner autour d'un truc évident, mais je ne trouve pas.

Merci d'avance si quelqu'un peut m'aider.
LoadingChargement en cours