J'ai un script de connexion qui fait cela: si l'utilisateur s'est connecté avec succès.
Et donc j'ai édité la page d'inscription pour le faire: p> mais il ne redirige pas l'utilisateur lorsque je me suis connecté avec mon compte que j'ai créé. Pourquoi est-ce? P> p>
5 Réponses :
header ( 'Location: index.php' );
Pouvez-vous remplacer probablement avec obligatoire? il a aussi, sinon cela ne fonctionnera pas du tout
@Hannes il pourrait avoir tampon de sortie code> allumé donc "probablement" :)
Définition d'une fonction dans un ob code>? Ce serait encore pire: D
@Hannes La mémoire tampon de sortie peut être activée dans php.ini et fonctionne "automatiquement".
haussement d'épaules i> toujours mauvais style tu
@Hannes Je suis d'accord, mais cela peut ou non être le cas ici, je dois donc prendre en compte :)
Cependant, je ne mettez pas le matrice () code> ou
Quitter () code> dans mon code. Je m'assurens que tout mon code est correctement à l'intérieur du
si () code> ou
sinon code> et que rien ne peut s'exécuter après que la redirection se produise. Je garde mon principal code de contrôleur constitué principalement des appels de fonction une après l'autre afin qu'il n'y ait pas trop de lignes de code et que la portée du
si-ele code> est facilement visible et il n'y a aucune chance de Quelque chose d'exécution par erreur et donc aucun besoin de mettre un
sortie code> ou
mourir code> pour vous assurer que. voulait vos opinions les gens.
Modifier la fonction et déplacez l'appel pour rediriger ci-dessus toutes les sorties HTML: P> redirection () code> fonction à:
<?php
function redirect($DoDie = true) {
header('Location: index.php');
if ($DoDie)
die();
}
php session_start();
if(isset($_SESSION['username'])) {
redirect();
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" id="jmtoday" class=" no_js">
<head>
<link href='icon.jpg' rel='icon' type='image/jpg'/>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-language" content="en" />
<LINK REL=StyleSheet HREF="Mainstyles.css" TYPE="text/css"></link>
<Title>Sign up | JMToday</title>
</head>
<body>
?>
Je déplacerais matrice () code> dans la fonction
rediriger () code>, de sorte que vous n'avez pas à vous rappeler de le taper à chaque fois que vous faites une redirection ...
@Jan j'ai considéré que, mais voulez-vous limiter à être la dernière chose que vous appelez jamais? Je prends en compte que vous pourriez utiliser ultérieurement la fonction rediriger () code> ailleurs.
Peut-être que vous pourriez passer un paramètre dodie code> à la fonction
rediriger () code>. Aways, je n'ai jamais rencontré une situation où j'ai fait une redirection et je voulais exécuter du code après cela. Mais c'est juste moi :)
function redirect() { header('location:index.php'); }
C'est en-tête ('emplacement: index.php'); code> p>
Si vous voulez rediriger immédiatement, alors si vous souhaitez rediriger avec un délai, alors p> augmenter le 0 dans "Actualiser: 0" pour introduire plus de retard. p> Vous pouvez l'utiliser pour rediriger après avoir montré une notification / un message à l'utilisateur. p> Note Strong> Si Vous avez des problèmes de redirection, puis mettez "sortie ()" à la fin de la fonction p> p>
L'idée ici est que vous acceptez la réponse qui résout votre question. J'ai remarqué que vous n'avez accepté aucune de vos questions ici. S'il vous plaît faites cela, car vous obtiendrez probablement de bonnes réponses si vous prenez les personnes qui vous aident.
Avez-vous essayé de activer des avertissements? Vous devriez recevoir AVERTISSEMENT: impossible de modifier les informations d'en-tête - les en-têtes déjà envoyés ... i>
Combien de fois avez-vous posté cet échantillon de code presque identique au cours des derniers jours? Veuillez suivre quelques-uns des conseils que vous avez donnés par des personnes et arrêtez de ré-poster jusqu'à ce que vous ayez au moins une idée de ce que vous faites.
Ne stockez pas le mot de passe dans une session ... Utilisez un jeton quelque chose qui ne donne pas d'informations d'identification d'utilisateur.