Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] problem z GET ? czy moze cos innego . . .
Forum PHP.pl > Forum > Przedszkole
Lukaasm
Zrobilem sobie proste logowanie:

  1. session_start();
  2. if($_SESSION['zalogowany'] == 'tak') {
  3. echo 'Zalogowany: ' . $_SESSION['login'];
  4. echo '<p><a href=index.php?mode=wyloguj class=button>Wyloguj sie</a>';
  5. }
  6.  
  7. elseif($_GET['mode'] == 'logowanie') {
  8. $login=$_POST[login];
  9. $pw=md5($_POST[password]);
  10. mysql_select_db("$db", $conn);
  11. $result = mysql_query("select password from users where login='$login'",$conn);
  12. $myrow = mysql_fetch_array($result) or die (mysql_error());
  13.  
  14. if($pw==$myrow[password]){
  15. $_SESSION['zalogowany'] = tak;
  16. $_SESSION['login'] = $login;
  17. }
  18. else{
  19. echo 'Błędne haslo !!';
  20. }
  21. }
  22. elseif($_GET['mode'] == 'wyloguj') {
  23. session_unregister(zalogowany);
  24. session_unregister(login);
  25. ?>
  26. <script LANGUAGE="JavaScript">
  27. window.top.location.href="index.php";
  28. </script>
  29. <?
  30. }
  31. else
  32. {
  33. echo '<form method=post action=index.php?mode=logowanie>
  34. Login:<br>
  35. <input type=text name=login>
  36. <br>Haslo:<br>
  37. <input type=password name=password>
  38. <br><input type=submit>';
  39. }

Zalogować sie idzie ladnie i cacy, ale wylogowac juz nie :[ tak jakby nie wykrywal tego kawalka:
  1. elseif($_GET['mode'] == 'wyloguj') {
  2. session_unregister(zalogowany);
  3. session_unregister(login);
  4. ?>
  5. <script LANGUAGE="JavaScript">
  6. window.top.location.href="index.php";
  7. </script>
  8. <?
  9. }

nawet jesli zmienie to na:
  1. <?php
  2. elseif($_GET['mode'] == 'wyloguj') {
  3. echo 'kupajasioitp';
  4. }
  5. ?>

to i tak nawet nie wyswietla mi tego txt. Siedze juz jakis czas i sie glowie gdzie tu blad ;]Mam nadzieje ze ktos bedzie mi w stanie pomoc ;d
hondek
Staraj się wartości atrybutów ujmować w " ", to dobry nawyk, w xhtml jest to konieczne.

spróbuj dać
  1. <a href="index.php?mode=wyloguj" class="button">Wyloguj sie</a>
lukaasm
to jednak nie to ;d a nawyk bedize trzeba wyrobic ;]
daw22
  1. session_start();
  2. if($_SESSION['zalogowany'] == 'tak') {
  3. echo 'Zalogowany: ' . $_SESSION['login'];
  4. echo '<p><a href=index.php?mode=wyloguj class=button>Wyloguj sie</a>';
  5. }
  6. elseif($_GET['mode'] == 'logowanie') {
  7. $login=$_POST[login];
  8. $pw=md5($_POST[password]);
  9. mysql_select_db("$db", $conn);
  10. $result = mysql_query("select password from users where login='$login'",$conn);
  11. $myrow = mysql_fetch_array($result) or die (mysql_error());
  12.  
  13. if($pw==$myrow[password]){
  14. $_SESSION['zalogowany'] = tak;
  15. $_SESSION['login'] = $login;
  16. }
  17. else{
  18. echo 'Błędne haslo !!';
  19. }
  20. }
  21. if($_GET['mode'] == 'wyloguj') {
  22. session_unset();  
  23. ?>
  24. <script LANGUAGE="JavaScript">
  25. window.top.location.href="index.php";
  26. </script>
  27. <?
  28. }
  29. else
  30. {
  31. echo '<form method="post" action="index.php?mode=logowanie">
  32. Login:<br>
  33. <input type="text" name="login">
  34. <br>Haslo:<br>
  35. <input type="password" name="password">
  36. <br><input type="submit">';
  37. }
  38. ?>
Wieviór
ta instrukcja do wylogowania znajduje się w elseif (costam), a to elseif poprzedzone jest if (jest zalogowany), więc do tego elseif nie dojdziesz będąc zalogowanym ;]
Kicok
Jak jesteś zalogowany, to ten elseif wykonany nie będzie. Przemyśl jeszcze raz logikę tego skryptu.

A jak już to zrobisz, to poczytaj jeszcze o sesjach, a szczególnie o tablicy $_SESSION, session_register, session_unregister oraz o register_globals - bo i tak Ci najprawdopodobniej ten skrypt działać nie będzie.
lukaasm
  1. <?php
  2. if($_GET['mode'] == 'wyloguj') {
  3.  session_unregister(zalogowany);
  4.  header('location:index.php');
  5.  }
  6.  else {
  7.  echo 'wylogowany';
  8.  }
  9. ?>


jako taki kod na samym dole zamiast elseif dziala normalnie o.O ;] teraz musze pomyslec ;] danke
Wieviór
te inne (wszystkie) elseif'y będą Ci działać, dopóki nie jesteś zalogowany. To jak Ci napisał Kicok, przemyśl logikę, strukturę skryptu ;]
lukaasm
już domyśliłem sie ;] po zalogowaniu kończy sprawdzanie warunków ;] a jako efekt daje albo zalogowanie badz info ze zle haslo ;] i stop ;] dzięki wielkie ;] i sory za głupi topic ;]
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.