Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Logowanie.... Znowu
Amorph
post 23.07.2006, 20:17:59
Post #1





Grupa: Zarejestrowani
Postów: 309
Pomógł: 0
Dołączył: 6.06.2006
Skąd: include('root/europe/ poland/szczecin.php');

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


Witam Serdecznie.
W php jestem zielony jak szczypiorek na wiosnę więc bardzo proszę łopatologicznie smile.gif
Poczytałem na forum o sposobach i możliwościach logowania się na stronę. Mi najbardziej przypadł do gustu, względem potrzeb ten "tutek":

http://forum.php.pl/index.php?showtopic=48726&hl=

Starałem się go przepisać jednak nie widzę w którym miejscu ma się dziać cokolwiek aby przejść na przykładową stronę: secret.php gdzie jak rozumiem maja już być konkretne dane smile.gif. Jeśli byłby ktoś w stanie napisać jak mam złożyć cały plik login.php z przejściem do innych stron to proszę o pomoc.
Z góry bardzo dziękuję smile.gif

Ten post edytował Amorph 23.07.2006, 20:36:08
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
-Gość-
post 23.07.2006, 20:29:02
Post #2





Goście







Login.php
  1. <?php
  2. if ( $_POST['login'] == 'przykladowy_login' && $_POST['password'] == 'przykladowe_haslo' )
  3. {
  4. $_SESSION['auth'] = '1';
  5. echo 'Brawo zalogowałeś się!<br /><a href="secred.php">Kliknij tu aby przejść do hhiper tajnej strony</a>';
  6. }
  7. else
  8. {
  9. echo 'Podales zle haslo badz login!';
  10. <form action="Login.php" method="POST">Twój login<input type="text" name="login"><br />Twoje hasło<input type="password" name="password">
  11.  </form>
  12. }
  13. ?>


Secred.php
  1. <?php
  2. if ( isset ( $_SESSION['auth'] ) AND $_SESSION['auth'] == '1' )
  3. {
  4. echo 'masz dostep';
  5. echo '<br />I tu mozesz pisac rozne tajne rzeczy';
  6. }
  7. else
  8. {
  9. echo 'dostep zabroniony';
  10. }
  11. ?>
Go to the top of the page
+Quote Post
dawhol
post 23.07.2006, 20:33:38
Post #3





Grupa: Zarejestrowani
Postów: 256
Pomógł: 0
Dołączył: 19.07.2006
Skąd: Ostrów Wielkopolski

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


na koncu pliku login php mozesz dac linka do pliku secret.php no i przedewszystkim na poczatku tego pliku musisz dodac:

  1. <?php
  2. if ( isset ( $_SESSION['auth'] ) )
  3. {
  4. echo 'masz dostep';
  5. }
  6. else
  7. {
  8. echo 'dostep zabroniony';
  9. }
  10. ?>


I bedzie cacy ew. w pliku login.php mozesz dac przeladowanie strony np. za pomocą javy. bo tam niema bezposrednie miejsca na strone do któ¶ej ma sie przeładowac smile.gif. No i oczywiscie musisz sobei jescze formularz do tego logowania napisac winksmiley.jpg.

Pozdro jak by co to pisz =) jak czegos jescze nie kapujesz winksmiley.jpg


PS. Mam nadzieje za jakos ci pomogłem smile.gif


Mój bład winksmiley.jpg fakt ale php ucze sie od 2 dni smile.gif Musisz zrobic tak jak radzi kolega wyzej albo mozesz zamiast echo dac:
  1. <?php include('jakis.tamplik.php'); ?>


i plik ten najlepiej umiescic gdziec poza public_html smile.gif lub w jakims folderze prywatnym smile.gif

Ten post edytował dawhol 23.07.2006, 20:36:03


--------------------
Go to the top of the page
+Quote Post
Amorph
post 23.07.2006, 20:38:03
Post #4





Grupa: Zarejestrowani
Postów: 309
Pomógł: 0
Dołączył: 6.06.2006
Skąd: include('root/europe/ poland/szczecin.php');

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


Dzięki wielkie.
Wszystko prawie jasne, jednak chciałbym aby po poprawnym zalogowaniu " z automatu" skoczylo do innej strony a nie jak tu pokazuje sie link.
Dzieki za szybkie odpowiedzi.
Pozdrawiam

PS. Formularz to chyba tak:
  1. <?php
  2. echo '<form action="Login.php" method="POST">Twój login<input type="text" name="login"><br />Twoje hasło<input type="password" name="password"></form>';
  3. ?>


Ten post edytował Amorph 23.07.2006, 20:47:25
Go to the top of the page
+Quote Post
dawhol
post 23.07.2006, 21:21:12
Post #5





Grupa: Zarejestrowani
Postów: 256
Pomógł: 0
Dołączył: 19.07.2006
Skąd: Ostrów Wielkopolski

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


  1. <?php
  2. if ( isset ( $_SESSION['auth'] ) )
  3. {
  4. header('Location: www.twojastrona.pl/adresdopliku');
  5. }
  6. else
  7. {
  8. echo 'dostep zabroniony';
  9. }
  10. ?>


Twoj formularz nam nie potrzbny ty sobie go musisz napisac zeby bylo jak sie logowac winksmiley.jpg

niejestm pewny ale spróbuj tak header("Location: itd smile.gif "); masz wszytstko powyzej.

Ps. Niewiem czy działą bo nie sprawdzałem ale ta fukncja sluzy do przekierowania smile.gif bynajmniej tak jest TUTAJ

Ten post edytował dawhol 23.07.2006, 21:24:12


--------------------
Go to the top of the page
+Quote Post
Amorph
post 27.07.2006, 23:01:16
Post #6





