Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] Logowanie i sesje (jak wziąść id)
Forum PHP.pl > Forum > Przedszkole
in5ane
Witam,
mam sobie taki skrypt logowania na sesjach i jak zrobić żeby po zalogowaniu do sesji zapisywał się id użytkownika.

W bazie jest to ID, natomiast w formularzu jest to login, ale niech się zapisuje pod zmienną ID.

Z góry dziękuję za pomoc.

Poniżej kod:
  1. <?php
  2.  
  3. if(isset($_POST['logowanko'])) {
  4.  
  5. $dane = @mysql_query('SELECT id, haslo FROM hasla WHERE id = "'.$_POST['login'].'" AND haslo = "'.$_POST['haslo'].'"') or die(mysql_error());
  6.  
  7.  
  8. if(mysql_num_rows($dane) == 1) {
  9. $_SESSION['logowanko'] = 'poprawne';
  10. } else {
  11. $_SESSION['logowanko'] = 'Błędny login lub hasło!';
  12. }
  13.  
  14. unset($_POST['logowanko']);
  15. }
  16.  
  17. if(isset($_POST['wylogowanko'])) {
  18.  
  19. unset($_SESSION['logowanko']);
  20. }
  21.  
  22.  
  23. function logowanko() {
  24.  
  25. if($_SESSION['logowanko'] == 'poprawne') {
  26.  $string = '<form action="'.getenv(REQUEST_URI).'" method="post"><input type="submit" name="wylogowanko" value="Wyloguj" style="font-family: Verdana; font-size: 10px"></form>';
  27. } else {
  28. $string = '<form action="'.getenv(REQUEST_URI).'" method="post"><ul style="list-style-type: none; margin: 0; padding: 0;">';
  29.  
  30.  if(isset($_SESSION['logowanko'])) $string .= '<li>'.$_SESSION['logowanko'].'</li>';
  31.  
  32.  $string .= '<div align="center">
  33.  
  34.  <font face="Verdana" size="2"><b>Aby zalogować się wpisz dane:</b></font>
  35.  
  36.  <table border="0" width="21%" style="border-collapse: collapse" id="table1">
  37. <tr>
  38. <td width="16%"><font face="Verdana" size="2">
  39. <u>ID:</u></font></td>
  40. <td width="74%">
  41. <input type="text" name="login" size="28" style="font-family: Verdana; font-size: 10px"></td>
  42. </tr>
  43.  
  44. <tr>
  45. <td width="16%"><font face="Verdana" size="2">
  46. <u>Hasło:</u></font></td>
  47. <td width="74%">
  48. <input type="password" name="haslo" size="28" style="font-family: Verdana; font-size: 10px"></td>
  49. </tr>
  50. <tr>
  51. <td width="16%">&nbsp;</td>
  52.  
  53. <td width="74%">
  54. <input type="submit" value="OK" name="logowanko" style="font-family: Verdana; font-size: 10px"></td>
  55. </tr>
  56.  </table>
  57.  
  58.  </div>
  59. ';
  60.  
  61. }
  62.  
  63. return $string;
  64.  
  65. }
  66.  
  67. ?>


To działa na takiej zasadzie, że inkluduje ten plik powyżej i piszę:
  1. <?php
  2. if($_SESSION['logowanko'] == 'poprawne') {
  3. echo 'test';
  4. } else {
  5. }
  6. echo logowanko();
  7. ?>
Kicok
Po pierwsze, to zainteresowałbyś się w końcu zabezpieczaniem skryptów przed atakami SQL-injection. To nie jest wcale takie trudne...


A co do problemu, to co stoi na przeszkodzie przed zapisem:
  1. <?php
  2. if(mysql_num_rows($dane) == 1) {
  3. $_SESSION['logowanko'] = 'poprawne';
  4. $_SESSION['user_login'] = $_POST['login'];
  5. }
  6. ?>

?
in5ane
A jak mam to niby zabezpieczyć?
bober0
1. może najpierw poczytaj na ten temat.
2. każdy sensowniejszy framework ma to w standardzie.
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.