Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Panel rejestracyjny - problem początkującego
Panicz74
post 25.09.2015, 21:46:23
Post #1





Grupa: Zarejestrowani
Postów: 39
Pomógł: 1
Dołączył: 28.08.2015

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


Witam,

Jestem tutaj nowy i dopiero zacząłem swoją przygodę z PHP. Udało mi się stworzyć panel logowania, a teraz pracuje nad panelem rejestracyjnym. Niestety mój kod nie działa sad.gif

Może ktoś wie gdzie robię błąd?

Oto kod:

Formularz rejestracji:
  1. <?php
  2.  
  3. session_start();
  4.  
  5. ?>
  6.  
  7. <!DOCTYPE HTML>
  8. <html lang="pl">
  9. <meta charset="utf-8" />
  10. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  11. <title>Osadnicy - gra przeglądarkowa</title>
  12. </head>
  13.  
  14.  
  15. Panel rejestracyjny<br /><br />
  16.  
  17. <form action="rejestruj.php" method="post">
  18.  
  19.  
  20. Login: <br /> <input type="text" name="login" /> <br />
  21. Hasło: <br /> <input type="password" name="haslo" /> <br /><br />
  22. <input type="submit" value="Zarejestruj" />
  23.  
  24.  
  25.  
  26. </form>
  27.  
  28. </body>
  29. </html>


Rejestracja:
  1. <?php
  2.  
  3.  
  4. if ((!isset($_POST['login'])) || (!isset($_POST['haslo'])))
  5. {
  6. header('Location: index.php');
  7. exit();
  8. }
  9.  
  10. require_once "connect.php";
  11.  
  12. $polaczenie = new mysqli($host, $db_user, $db_password, $db_name);
  13.  
  14. if ($polaczenie->connect_errno!=0)
  15. {
  16. echo "Error: ".$polaczenie->connect_errno;
  17. }
  18. else
  19. {
  20. $login = $_POST['login'];
  21. $haslo = $_POST['haslo'];
  22.  
  23. $login = htmlentities($login, ENT_QUOTES, "UTF-8");
  24. $haslo = htmlentities($haslo, ENT_QUOTES, "UTF-8");
  25.  
  26. echo "Połączono <br/> " ;
  27.  
  28. if ($rezultat = $polaczenie->query(
  29. sprintf("INSERT INTO SET uzytkownicy WHERE user='%s' AND pass='%s'",
  30. mysqli_real_escape_string($polaczenie,$login),
  31. mysqli_real_escape_string($polaczenie,$haslo))))
  32.  
  33. {
  34. echo "ok";
  35. }
  36. else
  37. {
  38. echo "blad - zapytaj kogoś mądrzejszego";
  39. }
  40.  
  41. }
  42.  
  43. $polaczenie->close();
  44.  
  45.  
  46. ?>


