Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Logowanie + zapamiętanie.
GoldeNx3
post
Post #1





Grupa: Zarejestrowani
Postów: 228
Pomógł: 1
Dołączył: 24.12.2010

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


Witam. Mam skrypt do rejestracji, logowania i jak mogę zrobić, że jak użytkownik się zaloguje, wyłączy przeglądarkę i włączy to dalej będzie zalogowany?
Go to the top of the page
+Quote Post
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Takie coś robi się w oparciu o cookie.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
GoldeNx3
post
Post #3





Grupa: Zarejestrowani
Postów: 228
Pomógł: 1
Dołączył: 24.12.2010

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


Cytat(fifi209 @ 1.04.2011, 12:27:40 ) *
Takie coś robi się w oparciu o cookie.



Nakierujesz?
Go to the top of the page
+Quote Post
ciekawskiii
post
Post #4





Grupa: Zarejestrowani
Postów: 467
Pomógł: 39
Dołączył: 7.11.2010
Skąd: Raz tu, raz tam

Ostrzeżenie: (30%)
XX---


ech poszukaj tu na forum albo w google o cookie, tego jest na prawde duzo a nie co dzien to samo pisac


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





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


  1. //przy loogowaniu z zapamietaniem
  2. if(isset($_POST['zapamietaj'])){
  3. setcookie('nazwa','na przyklad nazwa uzytkownika','czas zycia ciasteczka');
  4. }
  5. //sprawdzenie czy zapamietany
  6. if(isset($_COOKIE['nazwa'])){
  7. //zapamietany -> logowanie z nazwa usera
  8. $_SESSION['user'] = $_COOKIE['na przyklad nazwa uzytkownika'];
  9. }
Ot cała filozofia. Oczywście należy sprawdzić czy taki user istnieje jaki jest zapisany w ciachu i w ogole zabezpieczyc ten skrypt pamietajac ze w ciastku moze byc cokolwiek tylko uzytkownik sobie wymarzy.

Ten post edytował sadistic_son 1.04.2011, 17:35:00


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
GoldeNx3
post
Post #6





Grupa: Zarejestrowani
Postów: 228
Pomógł: 1
Dołączył: 24.12.2010

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


Czyli tutaj mam zastosować ten taki kwadracik co się zaznacza? haha.gif

Mógłbyś bardziej naprowadzić? Bo w tym akurat zielony jestem. ; /

Ten post edytował GoldeNx3 2.04.2011, 01:40:50
Go to the top of the page
+Quote Post
sadistic_son
post
Post #7





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Nie czaję na co bardziej naprowadzić?
  1. <form action="loguj.php" method="POST" >
  2. <input type="text" name="login" />
  3. <input type="password" name="pass" />
  4. <input type="checkbox" name="zapamietaj" />
  5. <input type="submit" name="loguj" /></form>

loguj.php
  1. if(isset($_POST['loguj']) && !empty($_POST['login']) && !empty($_POST['pass'])){
  2. $login=mysql_real_escape_string($_POST['login']);
  3. $pass=mysql_real_escape_string($_POST['pass']);
  4. $sql="SELECT * FROM tabela WHERE user='$login' AND password='$pass'";
  5. $res=mysql_query($sql);
  6. $num=mysql_num_rows($res);
  7. if($num>0){
  8. $_SESSION['zalogowany']=$login;
  9. if(isset($_POST['zapamietaj'])){
  10. setcookie('nazwa_ciacha',$login,time()+1209600); //ciastko bedzie wazne przez 14 dni
  11. }
  12. }else{ $error='Zle haslo lub nazwa uzytkownika';}
  13. }
Masz gotowca. Potem sprawdzasz tak jak pokazalem wczesniej czy ciacho istnieje i jesli tak to od razu tworzysz sesje. Cala filozofia. Tylko tak jak juz wczesniej wspomnialem... ten skrypt trzeba zabezpieczyc bardziej.

PS. Pisane na poczekaniu, moga byc bledy.

Ten post edytował sadistic_son 2.04.2011, 02:49:48


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
GoldeNx3
post
Post #8





Grupa: Zarejestrowani
Postów: 228
Pomógł: 1
Dołączył: 24.12.2010

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


Chyba jestem na to zbyt tępy. : /

Wyskakuje mi error, gdy wciskam by zapamiętało:

Kod
Warning: Cannot modify header information - headers already sent by (output started at /home/cskrwawa/public_html/sklep/head.php:9) in /home/cskrwawa/public_html/sklep/login.php on line 46



Mój login.php:

http://wklejto.pl/94358
Go to the top of the page
+Quote Post
sadistic_son
post
Post #9





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Ten error oznacza, że nagłówki zostały już wysłane. Na chłopski rozum masz już coś zwrócone do przeglądarki zanim tworzysz ciacho i zapewne ten kod html jest w head.php. Tak więc to: include "head.php"; przenieś do linijki 10.

Ten post edytował sadistic_son 2.04.2011, 18:39:10


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
GoldeNx3
post
Post #10





Grupa: Zarejestrowani
Postów: 228
Pomógł: 1
Dołączył: 24.12.2010

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


Niestety to samo:

Kod
Warning: Cannot modify header information - headers already sent by (output started at /home/xxx/public_html/sklep/head.php:9) in /home/xxx/public_html/sklep/login.php on line 46



head.php:

http://wklejto.pl/94361

Ten post edytował GoldeNx3 2.04.2011, 19:07:08
Go to the top of the page
+Quote Post
Kuba707
post
Post #11





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 20.03.2010

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


Może to po prostu BOM na początku pliku? Jeśli używasz notatnika zainstaluj Notepad++ i tam dajesz "Format > Koduj w UTF8 (bez BOM)".
Go to the top of the page
+Quote Post
sadistic_son
post
Post #12





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


W pliku login.php między linijke 10 a 11 wciśnij ob_start(); a do np. 85 wrzuć ob_flush();.

@UP: co ma piernik do wiatraka?

Ten post edytował sadistic_son 2.04.2011, 19:30:02


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
GoldeNx3
post
Post #13





Grupa: Zarejestrowani
Postów: 228
Pomógł: 1
Dołączył: 24.12.2010

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


ob_start(); ma być za include, tak?
Go to the top of the page
+Quote Post
sadistic_son
post
Post #14





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Ma być w miejscu gdzie wysyłanie nagłówków nie będzie już powodować błędów, czyli za wszelkimi session_start, setcookie, header(); itp.


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
GoldeNx3
post
Post #15





Grupa: Zarejestrowani
Postów: 228
Pomógł: 1
Dołączył: 24.12.2010

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


@EDIT:

Udało się. Sprawdzanie, czy jest ciacho przerzuciłem do index.php. Dać tam jakieś zabezpieczenie, by tylko raz sprawdzał i logował? Bo teraz sprawdza co wejście w index.php.

Ten post edytował GoldeNx3 3.04.2011, 09:36:01
Go to the top of the page
+Quote Post
sadistic_son
post
Post #16





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

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


Tak, tylko raz. Robisz cos tego typu:
  1. if(!isset($_SESSION['zalogowany']) && isset($_COOKIE['ciastko'])){
  2. $_SESSION['zalogowany']='costam';
  3. }
Oczywiście musisz sprawdzić jeszcze wartość z ciacha, np. zahashowaną przez md5 nazwę usera czy hasło.

Ten post edytował sadistic_son 3.04.2011, 18:16:46


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
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: 19.08.2025 - 13:06