Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Ukrywanie ścieżki do pliku w headerach
Forum PHP.pl > Forum > Przedszkole
Bastian
Witam,
Mam taki sobie skrypcik, który jest częścią programu zapomocą, którego można się logować (uczę sie programować smile.gif ). Generalnie wszystko hula, można się zarejestrować i zalogować. Jednak po zalogowaniu chciałbym aby delikwenta przenosiło do stronki stronki zarezerwowanej dla zalogowanych userów. Z tego co wiem należy to zrobić za pomocą nagłówków http

  1. if($_SERVER['REQUEST_METHOD']=='POST')
  2. {
  3. if(($id=sprawdzanko($_POST['login'],$_POST['haslo'])) !== false)
  4.  
  5. {
  6. echo 'Zostales zalogowany';
  7. [b]header('Location: <a href="http://grzempek.c0.pl/test_php/PROJEKT/wnetrze.php" target="_blank">http://grzempek.c0.pl/test_php/PROJEKT/wnetrze.php</a> ');[/b]
  8. }
  9. else
  10. {
  11. echo 'Podales zle dane';
  12. }
  13. }
  14. else
  15. {
  16. echo '<form method="post" action="index3.php"/>
  17. Zaloguj sie:<input type="text" name="login"><input type="text" name="haslo" />
  18. <input type="submit" value="OK" /></form>';
  19. }
  20.  
  21. }
  22. ?>


I ta metoda działa, ale ścieżka jest widoczna w pasku przeglądarki i plik wnetrze.php można wywołać "z ręki" a nie o to przecież chodzi. Przeszukałem dokumentacje php ale nie udalo mi sie tego znaleźć. Jaki argumetny trzeba w headerach podać aby ścieżka nie była widoczna w przeglądarce. Jeśli z założenia robie to źle to prosze o oświecenie mnie jak takie rzeczy należy rozwiązywać.

Pozdrawiam
Bastian
potreb
Możesz na początku pliku wnetrze.php dać:
  1. if(!isset($_SESSION['login])) header('location: index.php');

Oczywiście o ile operujesz na sesjach.

Jeżeli sprawdzasz tylko użytkownika po przesłaniu postem informacji to ta metoda działa tylko jednokrotnie, dlatego musisz zapisać w sesji dane, że kolo został zalogowany.

Poszukaj na forum przykładów zastosowania takiego mechanizmu, było milion razy.
Bastian
Nie bardzo kumam.
Operuje na sesjach ale jesli do pliku wnetrze.php dam

  1. if(!isset($_SESSION['login])) header('location: index.php');


to co ma się stać? Nie bardzo kumam konstrukcję tego if'a to wygląda tylko jak jego deklaracja, bez podpowiedzi co ma wywołać.. (moge sie mylic, rzecz jasna)



Cytat(Bastian @ 8.11.2009, 21:20:40 ) *
Nie bardzo kumam.
Operuje na sesjach ale jesli do pliku wnetrze.php dam

  1. if(!isset($_SESSION['login])) header('location: index.php');


to co ma się stać? Nie bardzo kumam konstrukcję tego if'a to wygląda tylko jak jego deklaracja, bez podpowiedzi co ma wywołać.. (moge sie mylic, rzecz jasna)


Ok juz kumam Twój zamysł smile.gif Poprostu dość dziwnie to napisałeś bo wydaje mi się, że powinno iść tak:

  1. if($_SESSION['login'] == 0)
  2. {
  3. header('Location: precz.php');
  4. }


W kazdym razie dzięki, bo juz mniejwięcej wiem jak kontrolować takie stronki sesjach.


Hej,

A mam takie pytanko poboczne. A jak zrobić taki mechanizm logowania i wyświetlania stronki tylko dla zarejestrowanych userów bez uzycia sesji i cookiesów. Skrypt sprawdza czy user i login sie zgadzaja w bazie i na podstawie tego wyświetla ukrytą stronke..tyle, że znów pytanie jak zabezpieczyć taką stronke przed wyświetleniem poprzez zwykłe wklepanie linka...czy da się to za pomocą funkcji include(stronka.php); ?
potreb
Gdzieś musisz zapisać dane, o użytkowniku aby porównać go z rekordami w bazie, i podtrzymać logowanie. Nie kombinuj jak koń pod górę. Każdy ma sesję więc, możesz to zrobić na przykładzie sesji.
Bastian
Cytat(potreb @ 9.11.2009, 22:21:56 ) *
Gdzieś musisz zapisać dane, o użytkowniku aby porównać go z rekordami w bazie, i podtrzymać logowanie. Nie kombinuj jak koń pod górę. Każdy ma sesję więc, możesz to zrobić na przykładzie sesji.


Wiem, że to kombinowanie pod górkę, ale sprawdzam różne warianty czysto hipotetycznie...No więc sprawdziłem i


  1. if($_SERVER['REQUEST_METHOD']=='POST')
  2. {
  3. if(($id=sprawdzanko($_POST['login'],$_POST['haslo'])) !== false)
  4.  
  5. {
  6. echo 'Zostales zalogowany';
  7. include('./wnetrze.php');
  8. }
  9. else
  10. {
  11. echo 'Podales zle dane';
  12. }
  13. }
  14. else
  15. {
  16. echo '<form method="post" action="index3.php"/>
  17. Zaloguj sie:<input type="text" name="login"><input type="text" name="haslo" />
  18. <input type="submit" value="OK" /></form>';
  19. }
  20.  
  21. }


działa, nie ujawniając nigdzie scieżki do wnetrze.php
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.