Message d'erreur if no redirection

Petit nouveau ! | 5 Messages

26 août 2013, 15:14

Bonjour, alors j'ai un petit problème j'ai fais une redirection sur une page qui redirige vers une autre page, et j'aurai aimé savoir comment faire que si on accéde à la page sans la redirection, que la page affiche un message d'erreur.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

26 août 2013, 15:17

salut,


ajoute un paramètre en session pour indiqué que tu viens de la première page et à l'affichage tu vérifie la présence de cette info puis la supprime si tu souhaite un affichage unique.

par exemple
<?php
// page 1
$_SESSION['viens de page un'] = true;

// page 2 ou 3
if(empty($_SESSION['viens de page un'])) {
//Viens pas de la première page, affiche le message d'erreur. 
}
@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 5 Messages

26 août 2013, 15:32

Merci de ta réponse.
Mais ça marche pas avec moi j'ai du sûrement faire une erreur peux tu me corrigé?

Dans la page de redirection pour l'accès à mes serveurs j'ai mis ça:

<?php
$_SESSION['Serveurboot'] = true;
?>

Et dans la page ou je veux que si on sois pas redirigé et ça affiche un message d'erreur j'ai mis ça:

<?php
if(empty($_SESSION['redirectionserveur.html'])) {
//Viens pas de la première page, affiche le message d'erreur.
}
?>

ViPHP
ViPHP | 2577 Messages

26 août 2013, 15:40

Remplace 'redirectionserveur.html' par 'Serveurboot'
Et pense à remettre la variable à false ou à la supprimer après utilisation.

Petit nouveau ! | 5 Messages

26 août 2013, 15:52

Remplace 'redirectionserveur.html' par 'Serveurboot'
Et pense à remettre la variable à false ou à la supprimer après utilisation.
Merci de me répondre, mais j'ai suivis vos conseils, mais j'ai toujours accès à la page sans être redirigé,
Dans la page de redirection:

<?php
$_SESSION['Serveurboot'] = false;
?>

Dans la page concerné:

<?php
if(empty($_SESSION['Serveurboot'])) {
//Viens pas de la première page, affiche le message d'erreur.
}
?>

ViPHP
xTG
ViPHP | 7331 Messages

26 août 2013, 15:53

As-tu un session_start() en début de chaque script ?

Petit nouveau ! | 5 Messages

26 août 2013, 16:00

As-tu un session_start() en début de chaque script ?
Oui.

ViPHP
ViPHP | 2577 Messages

26 août 2013, 16:13

false '' et 0 doivent correspondre à Empty()
C'est après le test qu'il faut remettre la variable de session à false.
<?php
$_SESSION['Serveurboot'] = true;
// redirect
?>
<?php
if(empty($_SESSION['Serveurboot'])) {
//Viens pas de la première page, affiche le message d'erreur. 
}
$_SESSION['Serveurboot'] = false; // A moins que tu veuilles conserver le fait d'être passé par la page avec le redirect
?>

Petit nouveau ! | 5 Messages

26 août 2013, 16:48

false '' et 0 doivent correspondre à Empty()
C'est après le test qu'il faut remettre la variable de session à false.
<?php
$_SESSION['Serveurboot'] = true;
// redirect
?>
<?php
if(empty($_SESSION['Serveurboot'])) {
//Viens pas de la première page, affiche le message d'erreur. 
}
$_SESSION['Serveurboot'] = false; // A moins que tu veuilles conserver le fait d'être passé par la page avec le redirect
?>
J'ai fais tout ce qui avait à faire j'ai fais des tests sur d'autre page de mon site et ça n'as pas l'air de marché mais pourtant un ami ma dis qu'il fallait utilisé les sessions donc sois c'est moi qui manie mal ton code ou sois c'est une erreur de ta part (ce que je ne crois pas). Je réexplique ce que j'ai fais:
Dans la redirection:

Cette page se nomme: redirectionserveur.php
<?php
session_start();
$_SESSION['Serveurboot'] = true;
// redirect
?>
<?php      
  header('Location: Serveurboot');      
?>
et dans la page en question qui es situé dans un sous dossier:

Cette page se nomme: Serveurboot
<?php
if(empty($_SESSION['Serveurboot'])) { 
//Viens pas de la première page, affiche le message d'erreur. 
}
$_SESSION['Serveurboot'] = false; // A moins que tu veuilles conserver le fait d'être passé par la page avec le redirect
?>
Merci de votre aide.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

26 août 2013, 20:43

et dans la page en question qui es situé dans un sous dossier:

Cette page se nomme: Serveurboot
<?php
if(empty($_SESSION['Serveurboot'])) { 
//Viens pas de la première page, affiche le message d'erreur. 
}
$_SESSION['Serveurboot'] = false; // A moins que tu veuilles conserver le fait d'être passé par la page avec le redirect
?>
a priori tu n'a pas de session_start() sur la seconde page et la du coup ça ne peux fonctionner.


@+
Il en faut peu pour être heureux ......