Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> System Logowań
FdEf
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 26.07.2006

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
rama
post
Post #2





Grupa: Zarejestrowani
Postów: 50
Pomógł: 1
Dołączył: 25.02.2006
Skąd: Trójmiasto

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Chociaż mogę się mylić (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
PS3 Za jakie-kolwiek błędy gramatyczne czy merytoryczne, przepraszam z góry, ale po ciężkim dniu jestem.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 18:32