Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne][SQL][PHP]Error
Forum PHP.pl > Forum > Przedszkole
Andrzej-99
Pisze Panel gracza dla serwera samp jestem początkujący z php , ale wiem nie co więcej .


Kod z strony:
  1. Parse error: syntax error, unexpected $end in /users/andrzej97/www/panel.woft.pl/index.php on line 55


Kod z PHP:
  1. <?
  2. // Na samej górze zadeklaruj sesję.
  3. // Sekcja wylogowywania, kasuje wszystkie zmienne sesyjne
  4. $message=""; // Wiadomość po wylogowaniu
  5.  
  6. // Sekcja logowania
  7. $login=$_POST[&#8216;login’];
  8. if($login) {
  9. // W momencie kliknięcia w przycisk formularza
  10. $login=$_POST[&#8216;uzytkownik’];
  11. $pass=$_POST[&#8216;haslo’];
  12. // Koduje hasło funkcją md5().
  13.  
  14.  
  15. // Połączenie z bazą.
  16. if ($db = sqlite_open('BazaDanych.db', 0666, $sqliteerror)) {
  17. // Sprawdzenie nazwy użtkownika i hasła.
  18. $rezultat=sqlite_query($db ,"select * FROM players WHERE uzytkownik=’$login’ AND haslo=’$pass’");
  19. if(@sqlite_num_rows($rezultat)){
  20.  
  21. ?>
  22. session_register("uzytkownik"); // Zapamiętuje zmienną sesji
  23. header("location:main.php"); // Przekierowanie do strony main.php
  24. exit;
  25. }else {
  26. $message="Nieprawidłowa nazwa użytkownika lub hasło";
  27. }
  28. } // Koniec sprawdzania autoryzacji.
  29. ?>
  30. } else {
  31. die($sqliteerror);
  32. }
  33. <head>
  34.  
  35. <title>Dokument</title>
  36. </head>
  37. <body>
  38. <? echo $message; ?>
  39. <form id="form1" name="form1" method="post" action="<? echo $PHP_SELF; ?>">
  40. <table>
  41. <tr>
  42. <td>Użytkownik: </td>
  43. <td><input name="uzytkownik" type="text" id="uzytkownik" /></td>
  44. </tr>
  45. <tr>
  46. <td>Hasło: </td>
  47. <td><input name="haslo" type="password" id="haslo" /></td>
  48. </tr>
  49. </table>
  50. <input name="login" type="submit" id="login" value="login" />
  51. </form>
  52. </body>
  53. </html>


Co jest żle w kodzie?
CuteOne
o jedną klamrę za mało... i używaj jakiegoś IDE do pisania skryptów np. netbeansa
Andrzej-99
Cytat(CuteOne @ 24.08.2012, 09:06:34 ) *
o jedną klamrę za mało... i używaj jakiegoś IDE do pisania skryptów np. netbeansa

Ale gdzie komputerowo przeliczyłem i recznie klarmy i się zgadazają!
Jest 5 otwartych i 5 zamkniętych!
viking
A co to są za kwatki?
  1. if(@sqlite_num_rows($rezultat)){
  2.  
  3. ?> //<--- kończysz a niżej nie otwierasz <?php
  4. session_register("uzytkownik"); // Zapamiętuje zmienną sesji
mikolaj51
Dziwny ten kod, po co Ci w linii 23 oraz 31 znacznik ?> ?
Za to chyba po 34-tej powinien być, jak widzisz nawet tam składnia się nie koloruje smile.gif
toffiak
Nie testowane

  1. <?
  2. // Na samej górze zadeklaruj sesję.
  3. // Sekcja wylogowywania, kasuje wszystkie zmienne sesyjne
  4. $message = ""; // Wiadomość po wylogowaniu
  5. // Sekcja logowania
  6. $login = $_POST['login'];
  7. if ($login) {
  8. // W momencie kliknięcia w przycisk formularza
  9. $login = $_POST['uzytkownik'];
  10. $pass = $_POST['haslo'];
  11. // Koduje hasło funkcją md5().
  12. // Połączenie z bazą.
  13. if ($db = sqlite_open('BazaDanych.db', 0666, $sqliteerror)) {
  14. // Sprawdzenie nazwy użtkownika i hasła.
  15. $rezultat = sqlite_query($db, "select * FROM players WHERE uzytkownik=’$login’ AND haslo=’$pass’");
  16. if (sqlite_num_rows($rezultat)) {
  17. session_register("uzytkownik"); // Zapamiętuje zmienną sesji
  18. header("location:main.php"); // Przekierowanie do strony main.php
  19. } else {
  20. $message = "Nieprawidłowa nazwa użytkownika lub hasło";
  21. }
  22. } // Koniec sprawdzania autoryzacji.
  23. } else {
  24. die($sqliteerror);
  25. }
  26. ?>
  27. <html>
  28. <head>
  29. <title>Dokument</title>
  30. </head>
  31. <body>
  32. <? echo $message; ?>
  33. <form id="form1" name="form1" method="post" action="<? echo $PHP_SELF; ?>">
  34. <table>
  35. <tr>
  36. <td>Użytkownik: </td>
  37. <td><input name="uzytkownik" type="text" id="uzytkownik" /></td>
  38. </tr>
  39. <tr>
  40. <td>Hasło: </td>
  41. <td><input name="haslo" type="password" id="haslo" /></td>
  42. </tr>
  43. </table>
  44. <input name="login" type="submit" id="login" value="login" />
  45. </form>
  46. </body>
  47. </html>
Andrzej-99
Nic nie działa są dwa errory zawsze!
viking
Sprawdź czy jak zmienisz <? na <?php też będą błędy.
Andrzej-99
Tez czyli musze inaczej to napisać.
viking
To jakie błędy teraz dostajesz po poprawkach? session_register jest usunięte z PHP 5.4, zresztą nie masz nigdzie $uzytkownik.
Andrzej-99
session_register - juz zamieniłem
Errory takie:
viking
Nie wkleiłeś żadnego błędu smile.gif
Wygląda też że robisz w kodzie jakiś include (brak doctype, html i body). Jeśli tak, to również poprawiłeś zamknięcia?
mikolaj51
Musisz sprawdzić czy taki index istnienie:


zamiast:
  1. $login = $_POST['login'];
  2. if ($login) {


daj tak:

  1. if (isset($_POST['login'])) {


Edit:

Tam gdzie masz dane z tablicy $POST to musisz sprawdzać czy dany index istnieje smile.gif
Tu link do poczytania: http://php.net/manual/en/function.isset.php

  1. } else {
  2. die($sqliteerror); //ta zmienna nie istenie
  3. // tu w tym else powinno być to co się stanie gdy user nie kliknął w przycisk
  4. }

Andrzej-99
  1.  
  2. <?php
  3. // Na samej górze zadeklaruj sesję.
  4. // Sekcja wylogowywania, kasuje wszystkie zmienne sesyjne
  5. $message = ""; // Wiadomość po wylogowaniu
  6. // Sekcja logowania
  7. if (isset($_POST['login'])) {
  8. // W momencie kliknięcia w przycisk formularza
  9. $login = $_POST['uzytkownik'];
  10. $pass = $_POST['haslo'];
  11. // Koduje hasło funkcją md5().
  12. // Połączenie z bazą.
  13. if ($db = sqlite_open('BazaDanych.db', 0666, $sqliteerror)) {
  14. // Sprawdzenie nazwy użtkownika i hasła.
  15. $rezultat = sqlite_query($db, "select * FROM players WHERE uzytkownik=’$login’ AND haslo=’$pass’");
  16. if (sqlite_num_rows($rezultat)){
  17. } else {
  18. die($sqliteerror);
  19. }
  20. $_SESSION['uzytkownik'] = '1'; // Zapamiętuje zmienną sesji
  21. header("location:main.php"); // Przekierowanie do strony main.php
  22. } else {
  23. $message = "Nieprawidłowa nazwa użytkownika lub hasło";
  24. }
  25. } // Koniec sprawdzania autoryzacji.
  26.  
  27. ?>
  28. <html>
  29. <head>
  30. <title>Dokument</title>
  31. </head>
  32. <body>
  33. <? echo $message; ?>
  34. <form id="form1" name="form1" method="post" action="<? echo $_SERVER; ?>">
  35. <table>
  36. <tr>
  37. <td>Użytkownik: </td>
  38. <td><input name="uzytkownik" type="text" id="uzytkownik" /></td>
  39. </tr>
  40. <tr>
  41. <td>Hasło: </td>
  42. <td><input name="haslo" type="password" id="haslo" /></td>
  43. </tr>
  44. </table>
  45. <input name="login" type="submit" id="login" value="login" />
  46. </form>
  47. </body>
  48. </html>

Kod juz działa ale jak wpisze byle jakie dane to przechodzi do strony Array której nie ma!
  1. Not Found
  2. The requested URL /Array was not found on this server.
CuteOne
Zamiast poprawiać ten kod powodując kolejne błędy lepiej przeczytaj sobie jakiś poradnik o zmiennych, tablicach i ogólnie o podstawach PHP (na necie tego sporo) . Kolejna sprawa to umiejętność czytania błędów - wrzuć jego treść do google i zobacz co je powoduje.. zaoszczędzisz swój i nasz czas.
viking
  1. print_r($_SERVER);

I faktycznie poczytaj trochę podstaw.
mikolaj51
Nie tylko o podstawy tu chodzi, włącz myślenie smile.gif
Popatrz sobie do źródła, gdzie formularz się wysyła <form action="...">
Tam ma być ścieżka do pliku - poczytaj sobie o $_SERVER smile.gif
Andrzej-99
Ja myśle powli.
Ja mam 20 ksiązek o php ale one są brata pod kluczem. On uczył mnie rok temu php. Dużo zapomniałem
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.