Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Nie działa mi skrypt, i nie wiem czemu. POMOCY!
michal_2
post
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 20.12.2009

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


Witam. Piszę sobie skrypt prosty, który rejestruje recordy w bazie danych. Skrypt narazie nie jest z niczym powiązany, chciałem tylko zobaczyć czy uda mi się przez php wywrzeć jakieś działanie na bazie. Oto skrypt:

rejestracja.html
  1. <title>Rejestracja</title>
  2. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  3. </head>
  4. <form action=rejestracja.php method=POST>
  5. Podaj nazwę użytkownika:
  6. <input type=text name=uzyt><br>
  7. Podaj hasło:
  8. <input type=password name=has1><br>
  9. Potwierdź hasło:
  10. <input type=password name=has2><br>
  11. <input type=submit value=Wyślij><br>
  12. </form>
  13. </body>
  14. </html>


rejestracja.php
  1. <?php
  2. $mysqli = mysqli_connect("localhost", "michal2", "abracadabra", "strona");
  3.  
  4. if (mysqli_connect_errno())
  5. {
  6. printf("Nie udało się połączyć z bazą danych: %s\n", mysqli_connect_error());
  7. exit();
  8. }
  9. else
  10. {
  11. printf("Udało się połączyć z bazą.\n");
  12.  
  13. if (!empty($_POST['uzyt']) && !empty($_POST['has1']) && !empty($_POST['has2']))
  14. {
  15. if (strlen($_POST['uzyt']) < 6)
  16. {
  17. printf("Nazwa użytkownika musi mieć więcej niż 5 znaków.\n");
  18. exit();
  19. }
  20. if (strlen($_POST['has1'] < 6)
  21. {
  22. printf("Hasło musi mieć więcej niż 5 znaków.\n");
  23. exit();
  24. }
  25. if ($_POST['has1'] != $_POST['has2'])
  26. {
  27. printf("Hasło1 i hasło2 różnią się od siebie.\n");
  28. exit();
  29. }
  30. }
  31. }
  32.  
  33. $sql = "INSERT INTO strona (user, pass) VALUES (".$_POST['uzyt'].", ".$_POST['has1'].")";
  34. $rez = mysqli_query($mysqli, $sql);
  35.  
  36. if ($rez === TRUE)
  37. echo "Rejestracja zakończyła się pomyślnie.<br>";
  38. else
  39. printf("Nie udało się zakończyć rejestracji: %s\n", mysqli_error($mysqli));
  40.  
  41. mysqli_close($mysqli);
  42.  
  43. ?>


I teraz po wpisaniu na stronie danych i wciśnięciu Wyślij - nic się nie pojawia. Nie wiem czemu. Proszę o pomoc.

Ten post edytował michal_2 26.12.2009, 08:31:14
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 15)
Quantum
post
Post #2





Grupa: Zarejestrowani
Postów: 450
Pomógł: 84
Dołączył: 27.11.2008
Skąd: Warszawa

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


błąd w linii nr. 20

