Problem z przekierowaniem

0

Dzień Dobry !
Męczę się praie 45 minut z przekierowaniem.
Niektóre headery działają, a niektóre nie. Mianowicie chcę, żeby jeżeli użytkownik nie jest w grupie adminem lub nie ma statusu admina w serwisie to nie może wykonać operacji. Warunek jest spełniony (że nie jest), a mimo to mi nie przekierowywuje.

<?php
session_start();
require_once 'connect.php';
 if (!isset($_SESSION['zalogowany']) || !$_SESSION['zalogowany']){
        $_SESSION['color']='#ff7c83';
        $_SESSION['error']='<span style="color: white;">Zaloguj się, aby uzyskać dostęp do strony!</span>';
        header('Location: index.php');
    }

   $getid=(int)$_GET['id'];
   $conn = mysqli_connect ($host, $db_user, $db_password, $db_name);
   $secure=mysqli_query($conn,"SELECT * FROM contest".$getid." WHERE imie='".$_SESSION['imie']."' AND typ='gadmin';");
     if(!(mysqli_num_rows($secure) > 0)&&$_SESSION['typ']!='admin')
       {
         $_SESSION['color']='#ff7c83';
         $_SESSION['error']='<span style="color: white;">Nie masz uprawnień, aby przeglądać tę stronę!</span>';
         header('Location: sekcja.php?id='.$getid);
    }

 $isit=mysqli_query($conn,"SELECT * FROM contest".$getid." WHERE typ='zadanie' AND ilosc='".$_POST['quest']."';");
 if(mysqli_num_rows($isit)>0)
   {
    $_SESSION['color']='#ff7c83';
    $_SESSION['error']='<span style="color: white;">To zadanie jest już w tej sekcji !</span>';
    header('Location: admin-contest.php?id='.$getid);

   }
 $quest=$_POST['quest'];
 $data=mysqli_query($conn,"SELECT nazwa, tresc FROM zadania WHERE id='".$quest."';");
 $datand=mysqli_fetch_row($data);
 $nazwa=$datand[0];
 $tresc=$datand[1];
 mysqli_query($conn,"INSERT INTO contest".$getid." (nazwa,imie,wynik,data,typ,ilosc) VALUES ('".$nazwa."', '".$tresc."', '0', '".date('Y-m-d H:i:s')."', 'zadan$
 or die("Błąd");
 $_SESSION['color']='#67b747';
  $_SESSION['error']='<span style="color: white;">Pomyślnie dodano zadanie do sekcji !</span>';
  header('Location: admin-contest.php?id='.$getid);
?>

0

Otwórz netbeansa - czy inne IDE z którego korzystasz, nacisnij ALT+ SHIFT +F (jeśli skrót jest zły - to poszukaj opcji format code). Następnie popraw kod, bo są tam błędy, jest możliwy SQL Injection, zedytuj oryginalnego posta i wklej tam ładniej sformatowany i poprawiony kod.

Eh... niech ja strace:)
Po pierwsze zbadaj jakie nagłówki są przesyłane w odpowiedzi na takie żądanie. Dodatkowo - z tego co wiem to header nie wykonuje przekierowania tylko ustawia taki nagłówek, to oznacza że kod jest dalej przetwarzany. Dodaj exit lub die po header(.... i powinno być ok.
Btw1. - nie ma sensu przechowywać w sesji kolorów oraz html'a z błędami (wystarczy typ komunikatu oraz treść)
Btw2. - nauczy się używać funkcji sprintf
Btw3. - poczytaj o sql injection.
Btw4. - pogrupuj ten kod w jakieś funkcje
Btw5. - nazwy zmiennych, tabel i kolumn w bazie - powinny być po angielsku.
Btw6. - poczytaj o code style w phpie - dzięki temu Twój kod będzie się przyjemniej czytało.

1 użytkowników online, w tym zalogowanych: 0, gości: 1