8792 sujets
Hello,
Comme tu as pu le lire dans le sujet d'Annonce de ce salon, le but du forum Alsacréations n'est pas de répondre à des questions portant sur vos premiers pas en PHP, ou l'apprentissage des technologies serveurs en général, mais bien des interactions entre les langages serveurs et les Standards.
Je ne vais pas fermer ce sujet car des réponses pourraient t'être apportées, mais je préfère te signaler qu'il ne faut peut-être pas t'attendre à un miracle et qu'il serait préférable de consulter un forum dédié à PHP
Comme tu as pu le lire dans le sujet d'Annonce de ce salon, le but du forum Alsacréations n'est pas de répondre à des questions portant sur vos premiers pas en PHP, ou l'apprentissage des technologies serveurs en général, mais bien des interactions entre les langages serveurs et les Standards.
Je ne vais pas fermer ce sujet car des réponses pourraient t'être apportées, mais je préfère te signaler qu'il ne faut peut-être pas t'attendre à un miracle et qu'il serait préférable de consulter un forum dédié à PHP

Bonjour.
l'include, en php, se charge d'ouvrir un fichier et d'en recopier le contenu
à l'endroit où il est appelé.
la syntaxe est include "nom_fichier.ext"
Dans votre cas, vous ajoutez des paramètres normalement passé en "GET",
à l'aide du point d'interrogation et séparés par un &.
include("lettre.php?page=lettre&id=1");
Vous pouvez modifier l'appel comme suit:
Par ailleurs, il faut modifier le code de lettre.php pour qu'il lise les variables
$page et $id alternativement à $_GET["page"] et $_GET["id"]
Il faut veiller à ce que lettre.php puisse accepter les deux variables
directement, et ne les surcharger que si $_GET est renseigné..
Modifié par GeorgesM (01 Oct 2006 - 14:36)
l'include, en php, se charge d'ouvrir un fichier et d'en recopier le contenu
à l'endroit où il est appelé.
la syntaxe est include "nom_fichier.ext"
Dans votre cas, vous ajoutez des paramètres normalement passé en "GET",
à l'aide du point d'interrogation et séparés par un &.
include("lettre.php?page=lettre&id=1");
Vous pouvez modifier l'appel comme suit:
$page = "lettre";
$id = 1;
include("lettre.php?page=lettre&id=1");
Par ailleurs, il faut modifier le code de lettre.php pour qu'il lise les variables
$page et $id alternativement à $_GET["page"] et $_GET["id"]
Il faut veiller à ce que lettre.php puisse accepter les deux variables
directement, et ne les surcharger que si $_GET est renseigné..
Modifié par GeorgesM (01 Oct 2006 - 14:36)
Bonjour,
plutôt
EDIT: yop, les 2 assignations remplacent ce que ferait GET. Include prend le nom d'un fichier et c'est tout.
Enfin sauf que cliquer sur un lien utilisant un passage par paramètres GET et faire un include côté serveur n'ont rien à voir ...
Modifié par Felipe (01 Oct 2006 - 15:22)
$page = "lettre";
$id = 1;
include("lettre.php");
plutôt

EDIT: yop, les 2 assignations remplacent ce que ferait GET. Include prend le nom d'un fichier et c'est tout.
Enfin sauf que cliquer sur un lien utilisant un passage par paramètres GET et faire un include côté serveur n'ont rien à voir ...
Modifié par Felipe (01 Oct 2006 - 15:22)
Bellami a écrit :
Et, je n'ai pas compris ce qu'il faut mettre dans "lettre.php"
Est-ce que lettre.php correspond à une "vraie" page web avec Doctype, <html> et tout ça ou bien c'est destiné à être inclus dans un autre script PHP?
Il faut que ce soit la 2ème solution pour que cela fonctionne.
Exemple de lettre.php destiné à être inclus:
echo "<p>lettre vaut $lettre et i vaut $i (c'est le script qui m'a inclus qui a assigné ces valeurs aux variables lettre et i)</p>";
Exemple de lettre.php destiné à être affiché tel quel par un navigateur:
echo '<!doctype html head title /title /head body (hum)';
echo '<h1>je suis une page web indépendante qui utilise la méthode GET</h1>';
echo "<p>lettre vaut $_GET['lettre'] et i vaut $_GET['i']</p>";
echo '</body></html>';
Modifié par Felipe (01 Oct 2006 - 15:28)
Pour l'include j'ai donc :
et pour "lettre.php" j'ai :
Résultat : Parse error: parse error, unexpected '\"', expecting T_STRING or T_VARIABLE or T_NUM_STRING
pour "lettre.php"
Modifié par Bellami (01 Oct 2006 - 15:36)
$page = "lettre";
$id = "1";
include("lettre.php")
et pour "lettre.php" j'ai :
$page = "$_GET["page"]";
$id = "$_GET["id"]";
Résultat : Parse error: parse error, unexpected '\"', expecting T_STRING or T_VARIABLE or T_NUM_STRING
pour "lettre.php"
Modifié par Bellami (01 Oct 2006 - 15:36)
1ère erreur: tu ne peux pas utiliser de guillemets comme ça entre les guillemets qui délimitent une chaîne. Il faut les échapper (ou utiliser des ' à l'intérieur des " ).
EDIT: oups ici, tu n'aurais pas besoin des " extérieurs de toute façon. $a = $b; suffit.
Ensuite si tu inclues un fichier lettre.toto dans un script PHP, son contenu se retrouve copié-collé dans le script. Or si tu définis à la ligne précédente les valeurs de tes 2 variables, le script ne doit pas aller chercher celles-ci dans le tableau GET. Fais un echo $lettre; ou var_dump($lettre); pour t'en convaincre.
GET ne sert que pour passer des variables d'une page à l'autre, si tu fais un include ce n'est qu'une page qui se prépare sur le serveur et qui sera envoyée au navigateur, revois le tutoriel sur include() ou la doc PHP sur require/include à ce propos
Modifié par Felipe (01 Oct 2006 - 15:50)
EDIT: oups ici, tu n'aurais pas besoin des " extérieurs de toute façon. $a = $b; suffit.
Ensuite si tu inclues un fichier lettre.toto dans un script PHP, son contenu se retrouve copié-collé dans le script. Or si tu définis à la ligne précédente les valeurs de tes 2 variables, le script ne doit pas aller chercher celles-ci dans le tableau GET. Fais un echo $lettre; ou var_dump($lettre); pour t'en convaincre.
GET ne sert que pour passer des variables d'une page à l'autre, si tu fais un include ce n'est qu'une page qui se prépare sur le serveur et qui sera envoyée au navigateur, revois le tutoriel sur include() ou la doc PHP sur require/include à ce propos

Modifié par Felipe (01 Oct 2006 - 15:50)
Salut tout le monde
juste pour info il semblerait qu'un include avec un chemin absolu
cf. ce topic
D'autre part (mais ça n'a rien à voir) l'affichage des balises de code sous IE laisse à désirer :
@+

juste pour info il semblerait qu'un include avec un chemin absolu
par exemple
[b]include('http://127.0.0.1/Test/include/page.php');[/b]
oblige à utiliser la forme page.php?var1=aaa&var2=bbb et la récupération avec $_GETcf. ce topic
D'autre part (mais ça n'a rien à voir) l'affichage des balises de code sous IE laisse à désirer :

@+