if (strlen($_POST['has1'] < 6), powinno być if (strlen($_POST['has1']) < 6).

kolejny w zapytaniu:

$sql = 'INSERT INTO strona (user, pass) VALUES (\''.$_POST['uzyt'].'\', \''.$_POST['has1'].'\')';

a jak już korzystasz z mysqli to poczytaj o przygotowywaniu zapytań http://php.net/manual/en/mysqli.prepare.php.

Swoją drogą to dziwne, że nic się nie wyświetla, daj przykładowe echo na początek pliku rejestracja.php i sprawdź co wypluje.

Ten post edytował sniffer32 26.12.2009, 08:48:51
Go to the top of the page
+Quote Post
_Martin_
post
Post #3





Grupa: Zarejestrowani
Postów: 352
Pomógł: 9
Dołączył: 16.09.2005
Skąd: Rybnik

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


Wybacz, ze odejde od tematu ale proponuje jakiś program do pisania w php, obojetnie jakiś darmowy co ma fukcje kodowania i kolorowania składni, Wtedy wizualnie się nie pomylisz (IMG:style_emoticons/default/smile.gif)
Polecam Komodo Edit IDE 5.2.4 (IMG:style_emoticons/default/smile.gif) - Bądź inny z darmowych (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
michal_2
post
Post #4





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 20.12.2009

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


Poprawiłem:

  1. <?php
  2. $mysqli = mysqli_connect("localhost", "michal2", "abracadabra", "strona");
  3.  
  4. if (mysqli_connect_errno())
  5. {
  6. printf("Nie udało się połączyć z bazą danych: %s\n", mysqli_connect_error());
  7. exit();
  8. }
  9. else
  10. {
  11. printf("Udało się połączyć z bazą.\n");
  12.  
  13. if (!empty($_POST['uzyt']) && !empty($_POST['has1']) && !empty($_POST['has2']))
  14. {
  15. if (strlen($_POST['uzyt']) < 6)
  16. {
  17. printf("Nazwa użytkownika musi mieć więcej niż 5 znaków.\n");
  18. exit();
  19. }
  20. if (strlen($_POST['has1']) < 6)
  21. {
  22. printf("Hasło musi mieć więcej niż 5 znaków.\n");
  23. exit();
  24. }
  25. if ($_POST['has1'] != $_POST['has2'])
  26. {
  27. printf("Hasło1 i hasło2 różnią się od siebie.\n");
  28. exit();
  29. }
  30. }
  31. }
  32.  
  33. $sql = "INSERT INTO strona (user, pass) VALUES ('".$_POST['uzyt']."', '".$_POST['has1']."')";
  34. $rez = mysqli_query($mysqli, $sql);
  35.  
  36. if ($rez === TRUE)
  37. echo "Rejestracja zakończyła się pomyślnie.<br>";
  38. else
  39. printf("Nie udało się zakończyć rejestracji: %s\n", mysqli_error($mysqli));
  40.  
  41. mysqli_close($mysqli);
  42.  
  43. ?>

I nadal nic nie wyświetla
Go to the top of the page
+Quote Post
Blame
post
Post #5





Grupa: Zarejestrowani
Postów: 678
Pomógł: 124
Dołączył: 26.09.2009

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


Nie
  1. if ($_POST['has1'] != $_POST['has2'])

a
  1. if ($_POST['has1'] !== $_POST['has2'])
Go to the top of the page
+Quote Post
michal_2
post
Post #6





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 20.12.2009

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


tak samo
EDIT:
Coś jest nie tak bo przepisałem z książki ten przykład (po zmienieniu oczywiście parametrów serwera):

  1. <?php
  2. $mysqli = mysqli_connect("localhost", "michal2", "abracadabra", "strona");
  3.  
  4. if (mysqli_connect_errno())
  5. {
  6. printf("Nie udało się połączyć: %s\n", mysqli_connect_error());
  7. exit();
  8. }
  9. else
  10. printf("Połączono z hostem: %s\n", mysqli_get_host_info($mysqli));
  11.  
  12. ?>


I też nic nie wyświetla... Z czego to może wynikać?

Ten post edytował michal_2 26.12.2009, 11:24:13
Go to the top of the page
+Quote Post
darko
post
Post #7





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


linia 20. nie
if (strlen($_POST['has1'] < 6)
ale
if (strlen($_POST['has1']) < 6)


Walidacja danych z formularza powinna działać. Pokaż strukturę bazy i włącz ERROR_REPORTING E_ALL

Ten post edytował darko 26.12.2009, 12:29:27
Go to the top of the page
+Quote Post
michal_2
post
Post #8





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 20.12.2009

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


co to znaczy:

Pokaż strukturę bazy i włącz ERROR_REPORTING E_ALL
(IMG:style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
cim
post
Post #9





Grupa: Zarejestrowani
Postów: 208
Pomógł: 28
Dołączył: 9.08.2004
Skąd: Stargard

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


Witam,

jakie masz tabele, pola etc. a error_reporting to:


Pozdrawiam
Go to the top of the page
+Quote Post
Blame
post
Post #10





Grupa: Zarejestrowani
Postów: 678
Pomógł: 124
Dołączył: 26.09.2009

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


To znaczy że masz nam pokazać jak wygląda tabela MySQL z której korzystasz(nazwy pól itp.) i na początku pliku php dodać linijkę error_reporting(E_ALL);
Go to the top of the page
+Quote Post
michal_2
post
Post #11





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 20.12.2009

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


tabela strona, a pola to user i pass, a tą linijkę dodam potem bo jestem teraz w gościach (IMG:style_emoticons/default/smile.gif)

EDIT: No więc dodałem tą linijkę i nic się nie zmieniło.

Jak ustawiłem na początku skryptu:

  1. ini_set('display_errors', 1);


to wskakuje mi błąd:

Fatal error: Call to undefined function mysqli_connect() in D:\Apache\Apache2\htdocs\n.php on line 4

Jak ustawić raportowanie błędów jako standard|?
I jak poradzić sobie z tym błędem|?

Ten post edytował michal_2 26.12.2009, 18:53:35
Go to the top of the page
+Quote Post
skowron-line
post
Post #12





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


Cytat(michal_2 @ 27.12.2009, 11:12:29 ) *
Jak ustawić raportowanie błędów jako standard|?
I jak poradzić sobie z tym błędem|?

Co to znaczy standard (IMG:style_emoticons/default/questionmark.gif)
A co oznacza taki błąd co znaczy w języku polskim wyraz undefined (IMG:style_emoticons/default/questionmark.gif) Sprawdź czy masz włączone mysqli na swoim serwerze. ( podpowiedz: phpinfo(); )
Go to the top of the page
+Quote Post
Mephistofeles
post
Post #13





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

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


Włączyłeś rozszerzenie MySQLi w php.ini?

Spóźniłem się. Zajrzyj do php.ini, tam sobie włączysz wszystko co chcesz (raportowanie błędów, rozszerzenia), wyłącz przy okazji register_globals i magic_qoutes.

Ten post edytował Mephistofeles 27.12.2009, 11:21:33
Go to the top of the page
+Quote Post
michal_2
post
Post #14





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 20.12.2009

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


Ok już znalazłem. W pliku php.ini trzeba było takie coś wstawić:

extension=ext/php_mysql.dll
extension=ext/php_mysqli.dll

i teraz działa. A teraz wracając do skryptu:

  1. <?php
  2. $mysqli = mysqli_connect("localhost", "michal2", "abracadabra", "strona");
  3.  
  4. if (mysqli_connect_errno())
  5. {
  6. printf("Nie udało się połączyć z bazą danych: %s\n", mysqli_connect_error());
  7. exit();
  8. }
  9. else
  10. {
  11. printf("Udało się połączyć z bazą.\n");
  12.  
  13. if (!empty($_POST['uzyt']) && !empty($_POST['has1']) && !empty($_POST['has2']))
  14. {
  15. if (strlen($_POST['uzyt']) < 6)
  16. {
  17. printf("Nazwa użytkownika musi mieć więcej niż 5 znaków.\n");
  18. exit();
  19. }
  20. if (strlen($_POST['has1']) < 6)
  21. {
  22. printf("Hasło musi mieć więcej niż 5 znaków.\n");
  23. exit();
  24. }
  25. if ($_POST['has1'] !== $_POST['has2'])
  26. {
  27. printf("Hasło1 i hasło2 różnią się od siebie.\n");
  28. exit();
  29. }
  30. }
  31. }
  32.  
  33. $sql = "INSERT INTO strona (user, pass) VALUES ('".$_POST['uzyt']."', '".$_POST['has1']."')";
  34. $rez = mysqli_query($mysqli, $sql);
  35.  
  36. if ($rez === TRUE)
  37. echo "Rejestracja zakończyła się pomyślnie.<br>";
  38. else
  39. printf("Nie udało się zakończyć rejestracji: %s\n", mysqli_error($mysqli));
  40.  
  41. mysqli_close($mysqli);
  42.  
  43. ?>


Wyświetliło mi: Udało się połączyć z bazą. Nie udało się zakończyć rejestracji: Table 'strona.strona' doesn't exist

Jak sobie z tym poradzić|?
Go to the top of the page
+Quote Post
skowron-line
post
Post #15





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


@michal_2 ośmieszasz się takimi pytaniami
http://translate.google.pl/#en|pl| tu masz translator i każdy błąd sobie tu wklejaj skoro nie znasz angielskiego i nie wiesz co znaczy "doesn't exist"

@DOWN
a nie wpadłeś na to żeby sobie zapytanie na ekran zrzucić i zobaczyć co może być nie tak (IMG:style_emoticons/default/questionmark.gif)

Ten post edytował skowron-line 27.12.2009, 11:38:37
Go to the top of the page
+Quote Post
michal_2
post
Post #16





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 20.12.2009

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


Nie no rozumiem błąd ale nie rozumiem czemu chce tabele strona.strona a nie strona. Pisałem mu żeby otworzył tabele strona.

Edit: Już wsyztsko działa. Wpisałem nazwe tabeli strona zamiast uzytkownicy. Teraz działa dobrze dzięki.

Ten post edytował michal_2 27.12.2009, 11:41:20
Go to the top of the page
+Quote Post

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: 24.08.2025 - 23:02