Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][HTML][MYSQL]Nie działająca funkcja rejestacji
polishmilk
post 9.12.2008, 19:44:24
Post #1





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 27.04.2007

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


Tak jak w temacie nie wiem czemu ale mi nie chce działaś ta funkcja, a jest ona praktycznie z książki zerżnięta

treść błedu:

Fatal error: Call to a member function query() on a non-object in xxx\xxxxxx on line 7

  1. <?php
  2. function rejestracja($nick, $haslo, $email){
  3.    $lacz=polacz();
  4.    $zapytanie=("SELECT * FROM user WHERE nick='$nick'");
  5.    $wynik=$lacz->query($zapytanie);
  6.    //$wynik=$lacz->query("SELECT * FROM user WHERE nick='$nick'");
  7.    
  8.    if(!$wynik)
  9.        throw new Exception ('Nie można sprawdzić nazwy użytkownika. Proszę spróbować później.');
  10.    if($lacz->num_rows>0)
  11.        throw new Exceptrion ('Podany nick jest już zajęty. Wybierz inny!');        
  12.    
  13.    $wynik=$lacz->query("INSERT INTO user VALUES ('$nick', md5('$haslo'), '$email')");
  14.    
  15.    if(!$wynik)
  16.        throw new Exception ('Rejestracja nie powiodła się. Porszę sporobwać później.');
  17.    
  18.    return true;
  19. }
  20. ?>


formularz:
  1. <?php
  2. function form_rejestracji(){
  3. ?>
  4.    <form action="rejestracja.php" method="post">
  5.        <table align="center">
  6.        <tr>
  7.        <td colspan="2"><h1><strong>Proszę się zalogować</strong></h1></td>
  8.        </tr>
  9.        <tr>
  10.        <td>Nick: </td><td><input type="text" name="nick"></td>
  11.        </tr>
  12.        <tr>
  13.        <td>Hasło: </td><td><input type="password" name="haslo"></td>
  14.        </tr>
  15.        <tr>
  16.        <td>Powtórz hasło: </td><td><input type="password" name="haslo2"></td>
  17.        </tr>
  18.        <tr>
  19.        <td>E-mail: </td><td><input type="text" name="email"></td>
  20.        </tr>
  21.        <tr>
  22.        <td colspan="2"><input type="image" src="loguj.gif" value="submit"></td>
  23.        </tr>
  24.        </table>
  25.    </form>
  26. <?php
  27. }


Ten post edytował polishmilk 9.12.2008, 19:46:06
Go to the top of the page
+Quote Post
Piniek
post 9.12.2008, 19:45:40
Post #2





Grupa: Przyjaciele php.pl
Postów: 463
Pomógł: 49
Dołączył: 27.12.2007
Skąd: Warszawa

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


Proszę o dodanie odpowiedniego tagu do tematu.


--------------------
Go to the top of the page
+Quote Post
phpion
post 9.12.2008, 20:01:05
Post #3





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




$lacz nie jest obiektem. Strzelam, że powinno być:
  1. <?php
  2. $lacz= new polacz();
  3. ?>

czarodziej.gif
Go to the top of the page
+Quote Post
polishmilk
post 9.12.2008, 20:33:45
Post #4





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 27.04.2007

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


  1. <?php
  2. $lacz = polacz();
  3. ?>


jest odwołaniem do funkcji:

  1. <?php
  2. function polacz(){
  3.    $polaczenie= new mysqli('xxx', 'xxxt', 'xxx', 'xxx');
  4.    if(!$polaczenie)
  5.        throw new Exception ('Nie mozna polaczyc sie z baza');
  6.    
  7.    
  8. }
  9. ?>


Ten post edytował polishmilk 9.12.2008, 20:34:45
Go to the top of the page
+Quote Post
phpion
post 9.12.2008, 20:35:17
Post #5





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




No to funkcja powinna zwrócić obiekt. Musisz dodać do niej:
  1. <?php
  2. return $polaczenie;
  3. ?>
Go to the top of the page
+Quote Post
polishmilk
post 9.12.2008, 20:40:14
Post #6





Grupa: Zarejestrowani
Postów: 43
Pomógł: 0
Dołączył: 27.04.2007

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


Dzięki, rzeczywiście było tak jak mówisz winksmiley.jpg zupełnie o tym zapomniałem że przecież obiekt musi być zwrócony sciana.gif
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: 12.06.2025 - 13:21