Baza:
  1. -- phpMyAdmin SQL Dump
  2. -- version 4.2.11
  3. -- <a href="http://www.phpmyadmin.net" target="_blank">http://www.phpmyadmin.net</a>
  4. --
  5. -- Host: 127.0.0.1
  6. -- Czas generowania: 16 Lut 2015, 16:55
  7. -- Wersja serwera: 5.6.21
  8. -- Wersja PHP: 5.6.3
  9.  
  10. SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
  11. SET time_zone = "+00:00";
  12.  
  13.  
  14. /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
  15. /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
  16. /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
  17. /*!40101 SET NAMES utf8 */;
  18.  
  19. --
  20. -- Baza danych: `osadnicy`
  21. --
  22.  
  23. -- --------------------------------------------------------
  24.  
  25. --
  26. -- Struktura tabeli dla tabeli `uzytkownicy`
  27. --
  28.  
  29. CREATE TABLE IF NOT EXISTS `uzytkownicy` (
  30. `id` int(11) NOT NULL,
  31. `user` text COLLATE utf8_polish_ci NOT NULL,
  32. `pass` text COLLATE utf8_polish_ci NOT NULL,
  33. `email` text COLLATE utf8_polish_ci NOT NULL,
  34. `drewno` int(11) NOT NULL,
  35. `kamien` int(11) NOT NULL,
  36. `zboze` int(11) NOT NULL,
  37. `dnipremium` int(11) NOT NULL
  38. ) ENGINE=MyISAM AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci;
  39.  
  40. --
  41. -- Zrzut danych tabeli `uzytkownicy`
  42. --
  43.  
  44. INSERT INTO `uzytkownicy` (`id`, `user`, `pass`, `email`, `drewno`, `kamien`, `zboze`, `dnipremium`) VALUES
  45. (1, 'adam', 'qwerty', 'adam@gmail.com', 213, 5675, 342, 0),
  46. (2, 'marek', 'asdfg', 'marek@gmail.com', 324, 1123, 4325, 15),
  47. (3, 'anna', 'zxcvb', 'anna@gmail.com', 4536, 17, 120, 25),
  48. (4, 'andrzej', 'asdfg', 'andrzej@gmail.com', 5465, 132, 189, 0),
  49. (5, 'justyna', 'yuiop', 'justyna@gmail.com', 245, 890, 554, 0),
  50. (6, 'kasia', 'hjkkl', 'kasia@gmail.com', 267, 980, 109, 12),
  51. (7, 'beata', 'fgthj', 'beata@gmail.com', 565, 356, 447, 77),
  52. (8, 'jakub', 'ertyu', 'jakub@gmail.com', 2467, 557, 876, 0),
  53. (9, 'janusz', 'cvbnm', 'janusz@gmail.com', 65, 456, 2467, 0),
  54. (10, 'roman', 'dfghj', 'roman@gmail.com', 97, 226, 245, 23);
  55.  
  56. --
  57. -- Indeksy dla zrzutów tabel
  58. --
  59.  
  60. --
  61. -- Indexes for table `uzytkownicy`
  62. --
  63. ALTER TABLE `uzytkownicy`
  64. ADD PRIMARY KEY (`id`), ADD UNIQUE KEY `id` (`id`);
  65.  
  66. --
  67. -- AUTO_INCREMENT for dumped tables
  68. --
  69.  
  70. --
  71. -- AUTO_INCREMENT dla tabeli `uzytkownicy`
  72. --
  73. ALTER TABLE `uzytkownicy`
  74. MODIFY `id` int(11) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=16;
  75. /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
  76. /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
  77. /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;


