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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
wolacinio
post
Post #2





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

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


dobra moze mnie poniosło (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) sorki wam

szukałem ale to nie jest takie łatwe
ale nie bede siedziec wiec wezme sie za szukanie

edit://

zrobilem tak ja tu

ustawienia pliku .ini


tylko jedynie tego nie zrozumiałem

Ostatnim krokiem jest podłączenie PHP do serwera Apache. Jeżeli zamierzamy zrobić to jako CGI, na koniec pliku konfiguracyjnego Apache dopisujemy:
ScriptAlias /php5/ "D:/Serwer/php5/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php5/php-cgi.exe"

W przypadku modułu linijek jest nieco mniej:
LoadModule php5_module "D:/Serwer/php5/php5apache2_2.dll"
AddType application/x-httpd-php .php

Możesz także dodać jeszcze jedną linijkę:
PHPIniDir "E:/jakis_katalog"


ref

ref

ref

Ten post edytował wolacinio 16.07.2009, 20:47:11
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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 12:50