Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Logowanie
jaros
post 10.01.2006, 23:46:50
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 4.01.2006

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


Witam!

Mam taki problemik. Otóż mam skryp logowania klientów do sklepu.
Jak zrobić coś takiego aby dodanie towaru do koszyka mógł dokonać tylko zalogowany klient?

Pozdrawiam!!!
Go to the top of the page
+Quote Post
SongoQ
post 10.01.2006, 23:57:28
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Po zalogowaniu zapisujesz klienta do sesji i sprawdzasz czy user jest zalogowany i czy moze dodac towar_


--------------------
Go to the top of the page
+Quote Post
-Guest-
post 11.01.2006, 00:00:54
Post #3





Goście







A jak sprawdzić czy klient jest zalogowany interesuje mnie kod php.
Go to the top of the page
+Quote Post
Dark Raven
post 11.01.2006, 00:08:01
Post #4





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 30.10.2005
Skąd: Jaworzno

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


Nic trudnego. Rozumiem, że informację o zalogowaniu użytkownika przechowujesz w zmiennej sesji. Jeśli tak możesz napisać prostą instrukcję if.

Na przykład:
  1. <?php
  2.  
  3. if ( isset($_SESSION['zalogowany_user']) )
  4. {
  5.  
  6. echo "<a href='dodaj.php?userid=$_SESSION['zalogowany_user']&towarid=$towarid>Dodaj do koszyka</a>";
  7.  
  8. }
  9.  
  10. ?>

Możesz to oczywiście wrzucić w pętlę.

Na stronie dodaj.php musisz dodać takie samo sprawdzanie stanu zalogowania użytkownika. Możesz też napisać fuckcję, która robiła by to automatycznie za ciebie.

Jeśli źle cię zrozumiałem lub się pomyliłem to przepraszam.

Przy okazji witam i pozdrawiam wszystkich.

Ten post edytował Dark Raven 11.01.2006, 23:14:57
Go to the top of the page
+Quote Post
camelleon
post 11.01.2006, 15:38:52
Post #5





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 11.01.2006

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


Witam,

Ja mam inny problem z logowaniem

Po wpisaniu loginu i hasla przekierowuje na strone konto.php

ale niestety cos sie nie chce przekierowac dry.gif


to czesc kodu strony logowania

  1. <?php
  2. if ($u && $p) { // Jeżeli wszystko jest OK.
  3. $query = "SELECT user_id, first_name FROM users WHERE username='$u' AND password=PASSWORD('$p')";
  4. $result = @mysql_query ($query);
  5. $row = mysql_fetch_array ($result, MYSQL_NUM); 
  6. if ($row) { 
  7.  
  8. // Rozpocznij sesję, zarejestruj wartości i przekieruj użytkownika.
  9. //session_name ('IDTwojejSesji');
  10. ini_set ('session.use_cookies', 0);
  11. $_SESSION['first_name'] = $row[1];
  12. $_SESSION['user_id'] = $row[0];
  13. header ("Location: http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . "/konto.php");
  14. exit();
  15.  
  16. } else {
  17.  $message = '<p>Wprowadzona przez Ciebie nazwa użytkownika i hasło nie zgadzają się z naszymi
     danymi.</p>'
    ; 
  18. }
  19.  } else {
  20. $message .= '<p>Spróbuj jeszcze raz.</p>';
  21.  }
  22. ?>



a to kod strony konto.php

  1. <?php
  2. session_name ('IDTwojejSesji');
  3. session_start(); // Rozpocznij sesję.
  4. if (!isset($_SESSION['first_name'])) {
  5.  header ("Location: http://" . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . "/index.php");
  6.  exit(); // Opuść skrypt.
  7. }
  8.  
  9. // Ustaw tytuł strony i dołącz nagłówek HTML.
  10. $page_title = 'Twoje Konto!';
  11. include ('szablony/naglowek.inc');
  12.  
  13. // Wyświetl spersonalizowany komunikat.
  14. echo "<p>{$_SESSION['first_name']}, jesteś zalogowany!</p>";
  15.  
  16. include ('szablony/stopka.inc'); // Dołącz stopkę HTML.
  17. ?>


nie wiem juz co jest nie tak

walcze z tym juz drugi dzien

Pozdrawiam

Ten post edytował camelleon 11.01.2006, 15:40:30
Go to the top of the page
+Quote Post
tiraeth
post 11.01.2006, 16:46:35
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

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


ob_start() na początku kodu i ob_end_flush() na końcu, poza tym po co Ci exit(); po header() questionmark.gif
Go to the top of the page
+Quote Post
Rzast
post 11.01.2006, 16:53:42
Post #7





Grupa: Zarejestrowani
Postów: 45
Pomógł: 0
Dołączył: 24.11.2005
Skąd: Podczerwone

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


Cytat(tiraeth @ 2006-01-11 15:46:35)
... po co Ci exit(); po header() questionmark.gif

  1. <?php
  2. header("Location: http://www.example.com/"); /* Przekieruj przeglądarkę */
  3. exit;  /* Upewnij się, że kod poniżej nie zostanie wykonany 
  4.  po przekierowaniu. */
  5. ?>

Sam tak używam. Po co serwer ma przerabiać resztę skryptu, jeśli jest przekierowanie?


--------------------
Podhale naprawa komputerów, strony WWW
Go to the top of the page
+Quote Post
tiraeth
post 11.01.2006, 18:49:02
Post #8





Grupa: Przyjaciele php.pl
Postów: 1 789
Pomógł: 41
Dołączył: 30.10.2003
Skąd: Wrocław

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


Ustaw na początku skryptu

Kod
error_reporting(E_ALL);


i zobaczymy czy jakiś błąd wyświetla
Go to the top of the page
+Quote Post
Dark Raven
post 11.01.2006, 23:20:54
Post #9





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 30.10.2005
Skąd: Jaworzno

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


Umieściłeś cały skrypt? Jeśli nie to sprawdź czy na pewno nie wysyłałeś już nic do nagłówka. Nic innego mi nie przychodzi do głowy.
Go to the top of the page
+Quote Post
jaros
post 12.01.2006, 00:26:24
Post #10





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 4.01.2006

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


Dzięki SongoQ za pomoc. Już jest wszystko OK.
Go to the top of the page
+Quote Post
camelleon
post 12.01.2006, 12:51:26
Post #11





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 11.01.2006

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


Dzieki!

Dodalem tylko ob_start() na początku kodu i ob_end_flush() na końcu

Pozdrawiam

Ten post edytował camelleon 12.01.2006, 13:12:38
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.07.2025 - 12:13