Page 1 sur 1

Session et Cookies; Fonctions; Templates

Posté : 11 sept. 2005, 14:11
par Kerwan
Bonjour,
Celà fait maintenant 1 mois que j'apprend le php. Cela fait pas mal de temps que quelques questions me trottine la tête.

Fonctions:
J'ai beau avoir lu les cours du siteduzero, le manuel de php.net,debutant.org et commencer à lire Pratique de PHP et MYSQL de phillipe rigaux. Je ne comprend pas qu'elle est l'utilité des fonctions. En quoi celà peut nous aider dans notre site?
Aperemment ce serait pour diminuer les codes trop long :shock:

Templates:
J'ai téléchargé modeLixe mais concrétement je n'y comprend rien.
on m'a dit qu'un template servait à séparé le design et le code.
Mais moi je procède ainsi:
1ère page -> page.php -> code php et xhtml
2ème page-> page.css -> code CSS
3ème page-> header.php -> continent le haut de chacune de mes pages
4ème page -> menu.php -> le menu de toute mes pages
5ème page -> footer.php -> le bat de toutes mes pages
6ème page -> connection.php -> paramètre de connexion mysql

je relis la 3ème, 4ème, 5ème page et 6ème page par des includes à page.php

Alors vaut-il mieux utiliser un template? pk? Si oui, où puis je voir comment me servir d'un template?

Sessions et Cookies:
Pour créer mon cookie j'utilise setcookie(nom, valeur, timestamp)
mais pour visualiser d'autres part je fais quoi? setcookie() ???
exemple:
-----------
pagecookie.php
<?
setcookie('moi, 'kerwan', $timestamp);
?>
Tu t'appelles <? echo $_COOKIE['moi']; ?>
-----
pagecookie2.php
<? setcookie(); ?>
Tu t'appelles <? echo $_COOKIE['moi']; ?>
-----------

C'est comme cela que je dois procéder?

Vaut-il mieux utiliser cookie ou session?
un copain m'a dit qu'il était préférable d'utliser les cookies car il trouvait ça plus souple et parce que les sessions ne marchaient pas sur tous les hébergeurs. Mais on m'a dit aussi qu'un cookie pouvait s'arreter avant la fin du temps si le membre le supprime.

Et au fait, si je met timestamp 1 an.
Dans 1 ans le cookie sera effacé et il se passera quoi? Le membre sera désinscrit dem on site? ou c'est juste qu'on ne le reconnaitra plus et il devra se réidentifier?
Il existe session_destroy() pour détruire une session (se déconnecter) existe t'il un truc dans le genre pour cookie? (cookie_destroy() par exemple)

Merci de répondre à ces questions.
Je suis désolé si vous les trouvers non pertinantes mais je vous promet avoir chercher.

Kerwan,
Nouveau membre de la communauté PHP

Re: [Questions]Session et Cookies; Fonctions; Templates

Posté : 11 sept. 2005, 15:22
par ouckileou
Fonctions: elles servent à regrouper des bouts de code utilisés souvent
ex : sur ton site tu manipules plein de dates récupérées dans une base de données, au format AAA-MM-JJ
toi, tu veux les afficher comme ça JJ/MM/AAA
et bien tu va faire une petite fonction formater_date(), qui prendra en paramètre la date format SQL, et te la renverra format français
plutôt que de remetre le même code à chaque fois, une fonction c'est plus propre, plus court, et surtout en cas de changement tu ne modifies ton code qu'une seule fois, dans la fonction.

Templates: le template sert effectivement à séparer le PHP (traitement des données) du HTML (affichage)
pour dans l'idéal pouvoir faire travailler 2 personnes différentes (graphiste/codeur) chacun sur sa partie, ou pouvoir mieux s'y retrouver.
L'utilisation des templates dépend du moteur utilisé, mais c'est plutôt simple pour la plupart :
tu définies des variables dans le template HTML, que le PHP va remplir avec ton contenu.
Je ne connais pas modeLixe, mais les templates phpLib sont plutôt simples à utiliser
il y a généralement une documentation assez dense avec ce genre de systèmes, lis-la ;)
tu as ici un comparatif de différents moteurs, il y en a des simples et des moins simples : http://cyberzoide.developpez.com/php4/template/
Voici un petit exemple pour PHPLib : http://www.asp-php.net/scripts/asp-php/template.php
tu verras c'est assez simple

Sessions et Cookies:
l'utilisation du cookie semble bonne, tu peux effectivement le récupérer comme ça, avec $_COOKIE
Vaut-il mieux utiliser cookie ou session?
un copain m'a dit qu'il était préférable d'utliser les cookies car il trouvait ça plus souple et parce que les sessions ne marchaient pas sur tous les hébergeurs. Mais on m'a dit aussi qu'un cookie pouvait s'arreter avant la fin du temps si le membre le supprime.
Ca dépend de l'utilisation, les cookies peuvent aussi être désactivés sur le navigateur clients
Personnellement je n'ai jamais eu de problème avec les sessions
Il faut bien voir la différence : une session dure la durée de la visite
Un cookie peut rester (sauf suppression manuelle ou fin de la durée de vie) sur le poste client
Et au fait, si je met timestamp 1 an.
Dans 1 ans le cookie sera effacé et il se passera quoi? Le membre sera désinscrit dem on site? ou c'est juste qu'on ne le reconnaitra plus et il devra se réidentifier?
dans 1 an le cookie sera effacé, après les conséquence sur ton site dépendent de ce que tu fais des informations contenus
généralement un cookie est utilisé pour une identification automatique, pour ne pas avoir à se reconnecter à chaque fois
une fois le cookie supprimé, tu es toujours inscrit, mais tu dois te réidentifier (comme sur ce forum par exemple)