Grupa: Zarejestrowani
Postów: 309
Pomógł: 0
Dołączył: 6.06.2006
Skąd: include('root/europe/ poland/szczecin.php');

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


Cytat
Niestety, nie ma róży bez kolców, przed header'em nie możemy wysyłać żadnych
znaków do przeglądarki. Tzn. nie może przed nią wystąpić jakiekolwiek
echo();, print(); i inne tego typu polecenia. Może także "zaszkodzić" mu
jakakolwiek spacja lub enter.

Więc jeśli ktoś ma wiedzę, i podzieli się nią, jak w pliku formularz.php po linii:
  1. <?php
  2. $_SESSION['auth'] = '1';
  3. ?>

wywołać otwarcie innej strony byłbym bardzo wdzięczny.

PS. Przed formularzem używam echo ponieważ wysyłam "początek" strony HTML;owej.

Ten post edytował Amorph 27.07.2006, 23:05:19
Go to the top of the page
+Quote Post
cadavre
post 27.07.2006, 23:38:24
Post #7





Grupa: Zarejestrowani
Postów: 472
Pomógł: 7
Dołączył: 7.12.2005
Skąd: Gliwice

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


Możesz bardzo brzydko wstawić w sam środek kodu coś takiego:
  1. <META HTTP-EQUIV="Refresh" CONTENT="3;URL=plik.php">

Spowoduje to po 3sec. otwarcie pliku plik.php. Jeśli ustawisz 0 - automatycznie przeniesie do plik.php.

Przeglądarki zinterpretują to poprawnie (IE, FF, Opera, Mozilla) a, że <meta> w środku <body> troszkę nie zgodnie ze standardami to mało ważne, bo validator i tak tego nie będzie sprawdzał gdyż nastąpi przekierowanie. winksmiley.jpg

Ten post edytował cadavre 27.07.2006, 23:39:38


--------------------
Silesian PHP User Group - www.spug.pl
Symfony2, OAuth2, budowanie API - masz pytania? Pisz!
Go to the top of the page
+Quote Post
dem
post 28.07.2006, 12:26:06
Post #8





Grupa: Zarejestrowani
Postów: 96
Pomógł: 7
Dołączył: 24.01.2006
Skąd: lublin/wawa

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


Cytat
Niestety, nie ma róży bez kolców, przed header'em nie możemy wysyłać żadnych
znaków do przeglądarki. Tzn. nie może przed nią wystąpić jakiekolwiek
echo();, print(); i inne tego typu polecenia. Może także "zaszkodzić" mu
jakakolwiek spacja lub enter.


a uzycie funkcji ob_start(); na poczatku pliku oraz ob_end_flush(); na koncu jest nie na miejscu?
Go to the top of the page
+Quote Post
-Gość-
post 28.07.2006, 12:52:01
Post #9





Goście







ja mam taką żelazną zasadę, że jak używam sesji
to session_start() jest zawsze na początku

  1. <?php
  2. ...
  3. ...
  4. ?>
Go to the top of the page
+Quote Post
-Gość-
post 28.07.2006, 13:06:25
Post #10





Goście







Kod Goscia z poczatku jest w porzadku, ale jak chcesz zeby po poprawnym zalogowaniu przenosil cie do pliku secred.php to zrob tak:
  1. <?php
  2. if ( $_POST['login'] == 'przykladowy_login' && $_POST['password'] == 'przykladowe_haslo' )
  3. {
  4. $_SESSION['auth'] = '1';
  5. header ('Location: ./secred.php'); 
  6. }
  7. else
  8. {
  9. echo 'Podales zle haslo badz login!';
  10. <form action="Login.php" method="POST">Twój login<input type="text" name="login"><br />Twoje hasło<input type="password" name="password">
  11.  </form>
  12. }
  13. ?>


Plik secred.php tak jak powyzej - sprawdza czy istnieje zmienna sesyjna i czy ma wartosc 1, jak nie to powrot:
  1. <?php
  2. if ( isset ( $_SESSION['auth'] ) AND $_SESSION['auth'] == '1' )
  3. {
  4. echo 'masz dostep';
  5. echo '<br />I tu mozesz pisac rozne tajne rzeczy';
  6. }
  7. else
  8. {
  9. header ('Location: ./index.php'); 
  10. }
  11. ?>


I tym sposobem za kazdym razem jak ktos poda zle haslo to wroci do formularza, zeby jeszcze raz wpisac dane.

PS. header() jest w srodku pliku, a nie na poczatku, ale u mnie takie rozwiazanie doskonalen dziala. Jak u ciebie nie bedzie to uzyj ob_start();
Go to the top of the page
+Quote Post
dem
post 28.07.2006, 13:19:50
Post #11





Grupa: Zarejestrowani
Postów: 96
Pomógł: 7
Dołączył: 24.01.2006
Skąd: lublin/wawa

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


nie czytasz ze zrozumieniem :} on nie chce uzyc tej funkcji na poczatq pliku, bo wstawia tam session_start()

jednak, jak mi sie wydaje(i chyba to nie jest zle) session_start() nei wysyla zadnych naglowkow, wiec ob_start(); moze byc zaraz po session_start...

u mnie dziala jak nalezy, nie napotkalem jescze zadnych przeszkod z taka kolejnoscia :E

---
moze i masz racje ;-)

Ten post edytował dem 28.07.2006, 13:52:50
Go to the top of the page
+Quote Post
-Gość-
post 28.07.2006, 13:34:15
Post #12





Goście







Chyba sam nie czytasz ze zrozumieniem - wyraznie przeciez napisalem, ze jak nie zadziala u niego header(), ktory jest wywolywany nie na poczatku to zeby uzyl ob_start(); , a co do session_start() to nic nie pisalem - ale jezeli sie uzywa zmiennych sesyjnych to zawsze powinien isc na poczatek.
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 02:18