Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zabezpieczenie plikow .php
Forum PHP.pl > Forum > Przedszkole
Grimor
Witam, otóż napisałem skrypt logowania który przekierowuje osobę pod adres admin.php, tam znajdują się linki np admin.php?dzial=nazwadzialu, taki najprostszy sytem includowania plików. Jeśli zaś osoba nie jest zalogowana sprawdzanie czy istenieje sesja i przekierowuje go do pliku z logowaniem. Niestety działa to tylko przy wpisaniu linku w postaci admin.php?dzial=nazwadzialu. Gdy wejdę bezpośrednio w plik nazwadzialu.php plik sie normalnie otwiera i moge wykonać skrypt w nim zawarty. I tutaj rodzi się moje pytanie, czy istenieje sposób, który zabrania wykonywania skryptów poprzez bezpośrednie jego wywowalnie ? Wiem ze mogę tutaj w każdym pliku dodac sprawdzanie czy istenie sesja, chciałbym sie dowiedzieć czy istenie szybszy i bardzeij efektywny sposób.
Z góry dzięki za wszelką pomoc. Pozdrawiam.
Merko
W pliku nazwadzialu.php wpisz warunek logowania tzn if czy sesja istnieje np

Kod
if($_SESSION['login'] != ''){

//Treść pliku

}

else{

echo "<meta http-equiv=refresh content='0; url=index.php'>"; //przekierowanie

}
Lonas
Tworzysz sobie plik ktory sprawdza czy odpowiednie dane sa w sesji i jego includujesz w kazdym pliku gdzie ma byc wykonane sprawdzenie
TomASS
Lepiej zamiast tego:

  1. <?php
  2. echo "<meta http-equiv=refresh content='0; url=index.php'>"; //przekierowanie
  3. ?>

dać
  1. <?php
  2. header("Location: index.php");
  3. ?>


Cytat
Wiem ze mogę tutaj w każdym pliku dodac sprawdzanie czy istenie sesja, chciałbym sie dowiedzieć czy istenie szybszy i bardzeij efektywny sposób.

A co jest w tym złego i małoefektywnego? Jeden if....
Merko
Albo jak koledzy mówią

Plik sprawdz.php:

Kod
if($_SESSION['login'] == ''){

header("Location: index.php"); //przekierowanie

exit();
}




plik nazwadzialu.php:

Kod
include "sprawdz.php";

ble ble ble tresc pliku

W tym przypadku zostanie urwany skrypt tam gdzie exit(); i przeładuje 
Grimor
Ok, przyzam się ze to z lenistwa zapytałem biggrin.gif Nie chciało mi się dodawać do każdego pliku tego fragmentu.
Mój kod wygląda następująco.
Kod
    if (!isset($_SESSION['logged'])) {
        header("location: index.php");
        }


Dzięki za wysztko.
Lonas
Ale lepiej stworz sobie osobny plik i jego includuj bo potem w razie jakiejkolwiek zmiany robisz to w jednym pliku a nie w kazdym w ktorym jest sprawdzenie
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.