Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z logowaniem, mam skrypt i nie wiem dlaczego nie dział
asterix1983
post
Post #1





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 6.03.2005

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


Mam napisany skrypt logowania oparty na łączeniu się z bazą danych

Tabela z użytkownikami wygląda następująco:
  1. CREATE TABLE admin (
  2. login varchar(32),
  3. haslo varchar(32)
  4. );

wpis wygląda następująco :
  1. INSERT
  2. INTO adm<span style='color:orange'><span
  3. style='color:green'>in</span> VALUES ( 'admin',password('admin') );


i teraz admin.php
  1. <?php
  2. // dołączenie plików funkcji tej aplikacji
  3. require_once('funkcje_plyty_lista.php'); 
  4.  
  5.  
  6.  
  7. if ($HTTP_POST_VARS['login'] && $HTTP_POST_VARS['haslo'])
  8. //  próba logowania
  9. {
  10.  
  11.     $login = $HTTP_POST_VARS['login'];
  12.     $haslo = $HTTP_POST_VARS['haslo'];
  13.  
  14.     if (loguj($login, $haslo))
  15.     {
  16.       // jeżeli w bazie danych, zgłoszenie identyfikatora użytkownika
  17.       $HTTP_SESSION_VARS['uzyt_admin'] = $login;
  18.     }  
  19.     else
  20.     {
  21.       // niepomyślne logowanie
  22.       tworz_naglowek_html('Problem:');
  23.       echo 'Zalogowanie niemożliwe.Należy być zalogowanym, aby przeglšdać tę stronę.<br />';
  24.       tworz_html_url('logowanie.php', 'Logowanie');
  25.       tworz_stopke_html();
  26.       exit;
  27.     }      
  28. }
  29.  
  30. tworz_naglowek_html('Administracja');
  31. if (sprawdz_uzyt_admin())
  32.   wyswietl_menu_admin();
  33. else
  34.   echo 'Brak autoryzacji do wejœcia na obszar administracyjny.';
  35.  
  36. tworz_stopke_html();
  37.  
  38. ?>


do tego funkcje_bazy_system.php
  1. <?php
  2. //funkcje bazy danych 
  3.  
  4. function lacz_bd()
  5. {
  6.    $wynik = mysql_pconnect('localhost', 'root', 'krasnal'); 
  7.    if (!$wynik)
  8.       return false;
  9.    if (!mysql_select_db('biblio_media'))
  10.       return false;
  11.  
  12.    return $wynik;
  13. }
  14.     
  15. ?>    


