Alerte Javascript et php header
J'ai eu un petit problème. Quand j'ai eu mon script PHP sans en-tête, c'est bien, je suis arriver boîte d'alerte javascript. Mais quand j'ai utiliser l'en-tête avant de l'alerte, il ne fonctionne pas. C'est la redirection de moi comme il se doit, mais il ne l'est pas n'importe quelle case. Quelqu'un pourrait-il m'aider?
if ( $pkt < 1 OR $user_id == 0) {
header("Location: http://dunno.com/file.php");
$message = 'This is a message.';
echo "<SCRIPT> //not showing me this
alert('$message');
</SCRIPT>";
mysql_close();
}
Et voici celui qui travail (mais sans en-tête)
if ( $pkt < 1 OR $user_id == 0) {
$message = 'This is a message.';
echo "<SCRIPT> //showing me
alert('$message');
</SCRIPT>";
mysql_close();
}
Je serais reconnaissant pour l'aide 🙂
@edit Peut-être est-il une commande pour faire en alerte attendre jusqu'à ce que tout navigateur de charger? (si c'est le problème)
- pourquoi avez-vous besoin de l'en-tête?
- Quel est le but de l'alerte - si la redirection se produire après l'utilisation clique sur ok? que faire si l'utilisateur clique sur annuler?
Vous devez vous connecter pour publier un commentaire.
Peut-être essayer de redirection à l'aide de JavaScript.
c'est une redirection:
header("Location: http://dunno.com/file.php");
le code ci-dessous ne fonctionnent pas
file.php
? peut-être l'inclure ? quelle est votre intention ?Votre erreur est dans la structure de votre code. PHP, même dans la programmation orientée objet est de procédure et sera exécuté à chaque ligne l'une après l'autre. Donc, la façon dont vous avez structuré votre code signifie que la page est redirigée avant votre écho. Une meilleure méthode est d'utiliser la boîte d'alerte javascript pour rediriger votre page à l'aide de:
Aaroniker est correct avec la redirection de commentaires. Une façon de faire ce travail serait d'envoyer le message avec une variable de session, puis ajouter le message de création de la page suivante comme si.
Sur file.php:
Une autre option serait de les passer avec vous-tête. Comme:
Puis sur file.php:
Utiliser $_SERVER 'php_self'. Il vous permettra de créer un script sur la même page où vous souhaitez alerte. De cette façon, vous n'aurez pas à ajouter un en-tête.
Voici un exemple:
}
?>
Ci-dessous l'en-tête de fonction vous permet de lancer une redirection 302 par défaut et de rediriger le client vers http://dunno.com/file.php donc le code après le code de commencer traitée après l'en-tête de la fonction ne sera pas considéré comme le client est redirigée sur la page de ce code est sur.
Veuillez lire encore sur l'en-tête de la fonction ici: http://www.php.net/manual/en/function.header.php
Vous pourriez vous faire le programme de sommeil/attendre quelques secondes(disons 10 secondes par exemple) avant de rediriger si vous avez besoin du message pour afficher de la sorte:
Je sais que c'est un vieux post, mais voici comment je l'ai fait dans un exemple similaire. Cet exemple vérifie si l'administrateur est connecté à partir d'une adresse IP spécifique, si elle retourne false, il doit rediriger l'utilisateur vers la page de connexion et afficher un message d'erreur.
Utilisateur a ouvert une session dans la page:
login.php: