Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Błąd w skrypcie
Forum PHP.pl > Forum > Przedszkole
Sunburn
Witam, piszę skrypt rejestracji na podstawie mojej książki, ale wyświetla mi się błąd, że unexpected '{' on line 17 . Co jest źle w tym skrypcie?
  1. <?php
  2.  
  3. // utworzenie krótkich nazw zmiennych
  4. $email=$_POST['email'];
  5. $nazwa_uz=$_POST['nazwa_uz'];
  6. $haslo=$_POST['haslo'];
  7. $haslo2=$_POST['haslo2'];
  8.  
  9. // rozpoczęcie sesji, która może okazać się konieczna póĽniej
  10. // rozpoczęcie w tym miejscu, musi ona zostać przekazana przed nagłówkami
  11.  
  12.  // dołączenie plików funkcji tej aplikacji
  13.  require_once('funkcje_zakladki.php'); 
  14.  
  15.  try
  16.  {  
  17.  // sprawdzenia wypełnienia formularzy
  18.  if (!wypelniony($_POST))
  19.  {
  20. throw new Exception('Formularz wypełniony nieprawidłowo — proszę wrócić i spróbować ponownie.');
  21.  }
  22.  
  23.  // nieprawidłowy adres poczty elektronicznej
  24.  if (!prawidlowy_email($email))
  25.  {
  26. throw new Exception('Nieprawidłowy adres poczty elektronicznej — proszę wrócić i spróbować ponownie.');
  27.  } 
  28.  
  29.  // różne hasła
  30.  if ($haslo != $haslo2)
  31.  {
  32. throw new Exception('Niepasujące do siebie hasła — proszę wrócić i spróbować ponownie.');
  33.  }
  34.  
  35.  // sprawdzenie długości hasła
  36.  if (strlen($nazwa_uz)>16)
  37.  {
  38. throw new Exception('Nazwa uzytkownika nie może mieć więcej niż 16 znaków — proszę wrócić i spróbować ponownie.');
  39.  }
  40.  
  41.  // sprawdzenie długości nazwy użytkownika
  42.  if (strlen($haslo)<6)
  43.  {
  44. throw new Exception('Hasło musi mieć co najmniej 6 znaków — proszę wrócić i spróbować ponownie.');
  45.  }
  46.  
  47.  // próba zarejestrowania
  48.  rejestruj($nazwa_uz, $email, $haslo);
  49.  // rejestracja zmiennej sesji
  50.  $_SESSION['prawid_uzyt'] = $nazwa_uz;
  51.  
  52.  
  53.  // stworzenie łącza do strony członkowskiej
  54.  tworz_naglowek_html('Rejestracja pomyślna');
  55.  echo 'Rejestracja zakończyła się sukcesem. Proszę udać się na stronę '
  56.  .'członkowską aby skonfigurować swoje zakładki!';
  57.  tworz_HTML_URL('czlonek.php', 'Strona członkowska');
  58.  
  59.  // koniec strony
  60.  tworz_stopke_html();
  61.  }
  62.  catch (Exception $e)
  63.  {
  64.  tworz_naglowek_html('Problem:');
  65.  echo $e->getMessage();
  66.  tworz_stopke_html();
  67.  exit;
  68.  } 
  69. ?>


Pozdrawiam i z góry dzięki
chemik1982
Witam,

Zapewne używasz php w wersji 4...