do tego funkcje_uwierz.php

  1. <?php
  2.  
  3. require_once('funkcje_bazy_system.php');
  4.  
  5. function loguj($login, $haslo)
  6. // sprawdzenie nazwy użytkownika i hasła w bazie danych
  7. // jeżeli tak, zwraca true
  8. // w przeciwnym wypadku false
  9. {
  10.   // łączenie z bazą danych
  11.   $lacz = lacz_bd();
  12.   if (!$lacz)
  13.     return 0;
  14.  
  15.   $zapytanie = 'select * from admin '
  16.                .&#092;"where login='$iduzytkownika' \"
  17.                .&#092;" and haslo=password('$haslo')\";
  18.   $wynik = mysql_query($zapytanie);
  19.   if(mysql_num_rows($wynik) > 0)
  20.   {
  21.     // jeżeli dane są w bazie zarejestrowanie identyfikatora użytkownika
  22.     $HTTP_SESSION_VARS['uzyt_admin'] = $login;
  23.   }
  24. }
  25.  
  26. function sprawdz_uzyt_admin()
  27. // sprawdzenie zalogowanie i powiadomienie, jeżeli nie
  28. {
  29.   global $HTTP_SESSION_VARS;
  30.   if (isset($HTTP_SESSION_VARS['uzyt_admin']))
  31.     return true;
  32.   else
  33.     return false;
  34. }
  35.  
  36. function zmien_haslo($login, $stare_haslo, $nowe_haslo)
  37. // zmiana hasła użytkownika
  38. // zwraca true lub false
  39. {
  40.   // jeżeli stare hasło prawidłowe
  41.   // zmiana hasła na nowe_haslo i zwraca true
  42.   // w przeciwnym wypadku false
  43.   if (loguj($login, $stare_haslo))
  44.   {
  45.     if (!($lacz = lacz_bd()))
  46.       return false;
  47.     $wynik = mysql_query( &#092;"update admin 
  48.                             set haslo = password('$nowe_haslo')
  49.                             where login = '$login'&#092;");
  50.     if (!$wynik)
  51.       return false;  // brak zmian
  52.     else
  53.       return true;  // zmiana pomyślna
  54.   }
  55.   else
  56.     return false; // nieprawidłowe stare hasło
  57. }
  58.  
  59.  
  60. ?>


i skrypt logowanie.php

  1. <?php
  2.  
  3.  
  4.  require_once('funkcje_plyty_lista.php');
  5.  tworz_naglowek_html('Administracja');
  6.  
  7.  wyswietl_form_log();
  8.  
  9.  tworz_stopke_html();
  10. ?>


i jeszcze do tego dwie funkcje (więcej nie podaje bo nie ma takiej potrzeby)
w pliku funkcje_wyswietl.php

  1. function wyswietl_form_log()
  2. {
  3.   // wyświetlenie formularza logowania
  4. ?>
  5.   <form method=post action=\"admin.php\">
  6.   <table bgcolor=#cccccc>
  7.    <tr>
  8.      <td>Nazwa użytkownika:</td>
  9.      <td><input type=text name=login></td></tr>
  10.    <tr>
  11.      <td>Hasło:</td>
  12.      <td><input type=password name=haslo></td></tr>
  13.    <tr>
  14.      <td colspan=2 align=center>
  15.      <input type=submit value=\"Logowanie\"></td></tr>
  16.    <tr>
  17.  </table></form>
  18. <?php
  19. }
  20.  
  21. function wyswietl_menu_admin()
  22. {
  23. ?>
  24. <br />
  25. <a href=\"indeks.php\">Główna strona</a><br />
  26. <a href=\"dodaj_kat_form.php\">Dodanie nowej kategorii</a><br />
  27. <a href=\"dodaj_plyty_form.php\">Dodanie nowej płyty</a><br />
  28. <a href=\"zmiana_hasla_form.php\">Zmiana hasła administratora</a><br />
  29. <a href=\".../news/panel_news.php\">Panel newsów administratora</a><br />
  30. <?php
  31.  
  32. }


No i po próbie zalogowania
Login: admin
Hasło: admin

pisze mi komunikat :

Zalogowanie niemożliwe.Należy być zalogowanym, aby przeglądać tę stronę.


JUŻ nie wiem gdzie mam błąd w tym skrypcie, mi się wydaje że jest dobrze a nie jest przecierz.
Proszę o pomoc (IMG:http://forum.php.pl/style_emoticons/default/withstupidsmiley.gif)
bo bez tego nie zrobie nic dalej a czas mnie nagli (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif)
Dodam że mysql działa poprawnie bo inne projekciki na bazie mi chodzą

Moje przypuszczenie jest takie że coś sesja mi nie chce działać poprawnie ale oczywście mogę się mylyć

Pleas help me (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) !

------------------------------------
P.S
Teraz mi doszło jeszcze coś takiego:
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\usr\krasnal\www\biblia\system\funkcje_bazy_system.php:17) in c:\usr\krasnal\www\biblia\system\admin.php on line 5

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\usr\krasnal\www\biblia\system\funkcje_bazy_system.php:17) in c:\usr\krasnal\www\biblia\system\admin.php on line 5

i to też nie wiem dlaczego (IMG:http://forum.php.pl/style_emoticons/default/angrysmiley.gif)

Ten post edytował asterix1983 21.04.2005, 11:56:20
Go to the top of the page
+Quote Post

Posty w temacie


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: 24.08.2025 - 16:47