Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Formularz, błąd w skrypcie
Nigger
post 4.07.2006, 07:14:39
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 1
Dołączył: 14.07.2005

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


Witam. Dopiero zaczynam się uczyć i w ramach ćwiczeń chciałem zrobić system rejestracji i logowania. Zaczełem oczywiście od rejestracji. Narazie jest to malutki formularz ...Po wypełnieniu i wysłaniu danych do pliku php wyświetlama mi się nie to co bym chciał :-] i dane nie zapisują się do bazy danych.
Plik formularaza :
  1. <head>Rejestracja</head>
  2. <form action ="rejestracja.php" method=post>
  3. <table border =0>
  4. <tr>
  5. <td>Imie:</td>
  6. <td align="center"><input type="text" name="imie" size="30" maxlenght="20"></td>
  7. </tr>
  8. <tr>
  9. <td>Nazwisko:</td>
  10. <td align="center"><input type="text" name="nazwisko" size="30" maxlenght="20"></td>
  11. </tr>
  12. <tr>
  13. <td>e-mail</td>
  14. <td align="center"><input type="text" name ="email" size="30" maxlenght="20"></td>
  15. </tr>
  16. <tr>
  17. <td colspan align="center"><input type="submit" value="Zarejestruj"></td>
  18. </tr>
  19. </form>
  20. </body>
  21. </html>

A plik przetwarzający:
  1. <html>
  2. <head>Rejestracja</head>
  3. <?
  4. $imie=$_POST['imie'];
  5. $nazwisko=$_POST['nazwisko'];
  6. $email=$_POST['email'];
  7.  
  8. if(!$imie || !$nazwisko || !$email)
  9. {
  10. echo 'Nie podano wszystkich danych</bt> Wróc na poprzednią stronę.';
  11. }
  12.  
  13. if (!get_magic_quotnotes_gpc())
  14. {
  15. $imie = addslashes($imie);
  16. $nazwisko = addslashes($nazwisko);
  17. $email = addslashes($email);
  18. }
  19. @ $registr = new mysqli('localhost', 'rejestracja', 'rejestracja', 'registr');
  20.  
  21. if (mysqli_connect_errno())
  22. {
  23. echo 'Błąd: Połączenie z bazą danych nie udane. Spróbuj ponownie';
  24. }
  25.  
  26. $zapytanie = "insert into registr values (?.?.?.?)";
  27. $instrukcja = $registr->prepare($zapytanie);
  28. $instrukcja->bind_param("aaad".$imie.$nazwisko.$email);
  29. $instrukcja->execute();
  30. echo instrukcja->affected_rows.'</br>rejestracja zakończona powodzeniem.';
  31. $instrukcja->close();
  32. ?>

A wyświetla mi się coś takiego:
Rejestracja prepare($zapytanie); $instrukcja->bind_param("aaad".$imie.$nazwisko.$email); $instrukcja->execute(); echo instrukcja->affected_rows.'rejestracja zakończona powodzeniem.'; $instrukcja->close(); ?>
Moja baza danych nazywa się rejestracja, tabela registr, użytkownik i hasło to rejestracja (jak łatwo to zauważyć).Prosze o szybką pomoc.

PS. Temat umieszczam drugi raz poniewarz w dziale Bazy Danych jest mała oglądalność, a mi zależy na czasie...

EDIT. Czy to jest aż tak trudne, że nikt nie może mi odpowiedzieć? Naprawde zależy mi na czasie, a wczoraj nie moge uzyskać odpowiedzi. Ponawiam prośbe tongue.gif

Ten post edytował Nigger 4.07.2006, 07:15:04
Go to the top of the page
+Quote Post
nospor
post 4.07.2006, 07:25:37
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




1)zamiast <? sprobuj <?php
2) w instrukcja->affected_rows zjadles $ $instrukcja->affected_rows (poszukaj czy gdzies jeszcze tak nie masz)

Na przyszlosc nie zakladaj dwoch topicow na to samo, bo możesz coś "zarobic".


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Nigger
post 4.07.2006, 08:48:14
Post #3





Grupa: Zarejestrowani
Postów: 30
Pomógł: 1
Dołączył: 14.07.2005

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


Przepraszam za napisanie 2ch postów...
Ten problem już ominołem - trzeba było <php i $ przed instrukcja, ale pojawił się kolejny:

Fatal error: Call to a member function bind_param() on a non-object in C:\wamp\www\rejestracja\rejestracja.php on line 30

Co może być tego powodem?
Go to the top of the page
+Quote Post
nospor
post 4.07.2006, 09:02:43
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




tym, ze $instrukcja nie jest obiektem. najwyraźniej:
$registr->prepare($zapytanie); nie zwraca ci obiektu. jakies bledy w zapytaniu? nie wiem co robi prepare wiec sie nie wypowiadam bardziej


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Nigger
post 4.07.2006, 11:35:56
Post #5





Grupa: Zarejestrowani
Postów: 30
Pomógł: 1
Dołączył: 14.07.2005

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


Sory, że tak zawracam dupe, ale mam ostatni problem tongue.gif
Już doszedłem czemu to tak wychodziło, ale teraz już jest coś "poważniejszego". Mój skrypt wygląda teraz tak:

  1. <html>
  2. <head>Rejestracja</head>
  3. <?php
  4. $imie=$_POST['imie'];
  5. $nazwisko=$_POST['nazwisko'];
  6. $email=$_POST['email'];
  7.  
  8. if(!$imie || !$nazwisko || !$email)
  9. {
  10. echo 'Nie podano wszystkich danych</br> Wróc na poprzednią stronę.';
  11. }
  12.  
  13. {
  14. $imie = addslashes($imie);
  15. $nazwisko = addslashes($nazwisko);
  16. $email = addslashes($email);
  17. }
  18. @ $db = new mysqli('localhost', 'rejestracja', 'rejestracja', 'rejestracja');
  19.  
  20. if (mysqli_connect_errno())
  21. {
  22. echo 'Błąd: Połączenie z bazą danych nie udane. Spróbuj ponownie';
  23. }
  24.  
  25. $zapytanie = "insert into registr values (?,?,?,?)";
  26. $instrukcja = $db->prepare($zapytanie);
  27. $instrukcja->bind_param("aaad",$imie,$nazwisko,$email);
  28. $instrukcja->execute();
  29. echo $instrukcja->affected_rows.'rejestracja zakończona powodzeniem.';
  30. $instrukcja->close();
  31. php?>
  32. </html>


A błąd:
Rejestracja
Warning: mysqli_stmt::bind_param() [function.mysqli-stmt-bind-param]: Number of elements in type definition string doesn't match number of bind variables in C:\wamp\www\rejestracja\rejestracja.php on line 30
0rejestracja zakończona powodzeniem

Ten post edytował Nigger 4.07.2006, 11:37:46
Go to the top of the page
+Quote Post
Cysiaczek
post 4.07.2006, 11:51:24
Post #6





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Cytat(Nigger @ 4.07.2006, 10:35 ) *
  1. <?php
  2. $instrukcja->bind_param("aaad",$imie,$nazwisko,$email);
  3.  
  4. </html>
  5. ?>


A błąd:
Rejestracja
Warning: mysqli_stmt::bind_param() [function.mysqli-stmt-bind-param]: Number of elements in type definition string doesn't match number of bind variables in C:\wamp\www\rejestracja\rejestracja.php on line 30
0rejestracja zakończona powodzeniem


No widać wyraźnie, że źle bindujesz (podstawiasz). Liczba argumentów do których podstawiasz nie zgadza się z liczbą argumentów podstawianych. ufff.


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
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: 14.08.2025 - 08:10