Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> system logowania, sesje - błąd !, przykład książkowy
mitp
post 16.11.2005, 18:11:20
Post #1





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 29.12.2004

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


Witam

Mam bardzo fajny skrypt, który pochodzi z ksiazki php i MySQL tworzenie stron www, ale co ciekawego wywala błędy.

nic nie zmieniałem, może ktoś mi powiedzieć co jest nie tak?

pliki:
uwierz_glowny.php
tylko_czlonkowie.php
wylog.php

uwierz_glowny.php
  1. <?php
  2.  
  3. if(isset($_POST['iduzytkownika']) && isset($_POST['haslo']))
  4. {
  5. // jeżeli użytkownik wła&para;nie podj&plusmn;ł próbę zalogowania
  6. $iduzytkownika = $_POST['iduzytkownika'];
  7. $haslo = $_POST['haslo'];
  8.  
  9. $bd_lacz = new mysql('localhost', 'root', 'krasnal', 'uwierz');
  10.  
  11. if (mysqli_connect_errno()) {
  12. echo 'Poł&plusmn;czenie z baz&plusmn; danych nie powiodło się: '.mysqli_connect_error();
  13. exit();
  14. }
  15.  
  16. $zapytanie = 'select * from uwierzytelnieni_uzytkownicy '
  17.  ."where uzytkownik='$iduzytkownika' "
  18.  ." and haslo=sha1('$haslo')";
  19.  
  20. $wynik = $bd_lacz->query($zapytanie);
  21. if($wynik->num_rows > 0)
  22. {
  23. // jeżeli dane s&plusmn; w bazie zarejestrowanie identyfikatora użytkownika
  24. $_SESSION['prawid_uzyt'] = $iduzytkownika;
  25. }
  26. $bd_lacz->close();
  27. }
  28. ?>
  29. <html>
  30. <body>
  31. <h1>Strona główna</h1>
  32. <?
  33. if(isset($_SESSION['prawid_uzyt']))
  34. {
  35. echo 'Użytkownik zalogowany jako: '.$_SESSION['prawid_uzyt'].'<br />';
  36. echo '<a href="wylog.php">Wylogowanie</a><br />';
  37. }
  38. else
  39. {
  40. if(isset($iduzytkownika))
  41. {
  42. // jeżeli próba logowania była nieudana
  43. echo 'Zalogowanie niemożliwe.<br />';
  44. }
  45. else
  46. {
  47. // nie było próby logowania lub nast&plusmn;piło wylogowanie
  48. echo 'Użytkownik niezalogowany.<br />';
  49. }
  50.  
  51. // tworzenie formularza logowania
  52. echo '<form method="post" action="uwierz_glowny.php">';
  53. echo '<table>';
  54. echo '<tr><td>Identyfikator użytkownika:</td>';
  55. echo '<td><input type="text" name="iduzytkownika"></td></tr>';
  56. echo '<tr><td>Hasło:</td>';
  57. echo '<td><input type="password" name="haslo"></td></tr>';
  58. echo '<tr><td colspan="2" align="center">';
  59. echo '<input type="submit" value="Logowanie"></td></tr>';
  60. echo '</table></form>';
  61. }
  62. ?>
  63. <br>
  64. <a href="tylko_czlonkowie.php">Czę&para;ć członkowska</a>
  65. </body>
  66. </html>


tylko_czlonkowie.php
  1. <?php
  2.  
  3. echo '<h1>Część członkowska</h1>';
  4.  
  5. // sprawdzenie zmiennej sesji
  6.  
  7. if(isset($_SESSION['prawid_uzyt']))
  8. {
  9. echo '<p>Użytkownik zalogowany jako '.$_SESSION['prawid_uzyt'].'</p>';
  10. echo '<p>Oto zawartość dostępna tylko dla członków</p>';
  11. }
  12. else
  13. {
  14. echo '<p>Użytkownik niezalogowany.</p>';
  15. echo '<p>Tylko zalogowani użytkownicy mogą oglądać tę stronę.</p>';
  16. }
  17.  
  18. echo '<a href="uwierz_glowny.php">Powrót do strony głównej</a>';
  19. ?>


wylog.php
  1. <?php
  2.  
  3. $stary_uzyt=$_SESSION['prawid_uzyt']; // przechowanie do sprawdzenie czy logowanie nastąpiło
  4. unset($_SESSION['prawid_uzyt']);
  5. ?>
  6. <html>
  7. <body>
  8. <h1>Wylogowanie</h1>
  9. <?php
  10. if (!empty($stary_uzyt))
  11. {
  12. echo 'Wylogowano.<br />';
  13. }
  14. else
  15. {
  16. // jeżeli brak zalogowania, lecz w jakiś sposób uzyskany dostęp do strony
  17. echo 'Użytkownik niezalogowany, tak więc brak wylogowania.<br />';
  18. }
  19. ?>
  20. <a href="uwierz_glowny.php">Powrót do strony głównej</a>
  21. </body>
  22. </html>


