Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Ukrywanie ścieżki do pliku w headerach, atrybut do header()
Bastian
post
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 14.09.2009

Ostrzeżenie: (0%)
-----


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

Ten post edytował Bastian 8.11.2009, 21:17:02
Go to the top of the page
+Quote Post
potreb
post
Post #2





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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.

Ten post edytował potreb 8.11.2009, 14:48:47


--------------------

Go to the top of the page
+Quote Post
Bastian
post
Post #3





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 14.09.2009

Ostrzeżenie: (0%)
-----


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); ?
Go to the top of the page
+Quote Post
potreb
post
Post #4





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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.


--------------------

Go to the top of the page
+Quote Post
Bastian
post
Post #5





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 14.09.2009

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 13:30