Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Logowanie
Forum PHP.pl > Forum > Przedszkole
jaros
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!!!
SongoQ
Po zalogowaniu zapisujesz klienta do sesji i sprawdzasz czy user jest zalogowany i czy moze dodac towar_
Guest
A jak sprawdzić czy klient jest zalogowany interesuje mnie kod php.
Dark Raven
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.
camelleon
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
tiraeth
ob_start() na początku kodu i ob_end_flush() na końcu, poza tym po co Ci exit(); po header() questionmark.gif
Rzast
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?
tiraeth
Ustaw na początku skryptu

Kod
error_reporting(E_ALL);


i zobaczymy czy jakiś błąd wyświetla
Dark Raven
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.
jaros
Dzięki SongoQ za pomoc. Już jest wszystko OK.
camelleon
Dzieki!

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

Pozdrawiam
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.