Condition session_start();

willmx
Invité n'ayant pas de compte PHPfrance

15 janv. 2013, 12:53

Bonjour,

Je n'arrive pas à comprendre les conditions qui se trouve dans un bout de code d'un site que je reprend.
<?php
    session_start();
    if (!isset($_SESSION['iduser'])) {
        header('location: ../index.php');
        exit();
    } else {
        if ((!isset($_SESSION['cat'])) || (!in_array($_SERVER['PHP_SELF'], $_SESSION['cat']))) {
            header('location:accueil.php');
            exit();
        }
    }
?>
Mon soucis, la page acceuil.php inclus ce code ci-dessus qui se trouve dans un autre fichier. Tel quel, Firefox me renvoie un "La page n'est pas redirigée correctement".
Quand je retire la condition :
else {
        if ((!isset($_SESSION['cat'])) || (!in_array($_SERVER['PHP_SELF'], $_SESSION['cat']))) {
            header('location:accueil.php');
            exit();
        }
    }
Ma page est bien redirigé vers l'acceuil, avec les menus qu'ils vont bien une fois identifié.
Pouvez-vous m'expliquez ce que veut dire ce que je retire.

Merci d'avance,
William

ViPHP
xTG
ViPHP | 7331 Messages

15 janv. 2013, 15:55

N'aurais-tu pas une succession de header() se renvoyant la balle d'un script à un autre ?

willmx
Invité n'ayant pas de compte PHPfrance

15 janv. 2013, 17:21

N'aurais-tu pas une succession de header() se renvoyant la balle d'un script à un autre ?
Je suis en trin de faire le ménage dans le code, il a été vu et corrigé par plusieurs personnes, et j'ai bien l'impression qu'il y a des doublons. Mais je ne comprend pas pourquoi en supprimant ce bout de code, ça fonctionne très bien.

ViPHP
xTG
ViPHP | 7331 Messages

15 janv. 2013, 21:31

Si tu as un header qui redirige vers un script qui fait un header cela peut occasionner le message que tu as.