Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Co źle w skrypcie?, Prosze o Pomoc
wolacinio
post
Post #1





Grupa: Zarejestrowani
Postów: 85
Pomógł: 1
Dołączył: 2.06.2009

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


witam mam problem z pewnym kodem

oto on Fatal error: Call to a member function query() on a non-object in C:\Program Files\WebServ\httpd\laa\funkcje_uwierz.php on line 37


a plik funkcje_uwierz to

  1. <?php
  2.  
  3. require_once('funkcje_bazy.php');
  4.  
  5. FUNCTION rejestruj($nazwa_uz, $email, $haslo)
  6. // zarejestrowanie nowej osoby w bazie danych
  7. // zwraca true lub komunikat o błędzie
  8. {
  9. // połączenie z bazą danych
  10. $lacz = lacz_bd();
  11.  
  12. // sprawdzenie, czy nazwa użytkownika nie powtarza się
  13. $wynik = $lacz->query("select * from uzytkownik where nazwa_uz='$nazwa_uz'");
  14. IF (!$wynik)
  15. throw new Exception('Wykonanie zapytania nie powiodło się.');
  16. IF ($lacz->num_rows>0)
  17. throw new Exception('Nazwa użytkownika zajęta — proszę wrócić i wybrać inną.');
  18.  
  19. // jeżeli wszystko w porządku, umieszczenie w bazie danych
  20. $wynik = $lacz->query("insert into uzytkownik values
  21. ('$nazwa_uz', sha1('$haslo'), '$email')");
  22. IF (!$wynik)
  23. throw new Exception('Rejestracja w bazie danych niemożliwa — proszę spróbować później.');
  24.  
  25. RETURN true;
  26. }
  27.  
  28. FUNCTION loguj($nazwa_uz, $haslo)
  29. // sprawdzenie nazwy użytkownika i hasła w bazie danych
  30. // jeżeli się zgadza, zwraca true
  31. // jeżeli nie, wyrzuca wyjątek
  32. {
  33. // połączenie z bazą danych
  34. $lacz = lacz_bd();
  35.  
  36. // sprawdzenie unikatowości nazwy użytkownika
  37. $wynik = $lacz->query("select * from uzytkownik where nazwa_uz='$nazwa_uz' and haslo = sha1('$haslo')");
  38. IF (!$wynik)
  39. throw new Exception('Logowanie nie powiodło się.');
  40.  
  41. IF ($wynik->num_rows>0)
  42. RETURN true;
  43. else
  44. throw new Exception('Logowanie nie powiodło się.');
  45. }
  46.  
  47. FUNCTION sprawdz_prawid_uzyt()
  48. // sprawdzenie czy użytkownik jest zalogowany i powiadomienie go jeżeli nie
  49. {
  50. IF (isset($_SESSION['prawid_uzyt']))
  51. {
  52. echo 'Zalogowano jako '.stripslashes($_SESSION['prawid_uzyt']).'.';
  53. echo '<br />';
  54. }
  55. else
  56. {
  57. // nie jest zalogowany
  58. do_html_heading('Problem:');
  59. echo 'Brak zalogowania.<br />';
  60. tworz_HTML_URL('logowanie.php', 'Logowanie');
  61. tworz_stopke_html();
  62. exit;
  63. }
  64. }
  65.  
  66. FUNCTION zmien_haslo($nazwa_uz, $stare_haslo, $nowe_haslo)
  67. // zmiana hasła użytkownika ze stare_haslo na nowe_haslo
  68. // zwraca true lub false
  69. {
  70. // jeżeli stare hasło jest prawidłowe zmiana nowe_haslo i zwrócenie true
  71. // w przeciwnym wypadku wyrzucenie wyjątku
  72. loguj($nazwa_uz, $stare_haslo);
  73. $lacz = lacz_bd();
  74. $wynik = $lacz->query("update uzytkownik
  75. set haslo = sha1('$nowe_haslo')
  76. where nazwa_uz = '$nazwa_uz'");
  77. IF (!$wynik)
  78. throw new Exception('Zmiana hasła nie powiodła się.');
  79. else
  80. RETURN true; // zmiana udana
  81. }
  82.  
  83. FUNCTION pobierz_losowe_slowo($dlugosc_min, $dlugosc_max)
  84. //pobranie losowego słowa ze słownika o określonej długości zwrócenie go
  85. {
  86. // generowanie losowego słowa
  87. $slowo = '';
  88. // tę ścieżkę należy dostosować do ustawień własnego systemu
  89. $slownik = '/usr/dict/words'; // słownik ispell
  90. $wp = @fopen($slownik, 'r');
  91. IF(!$wp)
  92. RETURN false;
  93. $wielkosc = filesize($slownik);
  94.  
  95. // przejście do losowej pozycji w słowniku
  96. srand ((double) microtime() * 1000000);
  97. $losowa_pozycja = rand(0, $wielkosc);
  98. fseek($wp, $losowa_pozycja);
  99.  
  100. // pobranie ze słownika następnego pełnego słowa o właściwej długości
  101. while (strlen($slowo)< $dlugosc_min || strlen($slowo)>$dlugosc_max || strstr($slowo, "'"))
  102. {
  103. IF (feof($wp))
  104. fseek($wp, 0); // jeżeli koniec pliku, przeskocz na początek
  105. $slowo = fgets($wp, 80); // przeskoczenie pierwszego słowa bo może BYć niepełne
  106. $slowo = fgets($wp, 80); // potencjalne hasło
  107. };
  108. $slowo=trim($slowo); // obcięcie początkowego \n z funkcji fgets
  109. RETURN $slowo;
  110. }
  111.  
  112. FUNCTION ustaw_haslo($nazwa_uz)
  113. // ustawienie hasła użytkownika na losową wartość
  114. // zwraca nowe hasło lub false w przypadku niepowodzenia
  115. {
  116. // pobranie losowego słowa ze słownika o długości pomiędzy 6 i 13 znaków
  117. $nowe_haslo = pobierz_losowe_slowo(6, 13);
  118.  
  119. IF($nowe_haslo==false)
  120. throw new Exception('Wygenerowanie nowego hasła nie powiodło się.');
  121. // dodanie liczby pomiędzy 0 i 999 w celu stworzenia lepszego hasła
  122. srand ((double) microtime() * 1000000);
  123. $losowa_liczba = rand(0, 999);
  124. $nowe_haslo .= $losowa_liczba;
  125.  
  126. // ustawienie nowego hasła w bazie danych lub zwrócenie false
  127. $lacz = lacz_bd();
  128. RETURN false;
  129. $wynik = $lacz->query("update uzytkownik
  130. set haslo = sha1('$nowe_haslo')
  131. where nazwa_uz = '$nazwa_uz'");
  132. IF (!$wynik)
  133. throw new Exception('Zmiana hasła nie powiodła się.'); // hasło nie zmienione
  134. else
  135. RETURN $nowe_haslo; // hasło zmienione pomyślnie
  136. }
  137.  
  138. FUNCTION powiadom_haslo($nazwa_uz, $haslo)
  139. // powiadomienie użytkownika o zmianie hasła
  140. {
  141. $lacz = lacz_bd();
  142. $wynik = $lacz->query("select email from uzytkownik where nazwa_uz='$nazwa_uz'");
  143. IF (!$wynik)
  144. {
  145. throw new Exception('Nie znaleziono adresu e-mail');
  146. }
  147. else IF ($wynik->num_rows==0)
  148. {
  149. throw new Exception('Nie znaleziono adresu e-mail'); // nazwy użytkownika nie ma w bazie danych
  150. }
  151. else
  152. {
  153. $wiersz = $wynik->fetch_object();
  154. $email = $wiersz->email;
  155. $od = "From: obsluga@zakladkaphp \r\n";
  156. $wiad = "Hasło systemu ZakładkaPHP zostało zmienione na $haslo \r\n"
  157. ."Proszę zmienić je przy następnym logowaniu. \r\n";
  158.  
  159.  
  160. IF (mail($email, 'Informacja o logowaniu ZakładkaPHP', $wiad, $od))
  161. RETURN true;
  162. else
  163. throw new Exception('Wysłanie e-maila nie powiodło się');
  164. }
  165. }
  166.  
  167. ?>


Oto laczenie z baza danych zmieniona przezmnie
  1. <?php
  2.  
  3. FUNCTION lacz_bd()
  4. {
  5. $wynik = mysql_connect('localhost', 'root', 'root', 'zakladki');
  6. IF (!$wynik)
  7. throw new Exception('Połączenie z serwerem bazy danych nie powiodło się');
  8. else
  9. RETURN $wynik;
  10.  
  11. }
  12.  
  13. ?>


a tak wygladała przed przeróbką

  1. <?php
  2.  
  3. FUNCTION lacz_bd()
  4. {
  5. $wynik = new mysqli_connect('localhost', 'uzyt_zak', 'haslo', 'zakladki');
  6. IF (!$wynik)
  7. throw new Exception('Połączenie z serwerem bazy danych nie powiodło się');
  8. else
  9. RETURN $wynik;
  10. }
  11.  
  12. ?>



Prosze o Pomoc winksmiley.jpg
Go to the top of the page
+Quote Post

Posty w temacie
- wolacinio   [PHP]Co źle w skrypcie?   15.07.2009, 16:30:03
- - erix   Co w źle w tytule? edit: otwieram   15.07.2009, 16:40:47
- - wolacinio   Prosze o pomoc   16.07.2009, 09:04:05
- - pyro   Zmień tagi SQL na PHP, żeby było cz...   16.07.2009, 09:08:23
- - wolacinio   [HTML] pobierz, plaintext <?php require_once...   16.07.2009, 09:15:52
- - Spawnm   Proszę poprawić BBcode , jeśli dajesz kod php używ...   16.07.2009, 09:19:12
- - wolacinio   to co mam dać?   16.07.2009, 09:21:08
- - blooregard   Cytat$lacz = lacz_bd(); A nie powinno być ...   16.07.2009, 09:25:36
- - wolacinio   [XML] pobierz, plaintext $łacz to zmienna która od...   16.07.2009, 09:29:21
- - blooregard   A co to jest to lacz_bd() ? Klasa ? Funkcja ?   16.07.2009, 09:37:44
|- - pyro   Cytat(blooregard @ 16.07.2009, 10:37...   16.07.2009, 09:51:30
- - wolacinio   funkcja tu masz dokładnie [PHP] pobierz, plainte...   16.07.2009, 09:48:07
- - wolacinio   to powiedz pyro jak ma być oto poprawiony kod [...   16.07.2009, 09:54:58
- - blooregard   Cytatblooregard, nie wiem jak ty to wypatrzy...   16.07.2009, 10:03:16
|- - pyro   Cytat(blooregard @ 16.07.2009, 11:03...   16.07.2009, 10:20:24
- - wolacinio   nadal bład chce moge podesłac ci strone   16.07.2009, 10:10:31
- - blooregard   @Pyro: Dobra, mój błąd, nie widziałem tej definicj...   16.07.2009, 10:31:46
- - wolacinio   wychodzi nadal bład Fatal error: Class 'mysq...   16.07.2009, 10:58:46
- - erix   Popatrz uważnie na kod, który podał ~pyro.   16.07.2009, 11:32:21
- - wolacinio   no to mówie nadal bład jak zmieniłem tak jak mów...   16.07.2009, 12:27:47
|- - fifi209   Cytat(wolacinio @ 16.07.2009, 12:27:4...   16.07.2009, 12:29:10
|- - pyro   Cytat(wolacinio @ 16.07.2009, 13:27:4...   16.07.2009, 13:32:48
|- - wolacinio   Cytat(pyro @ 16.07.2009, 14:32:48 ) P...   16.07.2009, 14:39:23
|- - fifi209   Cytat(wolacinio @ 16.07.2009, 14:39:2...   16.07.2009, 14:41:46
- - erix   CytatFatal error: Class 'mysqli' not found...   16.07.2009, 12:44:19
- - wolacinio   dobra przeczytam o tym php.ini i rozszerzeniu MyS...   16.07.2009, 14:48:20
- - erix   Pomoc w czym? Mamy pokazać, co i jak przeklepać? ...   16.07.2009, 14:49:40
- - wolacinio   dobra moze mnie poniosło sorki wam szukałem ale ...   17.07.2009, 20:38:55


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 Aktualny czas: 22.08.2025 - 09:03