Voilà déjà quelques premières réponses qui t'aideront j'espère ;)

Posté : 11 sept. 2005, 15:22
par Cyrano
Salut,
On va essayer d'y aller dans l'ordre. Pour ce qui est de l'intéret des fonction, j'ai l'impression que ta question sous-entend "en fichiers externes". Considère la possibilité d'avoir une procédure que tu dois répéter dans plusieurs pages: pourquoi l'écrire à chaque fois alors que c'est plus rapide de créer un fichier indépendant contenant ladite fonction et faire un include de ce fichier dans les pages où tu en as besoin. Au lieu de x page avec x fois le code de la fonction, tu ne l'écris qu'une fois. Si tu dois corriger un bug quelconque dans la fonction, tu n'auras qu'un seul fichier à ouvrir et à corriger au lieu de devoir faire le tour de tous les fichiers utilisant cette fonction. Ceci dit, il est vrai que pour une fonction qui ne sert qu'à un seul endroit, faire une fonction externe présente moins d'intérêt.

Les templates : permettent en effet de séparer le traitement de la présentation. Un moteur de template, que ce soit Modelixe, la classe template.inc de la phpLib, smarty ou autre, le principe est toujours le même:
- il n'y a pas de code html dans les pages servant à la récupération et au traitement des données;
- il n'y a pas de PHP dans les templates ;
Le point qui relie les deux est un dictionnaire de variables particulières propres au templates. Le développeur récupère les données et les prépare pour les envoyer vers le moteur de template en appelant le(s) template(s) correspondant à telle ou telle page devant être affichée. De son coté, le webdesigner n'a pas besoin de connaître le PHP et prépare ses pages en HTML/CSS mais à la place du contenu inscrit de manière particulière des noms de variables. Le moteur de template fait le lien et génère une page complète parfois en regroupant plusieurs templates correspondant à différentes parties de la page.

Les avantages sont considérables : Si un bug de programmation doit être corrigé, ça n'affecte en rien la présentation. De même si on doit procéder à une refonte graphique du site, on ne touche pas à la partie programmation puisque ça ne concerne que les templates.

Selon le système que tu utilises actuellement et tel que tu le décris, ton système regroupe des fichiers : header, menu, pied de page, contenu etc... : dans un système de template, chacun de ces fichier ne contiendrait pas une seule ligne de HTML mais ferait appel au moteur de template : il te faudrait créer les template dans un répertoire à part, templates sans autre contenu que des variable du gente {VARIABLE} et pas une seule ligne de PHP. Le moteur (Modelixe ou autre) appelé par le fichier php, par exemple header.php va récupérer le template correspondant à header.tpl par exemple et remplacera les {VARIABLE} par la valeur d'une donnée récupérée et envoyée par header.php : à la sortie, ton index va récupérer un fichier généré en html pour construire l'en-tête de ta page. Et ainsi de suite pour le menu, le contenu, le pied de page et n'importe quoi d'autre que tu voudrais rajouter.

Ton point sur le choix cookies/session est un peu faussé: en principe par défaut, les sessions utilisent de toutes façon des cookies, mais tu n'as pas à les créer toi-même. En revanche, leur durée de vie est limité à la durée de la session. Il est également possible de ne pas utiliser de cookies avec les session ce qui peut s'avérer utile si certains internautes interdisent tout les cookies sur leur machine. Si tu n'utilises pas les session en limitant ton système à l'utilisation de cookies, ces internautes ne pourront pas naviguer sur ton site.

Enfin, je l'ai expliqué cette semaine dans un autre sujet : le session_destroy() est à mon avis sans intérêt. Il faut pour comprendre cette idée comprendre le mécanisme des sessions. Une session n'est qu'un contenant. Le grand intérêt n'est pas tant ce contenant que le contenu qu'il transporte. Ainsi, tu peux avoir par exemple une procédure d'identification et à partir de là initialiser une variable de session qui va suivre l'internaute au long de sa navigation dans tes pages. Au lieu de faire un session_destroy(), il suffit de modifier la valeur de cette variable. Pourquoi me diras-tu: Parce que le contenant peut avoir beaucoup d'autres variables avec des informations évoluant au gré de la navigation que tu pourrais avoir besoin d'utiliser pour telle ou telle raison. En faisant session_destroy(), l'internaute sera certes déconnecté, mais tu perdras également toutes les autres variables.

Voilà, c'Est sommaire, j'espère que ça répond quand même au moins partiellement à tes interrogations.

Posté : 11 sept. 2005, 15:32
par Kerwan
Merci beaucoup :D vos réponses m'ont beaucoup aider.
Même si c'est moi qui code et qui fait le design je vais peut être utliser un template....
Je vais de ce pas regarder lesl iens que ovus m'avez proposez.

Encore merci à vous 2 pour vos réponses clair :D