Se connecter avec
S'enregistrer | Connectez-vous

[Cookie] Redirection

Dernière réponse : dans Programmation

Bonjour à tous ^^

Je débute en php. J'aimerais savoir si quelqu'un pouvait m'aider pour faire ça (car je suis vraiment perdu) :

Citation :
- Que sur une page nommé index2.php je mette un cookie nommé "xafedra"
- Si je veux sur la page index3.php, ce cookie est détruit (s'il existe)
- Et si jamais je vais sur la page index.php et que le cookie soit présent sur l'ordinateur, la personne soit redirigé directement sur une page index1.php. Si la cookie n'est pas présent, rien ne se passe.

J'ai lu attentivement pas mal de tutoriaux sur les cookies et je n'ai STRICTEMENT rien compris, donc veuillez m'excuser,
Et merci à la personne qui pourra m'aider :jap: 

Bonsoir :hello: 

Autres pages sur : cookie redirection

Lassé par la pub ? Créez un compte
Expert Programmation

Il est où ton problème ?

Pour créer le cookie ?
Pour le supprimer ?
Pour savoir s'il existe ?
Pour savoirt ce qu'il y a dedans ?
Pour faire la redirection ? Chose à mon avis inutile, puisqu'à ta place je gérerais tout dans la page index.php avec des if... (elseif...) else... pour savoir quoi afficher dans la page en fonction de l'état du cookie ;) 

Salut marsien

Pour créer le cookie j'avais mis dans ma page index2.php

  1. <?php
  2. $expir = time() + 32000000;
  3. setcookie("xafedra", "html", $expir);
  4. ?>


Ensuite, dans ma page index3.php, j'avais mit pour le détruire :

  1. <?php
  2. setcookie("xafedra", -1, 0);
  3. ?>


et dans ma page index.php, j'avais essayé de mettre un truc du genre :

  1. <script language="Javascript">
  2. if (document.cookie=xafedra) location.href="index1.php";
  3. ?>
  4. </script>



Mais je pense qu'il y a pleiiiins d'erreur car rien ne marche ^^''
(donc, si tu pouvais m'aider à remettre un peu ca en forme :jap: )

Je précise qu'il faut obligatoirement que je passe par ces 4 pages. C'est primordial ...

Merci à toi ^^
Expert Programmation

Je voudrais bien t'aider, mais je ne sais même pas ce que tu veux faire exactement, ni ce qui marche pas et pourquoi tu dis que ça marche pas (message d'eereur ?).
Sur le code fourni, il n'y a pas d'erreur.

Enfin, je persiste et signe : tu n'as absolument pas besoin de 4 pages d'index, et un simple choix conditionnel dans index.php te permettra d'afficher l'équivalent des 4 pages actuelles en fonctions des paramètres fournis ($_COOKIE, $_POST, $_GET par ex).

En fait, je vais t'expliquer exactement ce que je voudrait faire. Un de mes site a une partie flash (l'index) Et je voudrais ce si quelqu'un clique sur un lien nommé "version sans flash" il aille sur le site en version html+php mais que la prochaine fois qu'il souhaite revenir sur le site, il soit directement redirigé vers la page php+html.
S'il cliquerait, depuis la page php+html, sur un bouton "version flash", le cookie serait retiré et il irait a la page flash (à sa prochaine connexion sur le site, il ne sera pas redirigé mais restera sur la page flash.

C'est donc pour ca que j'aurais voulu faire ca en 4 pages .... =\
Voila, j'espère que c'est clair ^^''

PS: Si tu trouves comment pouvoir faire ca, ca serait super (et si tu as un moyen sans passer par 4 pages, c'est encore mieu ^^)
Expert Programmation

Voilà quelque chose qui devrait marcher :
Dans ta page index.php, tu mets seulement ça ; c'est ton sélecteur de version
  1. <?php
  2. if(isset($_GET['version'])) // on crée le cookie selon le choix fait au départ
  3. {
  4. $expir = time() + 32000000;
  5. if($_GET['version'] == "flash")
  6. {
  7. setcookie("xafedra", "flash", $expir);
  8. include('versionFlash.php'); // première sélection avant que le cookie soit pris en compte
  9. }
  10. elseif($_GET['version'] == "html")
  11. {
  12. setcookie("xafedra", "html", $expir);
  13. include('versionHtml.php'); // première sélection avant que le cookie soit pris en compte
  14.  
  15. }
  16. else
  17. {
  18. // ce que tu veux en cas d'erreur de sélection ; ça dépend de comment tu fais le reste de tes pages
  19. }
  20. if(isset($_COOKIE['xafedra']) AND $_COOKIE['xafedra'] == "html") // séléction flash ou html selon le cookie
  21. {
  22. include('versionHtml.php');
  23. }
  24. elseif(isset($_COOKIE['xafedra']) AND $_COOKIE['xafedra'] == "flash")
  25. {
  26. include('versionFlash.php');
  27. }
  28. else
  29. {
  30. include('selecteurFashHtml.php');
  31. }
  32. ?>


Après les includes correspondent à tes pages flash, html ou au sélecteur en lui même ; pour ce dernier, c'est un truc du genre :
  1. <html>
  2. <head>
  3. </head>
  4. <body>
  5. <a href="index.php?version=flash">Version flash</a>
  6. <a href="index.php?version=html">Version html</a>
  7. </body>
  8. </html>


versionFlash.php et versionHtml.php doivent contenir tes pages d'acceuil complètes de ces 2 versions de ton site.

Hmm, j'ai pas tout compris à ton code en lui même, j'ai tout de même essayé en faisant un vulgaire copier/coller, mais il me dit :

Parse error: parse error in index.php on line 32

en gros, sur la balise ?> ... =\

Yeaahh, ca marche nickel, j'ai juste ajouté un petit

  1. <a href="index.php?version=flash">Version flash</a>

sur ma page Html, pour changer au cas où et ca marche parfaitement.

Merci beaucoup Marsien et bonne journée :jap: 
Lassé par la pub ? Créez un compte