baza:
  1. CREATE DATABASE uwierz;
  2.  
  3. USE uwierz;
  4.  
  5. CREATE TABLE uwierzytelnieni_uzytkownicy (
  6. uzytkownik varchar(20) NOT NULL,
  7. haslo varchar(40) NOT NULL,
  8. PRIMARY KEY (uzytkownik)
  9. );
  10.  
  11. INSERT
  12. INTO uwierzytelnieni_uzytkownicy VALUES
  13. ('uzytkownik', 'haslo');
  14.  
  15. INSERT
  16. INTO uwierzytelnieni_uzytkownicy VALUES
  17. ( 'testowy', sha1('haslo') );
  18.  
  19. GRANT SELECT ON uwierz.*
  20. TO uwierzytel@localhost
  21. IDENTIFIED BY 'uwierzytel';
  22.  
  23. FLUSH privileges;


no i super - wszystko cacy odpalamy uwierz_glowny.php , wpisujemy login, haslo

i

  1. Fatal error: Cannot instantiate non-existent class: mysql in c:\usr\krasnal\www\a\uwierz_glowny.php on line 10



co tu jest nie tak?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
lukas1
post 16.11.2005, 18:25:25
Post #2





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 11.11.2005

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


W dzisiątej linii tworzysz obiekt klasy 'mysql'. Zmienna $bd_lacz jest wskaźnikiem do tego obiektu. Żeby nie wyświetlało tego błędu musisz dołączyć plik z klasą 'mysql' ( tj. include 'nazwa_pliku' ). biggrin.gif
Go to the top of the page
+Quote Post
mitp
post 16.11.2005, 18:33:59
Post #3





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 29.12.2004

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


a w ktorym miejscu biggrin.gif
Go to the top of the page
+Quote Post
lukas1
post 16.11.2005, 18:56:39
Post #4





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 11.11.2005

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


include 'nazwa_pliku';
można umieścić w linii 9 pliku uwierz_glowny.php
Upewnij się, że masz ten plik w katalogu wraz z pozostałymi plikami, które tu przedstawiłeś.

pozdrawiam smile.gif
Go to the top of the page
+Quote Post
dr_bonzo
post 16.11.2005, 18:57:24
Post #5





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


lukas1: to nie to.

mitp: brakuje litery i
  1. <?php
  2.  .. new mysqli(...)
  3. ?>
-- tak jak w pozostalych funkcjach, np. mysqli_connect_errno()


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
mitp
post 16.11.2005, 19:07:04
Post #6





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 29.12.2004

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


dr_bonzo dopisalem tam gdzie wspomniales "mysqli" - i dalej bylo to samo

lukas1z include tez nie smiga

hmm cos innego? smile.gif
Go to the top of the page
+Quote Post
legorek
post 16.11.2005, 19:14:25
Post #7





Grupa: Zarejestrowani
Postów: 411
Pomógł: 35
Dołączył: 27.06.2004
Skąd: Kraków

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


A masz w ogóle php5 na serwerze? Mysqli jest dopiero w piątce.


--------------------
Go to the top of the page
+Quote Post
mitp
post 16.11.2005, 20:53:24
Post #8





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 29.12.2004

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


tzn mam zainstalowanego krasnala, a w wersji ktora pobralem jest php 5.0.2 wiec powinno dzialac
Go to the top of the page
+Quote Post
legorek
post 17.11.2005, 11:06:31
Post #9





Grupa: Zarejestrowani
Postów: 411
Pomógł: 35
Dołączył: 27.06.2004
Skąd: Kraków

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


nie wiem jak jest na krasnalu, zrób sobie phpinfo() to będziesz wiedział, bo wygląda na to ze nie masz piątki.


--------------------
Go to the top of the page
+Quote Post
revyag
post 17.11.2005, 14:50:43
Post #10





Grupa: Przyjaciele php.pl
Postów: 2 258
Pomógł: 16
Dołączył: 21.09.2004
Skąd: Kielce

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


Ma php5 ale domyślnie chodzi chyba na czwórce. Musisz odpalić sobie piątkę.


--------------------
-------------

------
Go to the top of the page
+Quote Post
mitp
post 17.11.2005, 16:46:20
Post #11





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 29.12.2004

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


revyag masz racje staruje domyslnie z 4 - ale juz przelaczalem z 10 razy i na 4 i na 5 i dalej to samo. No nic wymysle cos innego

dzieki wszystkim za podpowiedzi
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 15:03