Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Panel rejestracyjny - problem początkującego
Forum PHP.pl > Forum > Przedszkole
Panicz74
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.
nospor
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
Panicz74
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?
KsaR
  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...?
Panicz74
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?
Rysh
Bo nie zamykasz przecież nawiasu (
RaiZeN
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/
Pyton_000
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
thek
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
Panicz74
Przeszukałem google i znalazłem odpowiedni przykład... Problem leżał w zapytaniu smile.gif Google nie gryzą smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.