Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Prosty skrypt który nabawił mnie nerwicy
Forum PHP.pl > Forum > Przedszkole
Szypa
walczę nad tym od rana. Chce zrobić prosty skrypt rejestracji z wykorzystanie bazy danych. cały czas wywala mi błąd w linii 38 a ja za cholerę nie wiem o co w tym chodzi:/ Proszę o pomoc. Jestem zielony w Php a samych skryptów uczę sie domowo z książki:)


  1. <?php
  2. ini_set ('display_errors', 1);
  3. error_reporting (E_ALL & ~E_NOTICE);
  4. $tytul = "Rejestracja";
  5. require ('szablony/menu.html');
  6. ?>
  7. <div id="content">
  8. <div id="posts">
  9. <div class="post">
  10. <h2 class="title">Rejestracja na stronie osiedlowej sieci XxX</h2>
  11. <div class="story">
  12. <p><strong>Podaj dane niezbędne dla rejestracji</strong></p>
  13. <?php
  14. if (isset ($_POST['wyslij']))
  15. {
  16. $problem = FALSE;
  17.  
  18. if (empty ($_POST['uzytkownik']))
  19. {
  20. $problem = TRUE;
  21. print '<p>Proszę podac nazwę użytkownika!</p>';
  22. }
  23.  
  24. if (empty ($_POST['haslo1']))
  25. {
  26. $problem = TRUE;
  27. print '<p>Proszę podac hasło!</p>';
  28. }
  29.  
  30. if ($_POST['haslo1'] != $_POST['haslo2'])
  31. {
  32. $problem = TRUE;
  33. print '<p>Hasło nie jest zgodne z powtórzonym hasłem!</p>';
  34. }
  35.  
  36. if (!$problem)
  37. {
  38. if (dbc = @mysql_connect ('localhost', 'uzytkownik', 'haslo');
  39. {
  40. if (!@mysql_select_db ('XxX'))
  41. {
  42. die ('<p>Nie można wybrać bazy danych, ponieważ: <b>' . mysql_error() . '</b></p>');
  43. }
  44. }
  45. else
  46. {
  47. die ('<p>Nie można połączyć się z MySQL, ponieważ: <b>' . mysql_error() . '</b></p>');
  48. }
  49.  
  50. $zapytanie = "INSERT INTO uzytkownicy (user_id, uzytkownik, haslo, email, data) VALUES (0, '{$_POST['uzytkownik']}', '{$_POST['haslo1']}', '{$_POST['email']}', now())";
  51.  
  52. if (@mysql_query ($zapytanie))
  53. {
  54. print '<p>Zostałeś zarejestrowany na stronie!</p>';
  55. }
  56. else
  57. {
  58. print "<p>Nie można zarejestrowac na stronie ponieważ: <b>" . mysql_error() . "</b>. Wykonywane zapytanie: $zapytanie.</p>";
  59. }
  60. }
  61. else
  62. {
  63. print '<p>Brak wypełnionego pola! Proszę spróbować jeszcze raz!</p>';
  64. }
  65. } 
  66. else
  67. {
  68. ?>
  69. <form action ="rejestracja.php" method="post">
  70. <p>Nazwa użytkownika: <input type="text" name="uzytkownik" size="20" /><br />
  71. Hasło: <input type="password" name="haslo1" size="20" /><br />
  72. Powtóz hasło: <input type="password" name="haslo2" size="20" /><br />
  73. Adres Email: <input type="text" name="email" size="20" /><br />
  74. <input type="submit" name="wyslij" value="Zarejestruj" /></p>
  75. </form>
  76. <?php
  77. }
  78. ?>
  79. </div>
  80. </div>
  81. </div>
  82. <!-- end #posts -->
  83. <?php
  84. require ('szablony/linki.html');
  85. require ('szablony/stopka.html');
  86. ?>
Stark
  1. <?php
  2. if (dbc = @mysql_connect ('localhost', 'uzytkownik', 'haslo');
  3. ?>


Zamknij nawias i usun srednik. smile.gif
Szypa
No i zapomniałeś dodać że powinienem dodać znak $ przed "dbc" smile.gif

Mam jeszcze jedno pytanie. Chciałbym zaszyfrować hasło. Po zmianie tej linijki:
$zapytanie = "INSERT INTO uzytkownicy (user_id, uzytkownik, haslo, email, data) VALUES (0, '{$_POST['uzytkownik']}', '{$_POST['haslo1']}', '{$_POST['email']}', now())";

na tą:
$zapytanie = "INSERT INTO uzytkownicy (user_id, uzytkownik, haslo, email, data) VALUES (0, '{$_POST['uzytkownik']}', '{crypt($_POST['haslo1'])}', '{$_POST['email']}', now())";

Widzę ten błąd:
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in c:\usr\krasnal\www\XxX\rejestracja.php on line 50

Ma ktoś pomysł o co chodzi?
Teamon
Ekhm... co do strongow to proponuje:

  1. <?php
  2. $zapytanie = 'INSERT INTO uzytkownicy (user_id, uzytkownik, haslo, email, data) VALUES (0, "'.$_POST['uzytkownik'].'", "'.crypt($_POST['haslo1']).'", "'.$_POST['email'].'", '.now().')';
  3. ?>


I tak przy okazji, moze warto zainteresowac sie jakims IDE?
Szypa
No moja książka nie pisała o takim sposobie zapisania funkcji. Swoja drogą na końcu się wykrzaczył, ale wystarczyło tylko przepisać: zamiast '.now().' zrobić po prostu now() bez cudzysłowów. I swoją drogą dzięki za pomoc.
A tak w ogóle to co to jest to IDE?
abc667
tutaj jest odpowiedź
Szypa
Wiesz, nie dostałem bana na googlach, i sprawdziłem na nich o co może chodzić. Ale znalazłem tylko informacje o jakiejś eclipsie. Jak już pisałem jestem początkującym "programistą" PHP i nie mam nawet pojęcia czy to w ogóle o tą eclipse chodziło. Jak by ktoś mógł wytłumaczyć o co Teamonowi chodziło byłby wdzięczny.
mike
~abc667 za następnego takiego posta dostaniesz ostrzeżenie.
Nie masz nic mądrego do powiedzenia to nie pisz nic.

~Szypa IDE to Integrated Development Environment czyli zintegrowane środowisko programistyczne.
Jednym słowem chodziło o dobry edytor.
A jeśli chodzi o Eclipse to tak, o to miedzy innymi chodziło. Moim zdaniem najlepsze środowisko dla programisty choć dla Ciebie może być nieprzydatne w 99%.
Wszystko o edytorach znajdziesz tu: Temat: Najlepszy edytor do php (i w tym wątku ewentualnie drąż temat edytora)
abc667
ale nie rozumiem po co kopiować coś cały czas?
wpisujemy w google ide i na pierwszym miejscu mamy link do wikipedi i jest wszystko napisane
ale co tam, następnym razem będę kopiował :-p
Szypa
Korzystam u siebie z Dreamweavera. No byłbym masochistą korzystając z notatnika. Dzięki mike za przybliżenie tematu. Teraz wiem, że muszę sobie sprawić coś jeszcze oprócz dreama do pisania w php.

No i niestety trafiłem na kolejny błąd. Rejestracja przebiega już płynnie, ale mam problem z logowaniem. Mógłby ktoś zerknąć:
  1. <?php
  2. ini_set ('display_errors', 1);
  3. error_reporting (E_ALL & ~E_NOTICE);
  4. $tytul = "Strona Główna";
  5. require ('szablony/menu.html');
  6. ?>
  7.  
  8.  
  9. <div id="content">
  10. <div id="posts">
  11. <div class="post">
  12. <h2 class="title">Tutaj możesz się zalogować</h2>
  13. <div class="story">
  14. <p><strong>Wpisz odpowiednie dane w przeznaczone do tego miesjca w formularzu</p>
  15. <?php
  16. if (isset ($_POST['zaloguj']))
  17. {
  18. $problem = FALSE;
  19.  
  20. if (empty ($_POST['uzytkownik']))
  21. {
  22. $problem = TRUE;
  23. print '<p>Proszę podac nazwę użytkownika!</p>';
  24. }
  25.  
  26. if (empty ($_POST['haslo']))
  27. {
  28. $problem = TRUE;
  29. print '<p>Proszę podac hasło!</p>';
  30. }
  31.  
  32. if (empty ($_POST['email']))
  33. {
  34. $problem = TRUE;
  35. print '<p>Proszę podac adres email!</p>';
  36. }
  37.  
  38.  
  39. if (!$problem)
  40. {
  41.  
  42. // Sprawdzanie działania Bazy Danych
  43. if ($dbc = @mysql_connect ('localhost', 'uzytkownik', 'XxX'))
  44. {
  45. if (!@mysql_select_db ('XxX'))
  46. {
  47. die ('<p>Nie można wybrać bazy danych, ponieważ: <b>' . mysql_error() . '</b></p>');
  48. }
  49. }
  50. else
  51. {
  52. die ('<p>Nie można połączyć się z MySQL, ponieważ: <b>' . mysql_error() . '</b></p>');
  53. }
  54.  
  55. $zapytanie = 'SELECT uzytkownik, haslo, email FROM uzytkownicy WHERE (uzytkownik='$_POST['uzytkownik']')';
  56. if ($r = mysql_query ($zapytanie))
  57. {
  58. $wiersz = mysql_fetch_array ($r);
  59. if ((_POST['uzytkownik'] == $wiersz['uzytkownik']) AND (crypt($_POST['haslo']) == $wiersz['haslo'])
  60. {
  61. print '<p><b>Zostałeś zalogowany na stronie!</b><br />
  62. Możesz teraz skorzystać z funkcji zapewnionych Twojej grupie</p>';
  63. $_SESSION['uzytkownik'] = '$_POST['uzytkownik']';
  64. $_SESSION['grupa'] = '$wiersz['grupa']';
  65. $_SESSION['zalogowany'] = time();
  66. }
  67. }
  68. else
  69. {
  70. die('<p>Nie można odczytać danych ponieważ: <b>' . mysql_error . '</b>. Zapytanie: $zapytanie.</p>';
  71. }
  72.  
  73. }
  74. else
  75. {
  76. print '<p>Brak wypełnionego pola! Proszę spróbować jeszcze raz!</p>';
  77. }
  78. } 
  79. else
  80. {
  81. ?>
  82. <p><strong>Podaj informacje:</strong></p>
  83. <form action ="zaloguj.php" method="post">
  84. <p>Nazwa użytkownika: <input style="position:relative; left:13px" type="text" name="uzytkownik" size="20" /><br />
  85. Hasło: <input style="position:relative; left:80px" type="password" name="haslo" size="20" /><br />
  86. Adres Email: <input style="position:relative; left:52px"type="text" name="email" size="20" /><br />
  87. <input type="submit" name="loguj" value="Zaloguj" /></p>
  88. </form>
  89. <?php
  90. }
  91. ?>
  92.  
  93.  
  94. </div>
  95. </div>
  96. </div>
  97. <!-- end #posts -->
  98. <?php
  99. require ('szablony/linki.html');
  100. require ('szablony/stopka.html');
  101. ?>
Teamon
Kolejny błąd... może coś więcej o nim powiesz?
Szypa
No tak, mój błąd. Już podaje o co chodzi:
Parse error: parse error in c:\usr\krasnal\www\XxX\logowanie.php on line 55
mike
  1. <?php
  2.  
  3. // ...
  4. $zapytanie = 'SELECT uzytkownik, haslo, email FROM uzytkownicy WHERE (uzytkownik=' . $_POST['uzytkownik'] . ')';
  5. // ...
  6.  
  7. ?>
Szypa
To poprawiłem ale krzaczy się dalej w 59 linijce:
Parse error: parse error in c:\usr\krasnal\www\XxX\logowanie.php on line 59
mike
_POST => $_POST

Dbałości troszkę. Lepiej popatrzeć chwile dłużej niż smalić od razu posta na forum.
Szypa
To sam poprawiłem, zauważyłem od reki, ale nie poprawiłem na forum. Teraz ta linijka wygląda tak, ale nadal się krzaczy:
  1. <?php
  2. if ( ($_POST['uzytkownik'] == $wiersz['uzytkownik']) AND (crypt($_POST['haslo'] == $wiersz['haslo']))
  3. ?>
strife
  1. <?php
  2. if ( ($_POST['uzytkownik'] == $wiersz['uzytkownik']) AND (crypt($_POST['haslo']) == $wiersz['haslo'])
  3. ?>


Źle nawias umieściłeś, trochę więcej dbałości ... jak już to napisał mike.

Pozdrawiam.
Szypa
Wszystko ładnie przepisałem i już się nie krzaczy. Chciałbym za to zapytać w wartość merytoryczną. Nie wiem czy dobrze podstawiam wartości wyciągnięte z bazy. Tu może być kłopot:/ Jakby ktoś mógłby się przyjrzeć zapytaniom do bazy byłbym wdzięczny.
  1. <?php
  2. ini_set ('display_errors', 1);
  3. error_reporting (E_ALL & ~E_NOTICE);
  4. $tytul = "Logowanie";
  5. require ('szablony/menu.html');
  6. ?>
  7.  
  8.  
  9. <div id="content">
  10. <div id="posts">
  11. <div class="post">
  12. <h2 class="title">Tutaj możesz się zalogować</h2> 
  13. <div class="story">
  14. <?php
  15. if (isset ($_POST['login']))
  16. {
  17. $problem = FALSE;
  18.  
  19. if (empty ($_POST['uzytkownik']))
  20. {
  21. $problem = TRUE;
  22. print '<p>Proszę podac nazwę użytkownika!</p>';
  23. }
  24.  
  25. if (empty ($_POST['haslo']))
  26. {
  27. $problem = TRUE;
  28. print '<p>Proszę podac hasło!</p>';
  29. }
  30.  
  31. if (empty ($_POST['email']))
  32. {
  33. $problem = TRUE;
  34. print '<p>Proszę podac adres email!</p>';
  35. }
  36.  
  37.  
  38. if (!$problem)
  39. {
  40.  
  41. // Sprawdzanie działania Bazy Danych
  42. if ($dbc = @mysql_connect ('localhost', 'uzytkownik', 'XxX'))
  43. {
  44. if (!@mysql_select_db ('XxX'))
  45. {
  46. die ('<p>Nie można wybrać bazy danych, ponieważ: <b>' . mysql_error() . '</b></p>');
  47. }
  48. }
  49. else
  50. {
  51. die ('<p>Nie można połączyć się z MySQL, ponieważ: <b>' . mysql_error() . '</b></p>');
  52. }
  53.  
  54. $zapytanie = 'SELECT haslo, email, grupa FROM uzytkownicy WHERE (uzytkownik=' . $_POST['uzytkownik'] . ')';
  55. if ($r = mysql_query ($zapytanie))
  56. {
  57. $wiersz = mysql_fetch_array ($r);
  58. if ( ($_POST['email'] == $wiersz['email']) AND (crypt($_POST['haslo']) == $wiersz['haslo']))
  59. {
  60. print '<p><b>Zostałeś zalogowany na stronie!</b><br />
  61. Możesz teraz skorzystać z funkcji zapewnionych Twojej grupie</p>';
  62. $_SESSION['uzytkownik'] = $_POST['uzytkownik'];
  63. $_SESSION['grupa'] = $wiersz['grupa'];
  64. $_SESSION['zalogowany'] = time();
  65. }
  66. else
  67. [
  68.  
  69. if ($_POST['email'] != $wiersz['email'])
  70. {
  71. print '<p>Podałeś zły adres Email!</p>';
  72. }
  73. if (crypt($_POST['haslo']) != $wiersz['haslo'])
  74. {
  75. print '<p>Podałeś złe hasło!</p>';
  76. }
  77. }
  78.  
  79. }
  80.  
  81.  
  82. }
  83. else
  84. {
  85. print '<p>Uzupełnij brakujące dane i spróbuj jeszcze raz!</p>';
  86. }
  87. } 
  88. else
  89. {
  90. ?>
  91. <p><strong>Wpisz odpowiednie dane w przeznaczone do tego miesjca w formularzu</strong></p>
  92. <form action ="logowanie.php" method="post">
  93. <p>Nazwa użytkownika: <input style="position:relative; left:13px" type="text" name="uzytkownik" size="20" /><br />
  94. Hasło: <input style="position:relative; left:80px" type="password" name="haslo" size="20" /><br />
  95. Adres Email: <input style="position:relative; left:52px"type="text" name="email" size="20" /><br />
  96. <input type="submit" name="login" value="Zaloguj" /></p>
  97. </form>
  98. <?php
  99. }
  100. ?>
  101.  
  102.  
  103. </div>
  104. </div>
  105. </div>
  106. <!-- end #posts -->
  107. <?php
  108. require ('szablony/linki.html');
  109. require ('szablony/stopka.html');
  110. ?>
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.