Skrypt nie zapisuje nic w bazie i pokazuje błąd:( Będę wdzięczny za wszelkie wskazówki.
Go to the top of the page
+Quote Post
nospor
post 25.09.2015, 22:44:45
Post #2





Grupa: Moderatorzy
Postów: 36 446
Pomógł: 6292
Dołączył: 27.12.2004




INSERT INTO SET uzytkownicy WHERE user='%s' AND pass='%s'
co to niby ma byc??
zajrzyj do manuala mysql i zobacz jak wyglada PRAWIDLOWA skladnia INSERT... kurcze, nie strzelaj....nie na tym polega programowanie


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

"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
Panicz74
post 25.09.2015, 23:37:35
Post #3





Grupa: Zarejestrowani
Postów: 39
Pomógł: 1
Dołączył: 28.08.2015

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


Użyłem INSERT INTO SET:

  1. <?php
  2.  
  3.  
  4. if ((!isset($_POST['login'])) || (!isset($_POST['haslo'])))
  5. {
  6. header('Location: index.php');
  7. exit();
  8. }
  9.  
  10. require_once "connect.php";
  11.  
  12. $polaczenie = new mysqli($host, $db_user, $db_password, $db_name);
  13.  
  14. if ($polaczenie->connect_errno!=0)
  15. {
  16. echo "Error: ".$polaczenie->connect_errno;
  17. }
  18. else
  19. {
  20. $login = $_POST['login'];
  21. $haslo = $_POST['haslo'];
  22.  
  23. echo "Połączono <br/> " ;
  24.  
  25. if ($rezultat = $polaczenie->query
  26. ("INSERT INTO uzytkownicy SET login='$login', haslo='$haslo'")
  27.  
  28. {
  29. echo "ok";
  30. }
  31. else
  32. {
  33. echo "blad - zapytaj kogoś mądrzejszego";
  34. }
  35.  
  36. }
  37.  
  38. $polaczenie->close();
  39.  
  40. ?>


Przeglądarka pokazuje "unexpected { in line 29". Czy to wina zapytania do bazy?
Go to the top of the page
+Quote Post
KsaR
post 25.09.2015, 23:43:11
Post #4





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

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


  1. INSERT INTO (`kolumna1`, `kolumna2`) VALUES ('wartosc 1', 'wartosc 2');

Tak wyglada poprawna skladnia, w lini 27 w php zabraklo jednego ).
Nie zajrzales nawet do manuala...?

Ten post edytował KsaR 25.09.2015, 23:48:46


--------------------
Go to the top of the page
+Quote Post
Panicz74
post 25.09.2015, 23:50:41
Post #5





Grupa: Zarejestrowani
Postów: 39
Pomógł: 1
Dołączył: 28.08.2015

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


No właśnie zajrzałem... Jest kilka sposobów ale żaden nie działa. Zmieniłem zapytania na:

  1. if ($rezultat = $polaczenie->query
  2. ("INSERT INTO uzytkownicy ('login', 'pass') VALUES ('$_login', '$_haslo')")
  3.  
  4. {
  5. echo "ok";
  6. }
  7. else
  8. {
  9. echo "blad - zapytaj kogoś mądrzejszego";
  10. }


To samo... Przeglądarka mówi o błędzie w linii 29, czyli { przed echo"ok". Już próbowałem trzech opcji, żadna nie działa. Może jeszcze jakieś opcje?
Go to the top of the page
+Quote Post
Rysh
post 26.09.2015, 07:00:03
Post #6





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Bo nie zamykasz przecież nawiasu (


--------------------
Go to the top of the page
+Quote Post
RaiZeN
post 26.09.2015, 09:56:17
Post #7





Grupa: Zarejestrowani
Postów: 112
Pomógł: 4
Dołączył: 6.03.2014
Skąd: Suwałki

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


Jak widzę to jest przepisany kod z poradnika Mirosława Zelenta, masz tu oryginalne pliki i porównaj ze swoim kodem: http://miroslawzelent.pl/kurs-php/logowani...rzykiwanie-sql/
Go to the top of the page
+Quote Post
Pyton_000
post 26.09.2015, 10:23:12
Post #8





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Cytat(KsaR @ 26.09.2015, 00:43:11 ) *
  1. INSERT INTO (`kolumna1`, `kolumna2`) VALUES ('wartosc 1', 'wartosc 2');

Tak wyglada poprawna skladnia, w lini 27 w php zabraklo jednego ).
Nie zajrzales nawet do manuala...?


Tamta składnia też jest poprawna
Go to the top of the page
+Quote Post
thek
post 26.09.2015, 11:20:48
Post #9





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




A może byś sprawdził oprócz sparowania nawiasów, dodatkowo, czym się różni używanie pojedynczego i podwójnego apostrofu? wink.gif Bo to będzie następne pytanie po tym gdy już poprawisz błąd "w linii 29" smile.gif


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
Panicz74
post 29.09.2015, 20:49:05
Post #10





Grupa: Zarejestrowani
Postów: 39
Pomógł: 1
Dołączył: 28.08.2015

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


Przeszukałem google i znalazłem odpowiedni przykład... Problem leżał w zapytaniu smile.gif Google nie gryzą smile.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: 19.04.2024 - 14:22