Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: System Logowań
Forum PHP.pl > Forum > Przedszkole
FdEf
Czesc mam mały problem z systemem logowan, mianowicie nie wiem czemu po wpisaniu uzytkownika i hasła nie dochodzi do zidentyfikowania uzytkownika

oto kod
  1. <?php
  2.  
  3.  
  4.  
  5.  
  6. if(isset($HTTP_POST_VARS['iduzytkownika']) && isset($HTTP_POST_VARS['haslo']))
  7.  
  8. {
  9.  
  10.  
  11. // jeżeli użytkownik właśnie podjął próbę zalogowania
  12.  
  13.  $iduzytkownika = $HTTP_POST_VARS['iduzytkownika'];
  14.  
  15. $haslo = $HTTP_POST_VARS['haslo'];
  16.  
  17.  
  18. $bd_lacz = mysql_connect('localhost', 'root', 'adapter27')
  19.  or die('Nie można się połączyć: ' . mysql_error());
  20.  print ('Polaczenie z baza danych mysql nawiazane');
  21.  
  22. mysql_select_db('nasza_baza', $bd_lacz);
  23.  
  24. $zapytanie = 'select * from profil ' //Z TABELI O NAZWIE PROFIL
  25.  
  26.  ."where uzytkownik='$iduzytkownika' "
  27.  
  28.  ." and haslo=password('$haslo')";
  29.  
  30. $wynik = mysql_query($zapytanie, $bd_lacz);
  31.  
  32. if(mysql_num_rows($wynik) > 0)
  33.  
  34.  //if(mysql_unbuffered_query($wynik) > 0)
  35. {
  36. // jeżeli dane są w bazie zarejestrowanie identyfikatora użytkownika
  37.  
  38. $HTTP_SESSION_VARS['prawid_uzyt'] = $iduzytkownika;
  39.  
  40. }
  41.  
  42. }
  43.  
  44. ?>
  45.  
  46.  
  47.  
  48.  
  49. <?php
  50. //PRAWIDLOWE LOGOWANIE
  51.  
  52. if(isset($HTTP_SESSION_VARS['prawid_uzyt']))
  53.  
  54. {
  55.  
  56.  
  57. echo '<br>Zalogowany jako: '.$HTTP_SESSION_VARS['prawid_uzyt'].'<br>';
  58.  
  59. echo '<div align="left">';
  60.  
  61. echo '<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-width: 0" bordercolor="#111111" width="160" height="1">';
  62.  
  63. echo '<tr>';
  64.  
  65. echo '<td width="70" height="1" style="border-style: none; border-width: medium" rowspan="4"><img border="0" src="grafa/logged.jpg " width="88" height="66"></td>';
  66.  
  67. echo '<td width="80" height="1" style="border-style: none; border-width: medium">';
  68.  
  69. echo " <a href="index.php?page=wylog&".SID."">Logout</a><br>";
  70.  
  71. echo " <a href="index.php?page=edycja&".SID."">Edycja</a><br>";
  72.  
  73. echo " <a href=java script:NewWindow('include/upload.php')>Avatar</a>";
  74.  
  75. echo '</td>';
  76.  
  77. echo '</tr>';
  78.  
  79. echo '</table>';
  80.  
  81. echo '</div>';
  82.  
  83. }
  84.  
  85. else
  86.  
  87. {
  88.  
  89. if(isset($iduzytkownika))
  90.  
  91. {
  92.  
  93. echo '<p><font color="red">Blad</font>niepoprawny login lub haslo</p>';
  94.  
  95. }
  96.  
  97. else
  98.  
  99. {
  100.  
  101. // nie było próby logowania lub nastąpiło wylogowanie
  102.  
  103. }
  104.  
  105.  
  106.  
  107.  
  108.  // tworzenie formularza logowania
  109.  
  110. echo'<center>Witam w systemie logowan obslugi hurtowni komputerowej BLACK </center></br></br>';
  111.  
  112.  
  113. echo '<form method="post" action="index.php">';
  114.  
  115.  echo '<table align="center">';
  116.  
  117. echo '<tr><td>Login:</td>';
  118.  
  119. echo '<td><input style="BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; FONT-SIZE: 7pt; BORDER-LEFT: 1px solid; BORDER-BOTTOM: 1px solid; FONT-FAMILY: Verdana; BACKGROUND-COLOR: CCCCCC " size="17" type="text" name="iduzytkownika"></td></tr>';
  120.  
  121. echo '<tr><td>Haslo:</td>';
  122.  
  123. echo '<td><input style="BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; FONT-SIZE: 7pt; BORDER-LEFT: 1px solid; BORDER-BOTTOM: 1px solid; FONT-FAMILY: Verdana; BACKGROUND-COLOR: CCCCCC" size="17" type="password" name="haslo"></td></tr>';
  124.  
  125. echo '<tr><td colspan="2" align="right"><input type="submit" value="ok" name="submit" style="font-family: Courier New; color: #000000; font-size: 10px; border: 1px solid #000000; padding-left: 10; padding-right: 10; padding-top: 1; padding-bottom: 1">';
  126.  
  127. echo '</table></form>';
  128.  
  129.  
  130.  
  131.  
  132.  
  133. }
  134.  
  135. ?>




jak na moje oko tu bledu nie popełniłem jednak byc moze podczas tworzenia bazy mysql, a robie to tak:

create database nasza_baza; //tworze baze danych
use nasza_baza;
create table profil (

uzytkownik varchar(16) not null,

haslo varchar(30) not null,

email varchar(100) not null,

admin tinyint not null,

primary key (uzytkownik)

); //tworze tabele

INSERT INTO profil VALUES('user', 'user', 'gori27@poczta.onet.pl', 0); //dodaje rekordy


mysql> SELECT * FROM profil;
+------------+-------+-----------------------+-------+
| uzytkownik | haslo | email | admin |
+------------+-------+-----------------------+-------+
| user | user | gori27@poczta.onet.pl | 0 |
+------------+-------+-----------------------+-------+
1 row in set (0,00 sec)

i tak wyglada moja tabele

gdy sie loguje jako user i wpisuje haslo user nic sie nie dzieje nie nastepuje zalogowanie

Mógłby mi ktos pomóc??
Z góry dzieki
rama
Zdaje mi się, że problem leży w zapytaniu do bazy danych, a dokładniej przy warunku o hasło (and haslo...), gdzie wykorzystywana jest funkcja password(), jednakże dane z tej kolumny (haslo) w bazie nie są zakodowane przez ową funkcję, więc zapytanie zwraca brak (0) wyników smile.gif Chociaż mogę się mylić winksmiley.jpg

PS Dodatkowo przy debugowaniu własnego skryptu możesz dodać na samej górze linijkę z funkcją error_reporting, która pozwoli wyłapać parę mniej i bardziej ważnych błędów winksmiley.jpg
  1. <?php
  2. error_reporting( E_ALL );
  3. ?>

PS1 Jeśli chodzi o mnie, to preferuje używać krótsze nazwy "superglobali", czyli:
$HTTP_POST_VARS['name'] = $_POST['name']
$HTTP_GET_VARS['name'] = $_GET['name'], itd... ;]
PS2 Z doświadczenia wiem, że czasami stała SID nie działa, więc lepiej używać z funkcji session_id(), ale to tylko takie moje skromne zdanie winksmiley.jpg
PS3 Za jakie-kolwiek błędy gramatyczne czy merytoryczne, przepraszam z góry, ale po ciężkim dniu jestem.
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.