Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Jak wydobyć dane o użytwkoniku z logowania
Forum PHP.pl > Forum > Przedszkole
andrzejlechniak
Mam taki dziwny, może głupi problem.
Mam taki oto kod:

  1. $sql = "SELECT * FROM customers WHERE customers_email='$myusername'";
  2. $result = mysql_query($sql) or die(mysql_error());
  3. while ($row = mysql_fetch_array($result))
  4. {
  5. extract($row);
  6. echo $myusername;
  7.  
  8. }


i teraz loguje się na sesjach i wszelkich (mam nadzieję) zabezpieczeniach. Gdy jestem zalogowany, wyświetlam to:

  1. Jesteś zalogowany jako: <strong>' .$_SESSION['username']. '</strong>


i mój problem jest taki, że nie wiem jak wydobyć dane o użytkowniku który się zalogował - tzn. chciałbym jako zalogowany np. móc zmienić swoje dane, będąc zalogowanym. Na powyższym kodzie próbowałem, ale nic, dosłownie nic mi się nie wyświetla. Może macie jakieś propozycje?
Fifi209
A gdzie zapisujesz do ów sesji?
andrzejlechniak
Sesja nie jest zapisywana do bazy, jest tworzona na początku skryptu za pomocą session_start();
CuteOne
Czyli coś skopciłeś... daj pełen kod - bo po co nam baza danych skoro mowa jest o sesjach?
andrzejlechniak
No dobra, o moim logowaniem to już pewnie legendy krążą na tym forum. Ale proszę. Oto ono:

  1. if($_GET["wyloguj"] == '1')
  2. {
  3. unset($_SESSION["logged"]);
  4. }
  5.  
  6. if($_SESSION["logged"] != "tak")
  7. {
  8. if (empty($_POST))
  9. {
  10. echo '<form name="form1" action="logowanie.php?id=konto" method="Post" >
  11. <div class="log_main">
  12. <div class="log_dane">
  13. <div class="log_form">Login [podaj e-mail]: <input name="myusername" type="text" id="myusername"></div>
  14. <div class="log_form">Hasło: <input name="mypassword" type="password" id="mypassword"></div>
  15. <div class="log_form">&nbsp;
  16. <input type="submit" name="Submit" value="Zaloguj" title="zaloguj się">
  17. </div>
  18. </div>
  19. </div>
  20. </form>';
  21. }
  22.  
  23. // username and password sent from form
  24. $myusername=$_POST['myusername'];
  25. $mypassword=$_POST['mypassword'];
  26.  
  27. // To protect MySQL injection
  28. $myusername = stripslashes($myusername);
  29. $mypassword = stripslashes($mypassword);
  30. $myusername = mysql_real_escape_string($myusername);
  31. $mypassword = mysql_real_escape_string($mypassword);
  32.  
  33. $sql="SELECT * FROM customers WHERE customers_email='$myusername' AND customers_password='$mypassword'";
  34. $result=mysql_query($sql);
  35.  
  36. $count=mysql_num_rows($result);
  37.  
  38. if($count==1){
  39. $_SESSION["logged"] = "tak";
  40. $_SESSION["username"] = $myusername;
  41. }
  42. else
  43. {
  44. echo "Błędny login lub hasło";
  45. }
  46. }
  47.  
  48. if($_SESSION["logged"] == "tak")
  49. {
  50. echo '<div class="panel_admin_main">';
  51. echo '<img src="obrazki/kontrolka.png">
  52. Panel użytkownika | Jesteś zalogowany jako: <strong>' .$_SESSION['username']. '</strong> |
  53. <a href="logowanie.php?id=konto" title="zobacz odświeżenie strony">Zobacz odświeżenie</a> |
  54. <a href="logowanie.php?id=logowanie&wyloguj=1" OnClick="return confirm(\'Czy napewno chcesz się wylogować?\');" title="Wyloguj się z serwisu">Wyloguj się</a>
  55. <img src="obrazki/kontrolka_a.png" />';
  56. echo '</div>';
  57. }

Oczywiście na początku skryptu mam session_start();

PS. Moglibyście mi doradzić, co JEST TU nie tak (i ew. poprawki, albo przykłady jakieś), bo co i rusz jakieś z nim mam problemy. Pisałem na tym forum wiele razy o nim. Starałem się poprawić moje błędy o nim. PRZEPRASZAM wszystkich, których nie usłuchałem w tej sprawie. Ale teraz proszę Was o radę jak to poprawić.
CuteOne
1. Nie łącz kilku akcji w jednym pliku - tzn. zaloguj i wyloguj powinny być w oddzielnych plikach [ ale to już oftopem ]
2. Staraj się nie mieszać PHP z HTML - na necie znajdziesz sporo poradników jak tego uniknąć
3. W ramach testu stwórz dwa pliki loguj.php i sprawdz.php

loguj.php
  1. <?php
  2.  
  3. $_SESSION['loged'] = 'zalogowano';
  4.  
  5.  
  6. echo '<a href="http://127.0.0.1/sprawdz.php">sprawdz</a>';


sprawdz.php
  1.  
  2.  
  3. echo $_SESSION['loged'];


Powinieneś się domyślić czego brakuje w twoim skrypcie
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.