Pozdrawiam.
Sunburn
dobra, z tamtym dałem sobie spokój (za głębokie wody jak na początek). Dorwałem w sieci taki oto skrypcik, który wyświetla formularz rejestracji ale gdy kliknę "rejestruj" to strona tylko przeładowuje się:
  1. <?php
  2.  
  3.  // łączymy się z bazą danych i wybieramy potrzebną baze danych
  4.  $link_id = mysql_connect("host", "user", "pass"); // tu root i pass są wprowadzone przez was w zależności od konfiguracji waszego se
    rwera
  5.  mysql_close($link_id);
  6.  
  7.  // stworzymy dwie przydatne funkcje...jedna będzie tworzyła nagłówek strony, a dru
    ga stopke strony
  8.  function html_header()
  9.  {
  10.  global $new_win_width, $new_win_height;
  11.  ?>
  12.  <HTML>
  13.  <head>
  14. <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
  15.  
  16.  <TITLE>Przegladarka rekordow</TITLE>
  17.  </HEAD>
  18.  <BODY>
  19.  <?php
  20.  }
  21.  
  22.  function html_footer()
  23.  {
  24.  ?>
  25.  </BODY>
  26.  </HTML>
  27.  <?php
  28.  }
  29.  
  30.  
  31.  function in_use($userid) // funkcja ta sprawdza czy nie dany login nie jest już wykorzystany
  32.  {
  33.  global $tabela_uzytkownikow;
  34.  
  35.  $query = "SELECT userid FROM $tabela_uzytkownikow WHERE userid = 'userid'";
  36.  $result = mysql_query($query);
  37.  if(!mysql_num_rows($result)) return 0;
  38.  else return 1;
  39.  }
  40.  
  41.  
  42.  function register_form() // funkcja ta wyświetla nam formularz w który użytkownik wpisze swoje dane
  43.  {
  44.  global $userid, $username;
  45.  global $PHP_SELF;
  46.  ?>
  47.  <CENTER><H3>Utworz swoje konto</H3></CENTER>
  48.  <FORM METHOD="post" ACTION="<?php echo $PHP_SELF ?>">
  49.  <INPUT TYPE="hidden" NAME="action" VALUE="register">
  50.  <DIV ALIGN="center"><CENTER><TABLE BORDER="1" WIDTH="90%">
  51.  <TR>
  52.  <TH WIDTH="30%" NOWRAP>Wybrany identyfikator</TH>
  53.  <TD WIDTH="70%"><INPUT TYPE="text" NAME="userid" VALUE="<?php echo $userid ?>" SIZE="8" MAXLENGHT="8"></TD>
  54.  </TR>
  55.  <TR>
  56.  <TH WIDTH="30%" NOWRAP>Wybrane hasło</TH>
  57.  <TD WIDTH="70%"><INPUT TYPE="password" NAME="userpassword" SIZE="15"></TD>
  58.  </TR>
  59.  <TR>
  60.  <TH WIDTH="30%" NOWRAP>Powtórz hasło</TH>
  61.  <TD WIDTH="70%"><INPUT TYPE="password" NAME="userpassword2" SIZE="15"></TD>
  62.  </TR>
  63.  <TR>
  64.  <TH WIDTH="30%" NOWRAP>Imie i Nazwisko</TH>
  65.  <TD WIDTH="70%"><INPUT TYPE="text" NAME="username" VALUE="<?php echo $username ?>" SIZE="20"></TD>
  66.  </TR>
  67.  <TR>
  68.  <TH WIDTH="30%" COLSPAN="2" NOWRAP>
  69.  <INPUT TYPE="submit" VALUE="Rejestruj">
  70.  <INPUT TYPE="reset" VALUE="Wyczyść">
  71.  </TH>
  72.  </TR>
  73.  </TABLE>
  74.  </CENTER></DIV>
  75.  </FORM>
  76.  <?php
  77.  }
  78.  
  79.  
  80.  function create_account() // funckja ta tworzy tworzy konto danego użytkownika
  81.  {
  82.  global $userid, $username, $userpassword, $userpassword2;
  83.  
  84.  
  85.  
  86.  // można też na wszelki wypadek dopisać warunki funkcji if które sprawdzałyby czy 
    podane dane są poprawne. Ja ten krok pomijam
  87.  
  88.  $link_id = mysql_connect("localhost", "root", "pass");
  89.  
  90.  $query = "INSERT INTO user VALUES(NULL, '$userid', password('$userpassword'), '$username')";
  91.  
  92.  $result = mysql_query($query);
  93.  $usernumber = mysql_insert_id($link_id);
  94.  
  95.  
  96.  html_header();
  97.  ?>
  98.  <CENTER><H3>
  99.  <?php echo $username ?>, dziękujemy za zarejestrowanie się
  100.  </H3></CENTER>
  101.  
  102.  <DIV ALIGN="center"><CENTER><TABLE BORDER="1" WIDTH="90%">
  103.  <TR>
  104.  <TH WIDTH="30%" NOWRAP>Numer użytkonika</TH>
  105.  <TD WIDTH="70%"><?php echo $usernumber ?></TD>
  106.  </TR>
  107.  <TR>
  108.  <TH WIDTH="30%" NOWRAP>Wybrany identyfikator</TH>
  109.  <TD WIDTH="70%"><?php echo $userid ?></TD>
  110.  </TR>
  111.  <TR>
  112.  <TH WIDTH="30%" NOWRAP>Wybrane hasło</TH>
  113.  <TD WIDTH="70%"><?php echo $userpassword ?></TD>
  114.  </TR>
  115.  <TR>
  116.  <TH WIDTH="30%" NOWRAP>Imię i Nazwisko</TH>
  117.  <TD WIDTH="70%"><?php echo $username ?></TD>
  118.  </TR>
  119.  </TABLE></CENTER></DIV>
  120.  <?php
  121.  html_footer();
  122.  }
  123.  switch($action)
  124.  {
  125.  case "register":
  126.  create_account();
  127.  break;
  128.  default:
  129.  html_header();
  130.  register_form();
  131.  html_footer();
  132.  break;
  133.  }
  134.  ?>


Pozdro
drPayton
A gdzieś Ty dorwał ten skrypt? Ja tu widzę niezły lol:
  1. <CENTER><H3>Utworz swoje konto</H3></CENTER>
  2. <FORM METHOD="post" ACTION="<?php echo $PHP_SELF ?>">

  1. <?php
  2. switch($action)
  3. (...)
  4. ?>


biggrin.gif

Zmień ten pierwszy fragment na:
  1. <CENTER><H3>Utworz swoje konto</H3></CENTER>
  2. <FORM METHOD="post" ACTION="<?php echo $_SERVER['PHP_SELF']; ?>?action=register">

I zobacz czy działa, jak nie to wtedy będzie można wniknąć w kod i poszukać błędu...
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.