|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Bonjour,
Tout d'abord je précise que je poste là et pas dans sécurité, car même si ça parle des sessions ça à rien à voir avec la sécurisation. Cela étant dit et comme le nom du sujet l'indique, je souhaite permettre à mes visiteurs identifiés d'avoir à disposition un historique de navigation reprenant les 10 dernières pages vues. Pour ce qui est d'enregistrer les urls et les noms de page, malgré l'url-rewriting, je sais faire. Par contre je ne vois pas comment placer 10 pages dans l'historique. A l'instant où j'écris ça je me dis qu'il faudrait sans doute utiliser un tableau. Malgré tout je ne vois pas trop comment placer dans le tableau de session (si tableau il doit y avoir) une page s'il n'y en a pas, deux s'il y en a une, trois s'il y en a 4 etc... Puis arriver à 10 remplacer la première par la 11 eme, la seconde par la 12eme etc... Pourriez-vous m'éclaircir la voie ?
__________________
C'est pas parce que j'ai tort que vous avez raison. |
|
|
00
|
|
|
#2 | ||
|
Membre confirmé
![]() Inscription : septembre 2005 Messages : 270 ![]() |
Code :
@+ |
||
|
|
00
|
|
|
#3 | ||||
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Ma foi ça m'a l'air aussi simple qu'efficace, merci Spilliaert !
Bon forcément comme ça peut pas fonctionner du premier coup, j'ai un petit souci pour lire le tableau. Mon code donne ça : Code :
Mais cela n'en affichait qu'un. Alors j'ai rajouté [] dans le sizeof, après $_SESSION['historique'], comme vous pouvez voir dans l'exemple. Maintenant j'obtiens ça : Code :
Comment éliminer ce message et accessoirement afficher les 10 dernières pages correctement ?
__________________
C'est pas parce que j'ai tort que vous avez raison. |
||||
|
|
00
|
|
|
#4 | ||
|
Membre confirmé
![]() Inscription : septembre 2005 Messages : 270 ![]() |
Code :
|
||
|
|
00
|
|
|
#5 | ||
|
Membre confirmé
![]() Inscription : septembre 2005 Messages : 270 ![]() |
le seul problème, c'est que ce code garde tout l'historique et qu'il n'en affiche que les 10 derniers...mais bon, ça peut t'être utile si tu veux, à un moment afficher tout l'historique...
Sinon, si ça te dérange vraiment, pour des raisons de performance, il faudrait trouver un algo qui refait un nouveau tableau à chaque ajout . ou un truc du style: Code :
|
||
|
|
00
|
|
|
#6 |
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Mouif forcément, ça pouvait pas être si simple
En plus du problème que tu soulèves (que en ait quand même hein parce que c'est pour un forum où les gens, ont le sait, voit beaucoup de pages et que ça va bouffer de la mémoire), il y en a au moins deux autres. 1) Je comprend pas que s'il n'y a aucune variable de session, l'espace utilisé par la div d'affichage soit le même que s'il y en a 10. Normalement elle devrait grandir au coup par coup et être null si il n'y a aucune variable (elle est pleine de <br> mais pourtant ceux-ci sont dans la boucle, donc ils ne devraient s'afficher qu'au besoin.) 2) Arrivé à 10, le 1er n'est pas remplacé par le 11eme mais tout est effacé. C'est le else qui efface tout au lieu de remplacer le 1 par le 11 je crois. Bon voyons ça maintenant.
__________________
C'est pas parce que j'ai tort que vous avez raison. |
|
|
00
|
|
|
#7 | |
|
Membre confirmé
![]() Inscription : septembre 2005 Messages : 270 ![]() |
Citation:
|
|
|
|
00
|
|
|
#8 | ||
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Non ça fonctionne pas, j'ai toujours une pile de <br> et ça s'efface à 10. Faut dire que mon code est horrible, attention les yeux :
Code :
__________________
C'est pas parce que j'ai tort que vous avez raison. |
||
|
|
00
|
|
|
#9 | ||
|
Expert Confirmé
![]() Maxime PasquierExpert PHP Inscription : novembre 2004 Messages : 2 126 ![]() |
Code :
Si ca peut aider ...
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur. Mon espace Développez : mes Créations. Rencontre & Carte des Membres de Developpez.com, version 3.0 |
||
|
|
00
|
|
|
#10 | |||
|
Membre confirmé
![]() Inscription : septembre 2005 Messages : 270 ![]() |
Citation:
Code :
|
|||
|
|
00
|
|
|
#11 |
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Merci pour vos codes les gars. J'ai pas tester celui de Kerod pour n'enregistrer que 10 résultats, il y a ce problème que je ne résoud pas : La pile de <br>.
Normalement ils sont dans la boucle for donc s'il n'y a pas de valeur dans la session, ou une ou trois... il ne devrait alors rien s'afficher ou une ligne ou trois etc... mais là on dirait que ça affiche 10 lignes, mêmes vides, puisqu'il y a 10 <br>
__________________
C'est pas parce que j'ai tort que vous avez raison. |
|
|
00
|
|
|
#12 | ||
|
Membre confirmé
![]() Inscription : septembre 2005 Messages : 270 ![]() |
Code :
|
||
|
|
00
|
|
|
#13 | ||||
|
Membre chevronné
![]() Inscription : mars 2005 Messages : 583 ![]() |
hello,
je vais aussi y aller de mon grain de sel : pour enregistrer : Code :
Code :
|
||||
|
|
00
|
|
|
#14 | |||||
|
Membre confirmé
![]() Inscription : septembre 2005 Messages : 270 ![]() |
Citation:
|
|||||
|
|
00
|
|
|
#15 |
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Oui alors, il y a juste un problème, c'est que le renouvellement se fait par le bas.
Les liens en bas de la liste est remplacé par le plus récent et on remonte ainsi au lieu de faire descendre la liste en plaçant le plus récent en haut de la pile :c'est un peu déroutant. Je me suis dit que le code de Petibidon ferait peut-être l'affaire pour ça, mais j'ai dû l'utiliser n'importe comment : si j'ai 9 résultat, je me retrouve avec 8 , si j'en ai 8 avec 7 etc... jusqu'à ce qu'il n'y en ait plus aucun dans la liste.
__________________
C'est pas parce que j'ai tort que vous avez raison. |
|
|
00
|
|
|
#16 |
|
Membre chevronné
![]() Inscription : mars 2005 Messages : 583 ![]() |
mea culpa c'est moi qui ai ecrit n'importe quoi...
j'ai fait une erreur de parenthèse au niveau du count. regarde bien et corrige chui pas du matin moi... je vais me fouetter avec des orties. |
|
|
00
|
|
|
#17 | |
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Citation:
Je dis ça parce que je vois pas ton erreur de parenthèse et en plus je sais pas si le code que tu nous montre généreusement doit être utilisé en l'état ou transposé à l'intérieur de celui de Spilliaert et Maxoo (c'est même pas que je suis pas du matin moi, c'est que je suis une tâche c'est tout). Mais d'ailleurs, je viens de me dire qu'il était plus judicieux de le faire avec une base de donnée, de manière à ce que lorsque le gars se reconnecte, ils puissent retrouver son historique en un clic. Vous en pensez quoi ? Si c'est valable et ça me semble l'être, le script doit être sensiblement différent, non (nonobstant les requêtes sql) ?
__________________
C'est pas parce que j'ai tort que vous avez raison. |
|
|
|
00
|
|
|
#18 |
|
Expert Confirmé
![]() Maxime PasquierExpert PHP Inscription : novembre 2004 Messages : 2 126 ![]() |
lol ... le mec qui retourne sa chemise dès que y a un problème
mais effectivement c'est mieux une bdd, mais bon ca dépend a chaque fois de ce que tu veux faire, faut te fixer des limites. tout l'historique ou juste 10 liens ... tu vois ??
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur. Mon espace Développez : mes Créations. Rencontre & Carte des Membres de Developpez.com, version 3.0 |
|
|
00
|
|
|
#19 |
|
Membre chevronné
![]() Inscription : mars 2005 Messages : 583 ![]() |
bon bah je suis pas le seul à pas etre du matin
if( count( $_SESSION['historique'] ) == 10 ) le code que je t'ai fourni s'utilise tel quel... c'est juste une maniere différente de faire les choses. pour ce qui est de la base de données, tout dépend ce que tu veux en faire... mais là oui ca change pas mal de choses... |
|
|
00
|
|
|
#20 | ||
|
Membre éclairé
![]() Inscription : juillet 2005 Messages : 1 221 ![]() |
Bon j'ai opté pour la base de donnée ça me semble un bon plus quand même. Tandis que tant que le gars est connecté, il peut toujours faire un retour avec le navigateur, c'est pas tuant.
Mais ça peut être bien de retrouver son historique de navigation de la dernière connexion. Partons sur 20 liens par exemple, avec une table historique comprenant 2 champs : id du membre et url. Il y a 20 enregistrement prévu dont la valeur est NULL et qui sont updaté au fur et à mesure des visites (donc ils ne sont nulles que pour les 20 premières pages de la toute première connexion du membre). Voilà mon code bidouillé vite fait non testé. Cela foire à la fin bien sûr, et en plus je pense que vous aurez sans doute une bien meilleur idée que la série de if... Code :
__________________
C'est pas parce que j'ai tort que vous avez raison. |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com