Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP]Skrypt logowania
Forum PHP.pl > Forum > Przedszkole
andrzejlechniak
Witam. Jestem jeszcze początkujący z PHP. Mam problem odnośnie logowania za pomocą PHP i MySQL. Chciałbym w jednym pliku mieć formularz i za pomocą przesyłania danych na tej samej stronie otrzymać wiadomość, że jestem zalogowany/lub nie. Podaję mój fragment kodu:

Plik index.php
  1. ...
  2. $sql="SELECT * FROM osoby WHERE login='$myusername' and password='$mypassword'";
  3. $result=mysql_query($sql);
  4.  
  5. $count=mysql_num_rows($result);
  6.  
  7. if($count==1){
  8. session_register("myusername");
  9. session_register("mypassword");
  10. echo 'Jesteś zalogowany.';
  11. }
  12. else {
  13. echo "Błędny login lub hasło";
  14. }
  15.  
  16. $logowanie=<<<HR
  17. <form name="form1" action="index.php?go=4" method="Post" >
  18.   <div>Użytkownik: <input name="myusername" type="text" id="myusername"></div>
  19.   <div>Hasło: <input name="mypassword" type="password" id="mypassword"></div>
  20.   <div>&nbsp;<input type="submit" name="Submit" value="Zaloguj"></div>
  21. </form>
  22. HR;
  23.  
  24. $content=<<<HR
  25.   <div id="front">
  26.   <div class="main">
  27.   <div class="header">Logowanie</div>
  28.   <div class="informacje">
  29.   $logowanie
  30.   </div>
  31.   </div>
  32.   </div>
  33. HR;
  34. return $content;
  35. ...


Problem w tym, że jak przesyłam w ten sposób to po zalogowaniu mam wiadomość o tym, że jestem zalogowany, ale mam dalej formularz na stronie z pustymi polami, a chcę aby był widoczny TYLKO przed logowaniem. Proszę, pomóżcie (tak abym zrozumiał, czyli proszę o jakąś podpowiedź z kodem.) Pozdrawiam, Andrzej
wookieb
No więc skonstroluj to czy ma się wyświetlać czy też nie.
zimekk
  1. if (empty($_POST))
  2. {
  3.  
  4. $logowanie=<<<HR
  5. <form name="form1" action="index.php?go=4" method="Post" >
  6.   <div>Użytkownik: <input name="myusername" type="text" id="myusername"></div>
  7.   <div>Hasło: <input name="mypassword" type="password" id="mypassword"></div>
  8.   <div>&nbsp;<input type="submit" name="Submit" value="Zaloguj"></div>
  9. </form>
  10. HR;
  11. }
andrzejlechniak
Dzięki, to pomogło. Mam jeszcze jedno małe pytanko - jak zrobić, aby z innego pliku wyświetlały mi się funkcje w części dla zalogowanych. Plik zaczynam od session_start(), mam dołączony plik z funkcjami ale gdy wywołuję je [np. administracja() lub $content_admin] to widzę tylko komunikat z tym, że jestem zalogowany i oczywiście resztę strony OPRÓCZ funkcji, którą wywołuję. Próbowałem różnych sposobów, ale wymiękam. Pomóżcie. Podaję fragment kodu:

  1. if($count==1){
  2. session_register("myusername");
  3. session_register("mypassword");
  4. echo 'Jesteś zalogowany.<br />';
  5. echo '<a href="index.php?go=4">Wyloguj się</a>';
  6. }
  7. else {
  8. echo "Błędny login lub hasło";
  9. }
  10.  
  11. if (empty($_POST))
  12. {
  13. $logowanie=<<<HR
  14.  <form name="form1" action="index.php?go=4" method="Post" >
  15.   <div>Użytkownik: <input name="myusername" type="text" id="myusername"></div>
  16.   <div>Hasło: <input name="mypassword" type="password" id="mypassword"></div>
  17.   <div>&nbsp;<input type="submit" name="Submit" value="Zaloguj"></div>
  18. </form>
  19. HR;
  20. }
  21.  
  22. $content=<<<HR
  23.   <div id="front">
  24.   <div class="main">
  25.   <div class="header">Logowanie</div>
  26.   <div class="informacje">
  27.   $logowanie
  28.   </div>
  29.   </div>
  30.   </div>
  31. HR;
  32. return $content;
  33.  
  34. }


Dzięki, Andrzej
Meferot
Osobiście to Ci radzę po sprawdzeniu poprawności danych w bazie utworzyć sesje np:
$_SESSION['user_id'] = x;

x=id usera z bazy

A potem jak będziesz sobie chciał wyświetlić tylko coś dla osoby zalogowanej to robisz:

  1. if(!empty($_SESSION['user_id'])) {
  2. echo 'Widoczne tylko dla zalogowanych!';
  3. }
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.