Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] rejestracja, logowanie
Forum PHP.pl > Forum > Przedszkole
PoczątkujacyPHP
Hej,
a więc zacząłem czytać Vademecum Profejsonalisty i próbuje zrobić rejestracja + logowanie z tej książki i mam problem, a mianowicie.
Kod
Parse error: syntax error, unexpected '{' in D:\Program Files\WebServ\httpd\register.php on line 13


Wiem, że ten błąd mówi o tym, że brakuje jakiegoś znaku np. średnika w pliku register.php w linijce 13 posiadam:
Kod
try {


A, tak mniej więcej wygląda plik:
Kod
try {
if (!wypelniony($_POST)) {throw new Exception('Formularz został wypełniony nieprawidłowo.'); }
if (!prawidlowy_email($email)) {throw new Exception('Podany adres email jest nieprawidłowy.'); }
if ($haslo ! = $haslo2) {throw new Exception('Podane hasła nie pasują do siebie.'); }
if ((strlen($login) > 16) {throw new Exception('Login nie może zawierać więcej niż 16 znaków.'); }
if ((strlen($haslo) < 6) || (strlen($haslo) > 16)) {throw new Exception('Hasło musi mieć conajmniej 6 znaków i nie może przekraczać 16 znaków.'); }
przemek_el
a co masz przed 13 linijką?

przy okazji masz błąd w
  1. if ((strlen($login) > 16) {throw new Exception('Login nie może zawierać więcej niż 16 znaków.'); }

powinno być
  1. if (strlen($login) > 16) {throw new Exception('Login nie może zawierać więcej niż 16 znaków.'); }
Gość
A, faktycznie dzięki za znalezienie.

Przed 13 mam:
  1. $login=$_POST['login'];
  2. $haslo=$_POST['haslo'];
  3. $haslo2=$_POST['haslo2'];
  4. $email=$_POST['email '];
Gość
.
karolo_k
Zobacz tak:
  1.  
  2.  
  3. $login=$_POST['login'];
  4.  
  5. $haslo=$_POST['haslo'];
  6.  
  7. $haslo2=$_POST['haslo2'];
  8.  
  9. $email=$_POST['email '];


Gość
To nic nie dało nadal ten sam błąd.
[quote]Parse error: syntax error, unexpected '{' in D:\Program Files\WebServ\httpd\register.php on line 13[/quote[

A, tutaj cały pliczek
  1. <?php
  2. require_once('page_header.php');
  3. echo '<div id="content">';
  4. ?>
  5.  
  6. <?php
  7. $login=$_POST['login'];
  8. $haslo=$_POST['haslo'];
  9. $haslo2=$_POST['haslo2'];
  10. $email=$_POST['email '];
  11.  
  12. try {
  13. if (!wypelniony($_POST)) {throw new Exception('Formularz został wypełniony nieprawidłowo.'); }
  14. if (!prawidlowy_email($email)) {throw new Exception('Podany adres email jest nieprawidłowy.'); }
  15. if ($haslo ! = $haslo2) {throw new Exception('Podane hasła nie pasują do siebie.'); }
  16. if (strlen($login) > 16) {throw new Exception('Login nie może zawierać więcej niż 16 znaków.'); }
  17. if ((strlen($haslo) < 6) || (strlen($haslo) > 16)) {throw new Exception('Hasło musi mieć conajmniej 6 znaków i nie może przekraczać 16 znaków.'); }
  18.  
  19. rejestruj($login. $email. $haslo);
  20. $_SESSION['prawid_uzyt'] = $login;
  21. echo 'Twoje konto zostało utworzone teraz możesz się zalogować.';
  22.  
  23. catch (Exception $e) {
  24. echo $e->getMessage();
  25. }
  26.  
  27. ?>
  28.  
  29. <?php
  30. echo '</div>';
  31. require_once('page_footer.php');
  32. ?>
karolo_k
Wykasuj 3 i 6 linijkę a rozpoczęcie sesji musi byc jako pierwsza linijka kodu php
Gość
Niestety nadal to samo.
untorched
Sądzę, że powinno działać. Nie sprawdzane.
  1. <?php
  2.  
  3. require_once('page_header.php');
  4. echo '<div id="content">';
  5.  
  6. $login = (isset($_POST['login']) ? $_POST['login'] : FALSE);
  7. $haslo = (isset($_POST['haslo']) ? $_POST['haslo'] : FALSE);
  8. $haslo2 = (isset($_POST['haslo2']) ? $_POST['haslo2'] : FALSE);
  9. $email = (isset($_POST['email']) ? $_POST['email'] : FALSE);
  10.  
  11. try
  12. {
  13. if (!wypelniony($_POST))
  14. {
  15. throw new Exception('Formularz został wypełniony nieprawidłowo.');
  16. }
  17. elseif(!prawidlowy_email($email))
  18. {
  19. throw new Exception('Podany adres email jest nieprawidłowy.');
  20. }
  21. elseif($haslo ! = $haslo2)
  22. {
  23. throw new Exception('Podane hasła nie pasują do siebie.');
  24. }
  25. elseif(strlen($login) > 16)
  26. {
  27. throw new Exception('Login nie może zawierać więcej niż 16 znaków.');
  28. }
  29. elseif((strlen($haslo) < 6) || (strlen($haslo) > 16))
  30. {
  31. throw new Exception('Hasło musi mieć conajmniej 6 znaków i nie może przekraczać 16 znaków.');
  32. }
  33.  
  34. rejestruj($login. $email. $haslo);
  35. $_SESSION['prawid_uzyt'] = $login;
  36. echo 'Twoje konto zostało utworzone teraz możesz się zalogować.';
  37. }
  38. catch (Exception $e) {
  39. echo $e->getMessage();
  40. }
  41.  
  42. echo '</div>';
  43. require_once('page_footer.php');
Gość
Cytat
Parse error: syntax error, unexpected '{' in D:\Program Files\WebServ\httpd\register.php on line 13


Niestety, ale nic nie dało.
untorched
Dziwne, u mnie po lekkiej modyfikacji nieposiadanych przeze mnie funkcji wszystko działa jak należy. Żadnych błędów.
Gość
Nie mam pojęcia dlaczego nadal ten błąd wyskakuje. : /

Proszę o pomoc . ; / !

PS: Mógłbyś podesłać kod, którego używasz?
Gość
Odświeżam!
pianta_d
Witam

Usuń spację na końcu
  1. $email=$_POST['email '];


Winno być
  1. $email=$_POST['email'];


Pozdrawiam
Gość
To także nie pomogło. nadal ten sam błąd i ta sama linijka.
red.orel
Błąd odnosi się do niedomkniętego bloku try (poprawił untorched):

Cytat
try {
// ciało
}


pianta_d wskazał błąd w kluczu tablicy. Dodatkowo zapewne funkcja rejestruj przyjmuje trzy argumenty, a przekazujesz jeden (zamień kropki na przecinki). Czy jesteś pewien wprowadzonych zmian?
Gość
  1. <?php
  2.  
  3. require_once('page_header.php');
  4. echo '<div id="content">';
  5.  
  6. $login = (isset($_POST['login']) ? $_POST['login'] : FALSE);
  7. $haslo = (isset($_POST['haslo']) ? $_POST['haslo'] : FALSE);
  8. $haslo2 = (isset($_POST['haslo2']) ? $_POST['haslo2'] : FALSE);
  9. $email = (isset($_POST['email']) ? $_POST['email'] : FALSE);
  10.  
  11. try {
  12. if (!wypelniony($_POST)) {throw new Exception('Formularz został wypełniony nieprawidłowo.'); }
  13. if (!prawidlowy_email($email)) {throw new Exception('Podany adres email jest nieprawidłowy.'); }
  14. if ($haslo ! = $haslo2) {throw new Exception('Podane hasła nie pasują do siebie.'); }
  15. if ((strlen($login) > 16) {throw new Exception('Login nie może zawierać więcej niż 16 znaków.'); }
  16. if ((strlen($haslo) < 6) || (strlen($haslo) > 16)) {throw new Exception('Hasło musi mieć conajmniej 6 znaków i nie może przekraczać 16 znaków.'); }
  17. }
  18.  
  19. rejestruj($login. $email. $haslo);
  20. $_SESSION['prawid_uzyt'] = $login;
  21. echo 'Twoje konto zostało utworzone teraz możesz się zalogować.';
  22. }
  23. catch (Exception $e) {
  24. echo $e->getMessage();
  25. }
  26.  
  27. echo '</div>';
  28. require_once('page_footer.php');
  29.  
  30. ?>


Tak wygląda teraz kod. Co mam w nim poprawić, bo ja widzę zamknięte klamry.. snitch.gif
red.orel
Zbyt wiele razy pozamykałeś, usuń klamrę z 18 linii. W 15 linii masz błąd ("! =" zamiast "!="). W 20 linii zastosuj uwagę zamiany kropek na przecinki.
Używasz edytora z kolorowaniem składni?
Gość
Parse error: syntax error, unexpected '{' in D:\Program Files\WebServ\httpd\portal\Nowy folder\register.php on line 12

  1. <?php
  2.  
  3. require_once('page_header.php');
  4. echo '<div id="content">';
  5.  
  6. $login = (isset($_POST['login']) ? $_POST['login'] : FALSE);
  7. $haslo = (isset($_POST['haslo']) ? $_POST['haslo'] : FALSE);
  8. $haslo2 = (isset($_POST['haslo2']) ? $_POST['haslo2'] : FALSE);
  9. $email = (isset($_POST['email']) ? $_POST['email'] : FALSE);
  10.  
  11. try {
  12. if (!wypelniony($_POST)) {throw new Exception('Formularz został wypełniony nieprawidłowo.'); }
  13. if (!prawidlowy_email($email)) {throw new Exception('Podany adres email jest nieprawidłowy.'); }
  14. if ($haslo != $haslo2) {throw new Exception('Podane hasła nie pasują do siebie.'); }
  15. if ((strlen($login) > 16) {throw new Exception('Login nie może zawierać więcej niż 16 znaków.'); }
  16. if ((strlen($haslo) < 6) || (strlen($haslo) > 16)) {throw new Exception('Hasło musi mieć conajmniej 6 znaków i nie może przekraczać 16 znaków.'); }
  17.  
  18. rejestruj($login, $email, $haslo);
  19. $_SESSION['prawid_uzyt'] = $login;
  20. echo 'Twoje konto zostało utworzone teraz możesz się zalogować.';
  21. }
  22. catch (Exception $e) {
  23. echo $e->getMessage();
  24. }
  25.  
  26. echo '</div>';
  27. require_once('page_footer.php');
  28.  
  29. ?>
Gość
Tak używam Notepad++ z kolorowaniem.
red.orel
Linia 16, o jeden nawias za dużo.

Kod
if ((strlen($login) > 16) {throw new Exception('Login nie może zawierać więcej niż 16 znaków.'); }

na:
Kod
if (strlen($login) > 16) {throw new Exception('Login nie może zawierać więcej niż 16 znaków.'); }

Gość
To nic niestety nie dało.
red.orel
Czy jesteś pewien że twój kod wygląda jak poniższy?

  1. <?php
  2.  
  3. require_once('page_header.php');
  4. echo '<div id="content">';
  5.  
  6. $login = (isset($_POST['login']) ? $_POST['login'] : FALSE);
  7. $haslo = (isset($_POST['haslo']) ? $_POST['haslo'] : FALSE);
  8. $haslo2 = (isset($_POST['haslo2']) ? $_POST['haslo2'] : FALSE);
  9. $email = (isset($_POST['email']) ? $_POST['email'] : FALSE);
  10.  
  11. try {
  12. if (!wypelniony($_POST)) {throw new Exception('Formularz został wypełniony nieprawidłowo.'); }
  13. if (!prawidlowy_email($email)) {throw new Exception('Podany adres email jest nieprawidłowy.'); }
  14. if ($haslo != $haslo2) {throw new Exception('Podane hasła nie pasują do siebie.'); }
  15. if (strlen($login) > 16) {throw new Exception('Login nie może zawierać więcej niż 16 znaków.'); }
  16. if ((strlen($haslo) < 6) || (strlen($haslo) > 16)) {throw new Exception('Hasło musi mieć conajmniej 6 znaków i nie może przekraczać 16 znaków.'); }
  17.  
  18. rejestruj($login, $email, $haslo);
  19. $_SESSION['prawid_uzyt'] = $login;
  20. echo 'Twoje konto zostało utworzone teraz możesz się zalogować.';
  21. }
  22. catch (Exception $e) {
  23. echo $e->getMessage();
  24. }
  25.  
  26. echo '</div>';
  27. require_once('page_footer.php');
  28.  
  29. ?>

Gość
Parse error: syntax error, unexpected '{' in D:\Program Files\WebServ\httpd\portal\register.php on line 12


Nadal ten sam błąd.
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.