J'ai trouvé un extrait de code qui redirige s'il s'agit de la première visite, mais quand j'ai essayé de l'utiliser, il vient de rester à ce code. Je ne comprends pas vraiment trop sur les cookies et la façon dont cela fonctionne, alors peut-être que vous pouvez aider! Voici le code PHP:
<?php session_start(); if (isset($_SESSION['FirstVisit'])) { $_SESSION['FirstVisit'] = 1; header("Location: http://example.com/index.php"); // Don't forget to add http colon slash slash www dot before! } ?>
6 Réponses :
Vous pouvez utiliser ce code:
<?php if (!isset($_COOKIE['firsttime'])) { setcookie("firsttime", "no", /* EXPIRE */); header('Location: first-time.php'); exit(); } else { header('Location: site.php'); exit(); } ?>
Question, je pensais que la fonction d'en-tête ne pouvait être utilisée que avant tout ce qui s'est passé? Dans le cas ci-dessus, pourquoi la fonction de sortie est-elle après si elle serait déplacée à ce lien? Il ne faut jamais exécuter la fonction de sortie s'il est réellement déplacé. Désolé, je ne sais pas beaucoup sur les en-têtes.
@Andy je n'utilise pas la fonction de sortie () de mon code mais oui, vous devez mettre n'importe quel en-tête () avant tout autre code, car il posera des problèmes avec
Tag ...Ohh, cela signifie: L'en-tête PHP () va avant la balise et avant la balise aussi.
Ohh, je vois ce que vous dites, donc aussi longtemps que c'est avant toute sortie à la fenêtre, il est valide. Merci.
Cela a 13 upvotes et est marqué comme la bonne réponse ... mais cela ne fonctionne pas pour moi. Je reçois une erreur lorsque j'essaie de renvoyer à l'index.php si ce n'est pas la première charge: la page ne se redirige pas correctement. Firefox a détecté que le serveur redirige la demande de cette adresse de manière à ne jamais terminer.
@norsewulf Veuillez fournir un lien pour afficher le résultat ... comme un serveur Web public. Si possible, activez les erreurs déclarantes. Cela peut être dû à la configuration du serveur ou du navigateur.
Cette solution a fonctionné super pour ce dont j'avais besoin. Merci d'avoir posté!
Si des sessions / cookies sont difficiles à enregistrer l'IP du visiteur. Lorsque IP exist exige montrer la page 1 lorsque IP est nouvelle redirection à une autre page? p>
Pour plus d'informations, voir The Docs .
<?php if (!isset($_COOKIE['visited'])) { // no cookie, so probably the first time here setcookie ('visited', 'yes', time() + 3600); // set visited cookie header("Location: http://example.com/index.php"); exit(); // always use exit after redirect to prevent further loading of the page } ?>
<?php @session_start(); $url = 'http://blah.com/default/'; if (!isset($_COOKIE['Visited'])) { $_COOKIE['Visited'] = 1; $url = 'http://blah.com/firstvisit/'; } header("Location: {$url}"); ?>
S'il vous plaît ne supprimez pas les avertissements. Chaque fois que vous faites cela, un chaton meurt.
Ce n'était pas du tout constructif, la seule raison pour laquelle il est supprimé est que nous n'avons aucune idée de l'endroit où ce code va, et s'il est inséré au mauvais endroit, il pourrait lancer des avertissements sur les en-têtes déjà envoyés. Désolé, votre chaton est mort.
<?php session_start(); if (!isset($_SESSION['FirstVisit'])) { //show site for the first time part $_SESSION['FirstVisit'] = 1; header("Location: http://example.com/index.php"); // Don't forget to add http colon slash slash www dot before! } else { Show normal site } ?> You just make an if statement to check whether there is a session set, if not, you know its there first time. Though, since it is not a cookie, anytime you quit the browser, it will assume it is the first time, even if it is never the first time.
<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery- ui.css" /> <script src="http://code.jquery.com/jquery-1.8.3.js"></script> <script src="/resources/demos/external/jquery.bgiframe-2.1.2.js"></script> <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script> <link rel="stylesheet" href="/resources/demos/style.css" /> <script> $(function() { $( "#dialog" ).dialog(); }); </script> <?php if (!isset($_COOKIE['firsttime'])) { setcookie("firsttime", "no", /* EXPIRE */); header('Location: first-time.php'); exit(); } else { ?> <div id="dialog" title="Basic dialog"> <p>text</p> </div> <? } ?> @ Frederick or PeeHaa would the above script also work to bring up a window before they enter the site rather than a page.
Bienvenue sur Stackoverflow. Vous avez posté une "réponse", mais cela sonne comme si vous avez une question (?). Si oui, vous devriez Ouvrir un nouveau fil à la place.
Votre ne paramètre aucun
cookie code>, votre paramètre A
session code> (qui définit un cookie, mais ne devrait pas être persistant).
// N'oubliez pas d'ajouter HTTP COLON SLASH SLASH SLASH DOT AVANT! code> pourquoi? Chemins relatifs
./ index.php code> peut être utilisé dans un en-tête d'emplacement