Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL][HTML][PHP]błąd w kodzie logowania
Forum PHP.pl > Forum > Przedszkole
programistaarek
Witam jak w temacie i opisie chodzi mi o skrypt logowania . Napisałem go i po wpisaniu w miejsce login loginu i hasła hasła klikając login nic się nie dzieje .
  1. <?php ob_start();
  2.  
  3.  
  4. include 'config.php';
  5. include("head.php");
  6. if(isset($_POST['ok'])){
  7. $_POST['login'] = filter_var(trim($_POST['login']), FILTER_SANITIZE_STRING);
  8. $_POST['haslo'] = filter_var(trim($_POST['haslo']), FILTER_SANITIZE_STRING);
  9.  
  10.  
  11.  
  12. if(empty($_POST['login'])) echo 'proszę wpisać login';
  13. elseIF(empty($_POST['haslo'])) echo 'proszę wpisać hasło';
  14. else{
  15. $sol = '%$^&gfgfg5454';
  16. $haslo = sha1( $_POST['haslo'] . $sol );
  17. $spr = mysql_fetch_array(mysql_query("SELECT id FROM players WHERE login='".$_POST['login']."' and haslo = '".$haslo."'"))or die(mysql_error());
  18. if(!empty($spr['id'])){
  19. $_SESSION['ss'] = $spr['id'];
  20. $_SESSION['sss'] = $_POST['login'];
  21. # header('Location: training.php');
  22. exit('dziala');
  23. }
  24. else echo 'błedne dane';
  25.  
  26. }
  27. }
  28.  
  29.  
  30. include("foot.php");
  31. ?>
  32. <center>
  33. <form action='login.php' method='POST'>
  34. Login:<br><input type='text' name='login'/><br>
  35. Hasło:<br><input type='password' name='haslo'/><br>
  36. <input type='submit' name='ok' value='zaloguj'/>
  37. </form>
  38. </center>

Dodam ,że plik rejestracji działa bo w bazie są dodani zawodnicy zarejestrowani . Ktoś wie gdzie tkwi problem ? . Proszę o pomoc . Jak coś mogę dodać inne pliki jak trzeba . Chciałbym by po zalogowaniu przerzucało mi na plik battle.php
rad11
Przesledz kod var_dump`em to sie dowiesz co jest nie tak.
programistaarek
tzn mam to dodać na początku kodu ?
wszystko inne okej ale to logowanie mi już truje głowę od rana
rad11
pierw zrob tak i zobacz co zwraca POST:

  1. var_dump($_POST['ok']);
  2.  
  3. if(isset($_POST['ok'])){
programistaarek
na głownej stronie po wpisaniu danych logowania to wyskoczyło
" string(7) "zaloguj" " <----- to po wpisaniu danych
a po kliknieciu w zalohuj sie tzn wejscie w login.php na stronie głownej bez wpisywania ndanych jest napis " NULL "
rad11
ok to teraz

  1. if(isset($_POST['ok'])){
  2.  
  3. var_dump($_POST['login'], $_POST['haslo']);
programistaarek
Dodałem na początku kodu tóż za <?php to co mi dałeś ostatniego i taki błąd

Parse error: syntax error, unexpected $end in /virtual/m/o/moto-game.ugu.pl/login.php on line 42
okje poprawiłem Twówj kod uzunąłem " {'' i dodałem plik na serwe i traz błąd "NULL NULL"
rad11
Po kliknieciu zaloguj NULL NULL ?
programistaarek
Nie wchodząc w opcje login.php od razu błąd i napis " NULL NULL"
rad11
To wez moze wypelnij te dane logowania i kliknij zaloguj haha.gif
programistaarek
No ale ja nie mam opcj klikać w opcję zaloguj bo jak wchodzę w logowanie to odrazu mi taki bład sie pojawia " Null Null"
  1. <?php ob_start();
  2. if(isset($_POST['ok']));
  3.  
  4. var_dump($_POST['login'], $_POST['haslo']);
  5.  
  6. include 'config.php';
  7. include("head.php");
  8. if(isset($_POST['ok'])){
  9. $_POST['login'] = filter_var(trim($_POST['login']), FILTER_SANITIZE_STRING);
  10. $_POST['haslo'] = filter_var(trim($_POST['haslo']), FILTER_SANITIZE_STRING);
  11.  
  12.  
  13.  
  14. if(empty($_POST['login'])) echo 'proszę wpisać login';
  15. elseIF(empty($_POST['haslo'])) echo 'proszę wpisać hasło';
  16. else{
  17. $sol = '%$^&gfgfg5454';
  18. $haslo = sha1( $_POST['haslo'] . $sol );
  19. $spr = mysql_fetch_array(mysql_query("SELECT id FROM players WHERE login='".$_POST['login']."' and haslo = '".$haslo."'"))or die(mysql_error());
  20. if(!empty($spr['id'])){
  21. $_SESSION['ss'] = $spr['id'];
  22. $_SESSION['sss'] = $_POST['login'];
  23. # header('Location: training.php');
  24. exit('dziala');
  25. }
  26. else echo 'błedne dane';
  27.  
  28. }
  29. }
  30.  
  31.  
  32. include("foot.php");
  33. ?>
  34. <center>
  35. <form action='login.php' method='POST'>
  36. Login:<br><input type='text' name='login'/><br>
  37. Hasło:<br><input type='password' name='haslo'/><br>
  38. <input type='submit' name='ok' value='zaloguj'/>
  39. </form>
  40. </center>

tak to wygląda
rad11
a to co to jest?gdzie to jest?

  1. <input type='submit' name='ok' value='zaloguj'/>


o stary troche zle mnie zrozumiales haha.gif

  1. <?php ob_start();
  2.  
  3.  
  4. include 'config.php';
  5. include("head.php");
  6. if(isset($_POST['ok'])){
  7.  
  8. var_dump($_POST['login'], $_POST['haslo']);
  9.  
  10. $_POST['login'] = filter_var(trim($_POST['login']), FILTER_SANITIZE_STRING);
  11. $_POST['haslo'] = filter_var(trim($_POST['haslo']), FILTER_SANITIZE_STRING);
  12.  
  13.  
  14.  
  15. if(empty($_POST['login'])) echo 'proszę wpisać login';
  16. elseIF(empty($_POST['haslo'])) echo 'proszę wpisać hasło';
  17. else{
  18. $sol = '%$^&gfgfg5454';
  19. $haslo = sha1( $_POST['haslo'] . $sol );
  20. $spr = mysql_fetch_array(mysql_query("SELECT id FROM players WHERE login='".$_POST['login']."' and haslo = '".$haslo."'"))or die(mysql_error());
  21. if(!empty($spr['id'])){
  22. $_SESSION['ss'] = $spr['id'];
  23. $_SESSION['sss'] = $_POST['login'];
  24. # header('Location: training.php');
  25. exit('dziala');
  26. }
  27. else echo 'błedne dane';
  28.  
  29. }
  30. }
  31.  
  32.  
  33. include("foot.php");
  34. ?>
  35. <center>
  36. <form action='login.php' method='POST'>
  37. Login:<br><input type='text' name='login'/><br>
  38. Hasło:<br><input type='password' name='haslo'/><br>
  39. <input type='submit' name='ok' value='zaloguj'/>
  40. </form>
  41. </center>


Moj blad usun exit
programistaarek
no jest na samym dole w linij 40
a no widocznie tak hehe
teraz działa ale komunikat taki
" string(9) "arektaker" string(10) "***haslo do mojej gry***" "
rad11
To teraz zrob tak:
  1. <?php
  2. include 'config.php';
  3. include("head.php");
  4. if (isset($_POST['ok'])) {
  5. $_POST['login'] = filter_var(trim($_POST['login']), FILTER_SANITIZE_STRING);
  6. $_POST['haslo'] = filter_var(trim($_POST['haslo']), FILTER_SANITIZE_STRING);
  7.  
  8. if (empty($_POST['login'])) {
  9. echo 'proszę wpisać login';
  10. } else if (empty($_POST['haslo'])) {
  11. echo 'proszę wpisać hasło';
  12. } else {
  13. $sol = '%$^&gfgfg5454';
  14. $haslo = sha1($_POST['haslo'] . $sol);
  15.  
  16. $spr = mysql_fetch_array(mysql_query("SELECT id FROM players WHERE login='" . $_POST['login'] . "' and haslo = '" . $haslo . "'"))or die(mysql_error());
  17. var_dump($spr);
  18. if (!empty($spr['id'])) {
  19. $_SESSION['ss'] = $spr['id'];
  20. $_SESSION['sss'] = $_POST['login'];
  21. # header('Location: training.php');
  22. exit('dziala');
  23. } else {
  24. echo 'błedne dane';
  25. }
  26. }
  27. }
  28.  
  29.  
  30. include("foot.php");
  31. ?>
  32. <center>
  33. <form action='login.php' method='POST'>
  34. Login:<br><input type='text' name='login'/><br>
  35. Hasło:<br><input type='password' name='haslo'/><br>
  36. <input type='submit' name='ok' value='zaloguj'/>
  37. </form>
  38. </center>
programistaarek
a teraz z kolej z pusta strona tzn są odnośniki do rejestracji logowania regulaminu to co mam na głównej a po kliknięciu loguj nic się nie dzieje
rad11
Cytat(programistaarek @ 1.02.2015, 20:26:55 ) *
a teraz z kolej z pusta strona tzn są odnośniki do rejestracji logowania regulaminu to co mam na głównej a po kliknięciu loguj nic się nie dzieje


Dokladnie taki kod masz jak napisalem? Bo tam troche zmian doszlo z {}
programistaarek
Tak mam taki sam jak dałeś
  1. <?php
  2. include 'config.php';
  3. include("head.php");
  4. if (isset($_POST['ok'])) {
  5. $_POST['login'] = filter_var(trim($_POST['login']), FILTER_SANITIZE_STRING);
  6. $_POST['haslo'] = filter_var(trim($_POST['haslo']), FILTER_SANITIZE_STRING);
  7.  
  8. if (empty($_POST['login'])) {
  9. echo 'proszę wpisać login';
  10. } else if (empty($_POST['haslo'])) {
  11. echo 'proszę wpisać hasło';
  12. } else {
  13. $sol = '%$^&gfgfg5454';
  14. $haslo = sha1($_POST['haslo'] . $sol);
  15.  
  16. $spr = mysql_fetch_array(mysql_query("SELECT id FROM players WHERE login='" . $_POST['login'] . "' and haslo = '" . $haslo . "'"))or die(mysql_error());
  17. var_dump($spr);
  18. if (!empty($spr['id'])) {
  19. $_SESSION['ss'] = $spr['id'];
  20. $_SESSION['sss'] = $_POST['login'];
  21. # header('Location: training.php');
  22. exit('dziala');
  23. } else {
  24. echo 'błedne dane';
  25. }
  26. }
  27. }
  28.  
  29.  
  30. include("foot.php");
  31. ?>
  32. <center>
  33. <form action='login.php' method='POST'>
  34. Login:<br><input type='text' name='login'/><br>
  35. Hasło:<br><input type='password' name='haslo'/><br>
  36. <input type='submit' name='ok' value='zaloguj'/>
  37. </form>
  38. </center>

i nadal pusta strona ;/
a gdy klikam zaloguj następnie myślę ,że da się to ominąć ale nie wpisuje w przegladarce link gry i jakąś opcje to komuniukat zaloguj się ponownie sesja wygasła
rad11
Gdzie masz komunikat ze sesja wygasla?
programistaarek
Gdy wypełniam dane w logowaniu klikam loguj i nic sie nie dzieje strona pusta tylko to co jest na głownej tzn zarejestruj się zaloguj się i regulamin w przeglądarce zamiast login.php wbisuję jakąś opcję w grze w moim porzypadku dałem sobie walki czyli battle.php i komunikat zaloguj się sesja wygasła
rad11
A ja nie wiem co ty masz w pliku battle.php. Rozmawiam o pliku loguj.php.
programistaarek
to samo się dzieje z każdym innym plikiem w grze training.php oraz dalej
to ja juz nie wiem o co chodzi a może błśd tkwi gdzieś indziej bo w pliku login.php łaczy sie z head.php i foot.php ale czy tam może być odpowiedz na problem ?
rad11
session_start() daj na samym poczatku w pliku login.php
programistaarek
  1. <?php
  2. include 'config.php';
  3. include("head.php");
  4. if (isset($_POST['ok'])) {
  5. $_POST['login'] = filter_var(trim($_POST['login']), FILTER_SANITIZE_STRING);
  6. $_POST['haslo'] = filter_var(trim($_POST['haslo']), FILTER_SANITIZE_STRING);
  7.  
  8. if (empty($_POST['login'])) {
  9. echo 'proszę wpisać login';
  10. } else if (empty($_POST['haslo'])) {
  11. echo 'proszę wpisać hasło';
  12. } else {
  13. $sol = '%$^&gfgfg5454';
  14. $haslo = sha1($_POST['haslo'] . $sol);
  15.  
  16. $spr = mysql_fetch_array(mysql_query("SELECT id FROM players WHERE login='" . $_POST['login'] . "' and haslo = '" . $haslo . "'"))or die(mysql_error());
  17. var_dump($spr);
  18. if (!empty($spr['id'])) {
  19. $_SESSION['ss'] = $spr['id'];
  20. $_SESSION['sss'] = $_POST['login'];
  21. # header('Location: training.php');
  22. exit('dziala');
  23. } else {
  24. echo 'błedne dane';
  25. }
  26. }
  27. }
  28.  
  29.  
  30. include("foot.php");
  31. ?>
  32. <center>
  33. <form action='login.php' method='POST'>
  34. Login:<br><input type='text' name='login'/><br>
  35. Hasło:<br><input type='password' name='haslo'/><br>
  36. <input type='submit' name='ok' value='zaloguj'/>
  37. </form>
  38. </center>

nadal nic ;///
rad11
a ob_start musi byc ? bo moim zdaniem nie....
programistaarek
usunąłem ob_start i nadal nic ;// hmm
rad11
to dodaj jeszcze na poczatku pliku error_reporting(E_ALL);
programistaarek
dodałem i wchodząc w logowanie an stronie pojawiło się takie coś
" Notice: A session had already been started - ignoring session_start() in /virtual/m/o/http://*********.pl/head.php on line 1 "
rad11
wykasuje wszystkie session_start z login.php
programistaarek
  1. <?php
  2. include 'config.php';
  3. include("head.php");
  4. if (isset($_POST['ok'])) {
  5. $_POST['login'] = filter_var(trim($_POST['login']), FILTER_SANITIZE_STRING);
  6. $_POST['haslo'] = filter_var(trim($_POST['haslo']), FILTER_SANITIZE_STRING);
  7.  
  8. if (empty($_POST['login'])) {
  9. echo 'proszę wpisać login';
  10. } else if (empty($_POST['haslo'])) {
  11. echo 'proszę wpisać hasło';
  12. } else {
  13. $sol = '%$^&gfgfg5454';
  14. $haslo = sha1($_POST['haslo'] . $sol);
  15.  
  16. $spr = mysql_fetch_array(mysql_query("SELECT id FROM players WHERE login='" . $_POST['login'] . "' and haslo = '" . $haslo . "'"))or die(mysql_error());
  17. var_dump($spr);
  18. if (!empty($spr['id'])) {
  19. $_SESSION['ss'] = $spr['id'];
  20. $_SESSION['sss'] = $_POST['login'];
  21. # header('Location: training.php');
  22. exit('dziala');
  23. } else {
  24. echo 'błedne dane';
  25. }
  26. }
  27. }
  28.  
  29.  
  30. include("foot.php");
  31. ?>
  32. <center>
  33. <form action='login.php' method='POST'>
  34. Login:<br><input type='text' name='login'/><br>
  35. Hasło:<br><input type='password' name='haslo'/><br>
  36. <input type='submit' name='ok' value='zaloguj'/>
  37. </form>
  38. </center>

te po srodku kodu SESSION też czy nie ? bo usunąłem session_start(); na początku i bład znikł z gry ale logowanie po wpisaniu danych dalej nie działa

dodam tyle ze na local servie przez xampa to działa mi wszystko tzn logowanie działa to ja juz nie wiem :/

Albo przerobić całkowicie przerobić plik login.php zauważyłem ze do bazy podczas rejestracji nie jest dodany email moze byc to przyczyną ?
rad11
Tak te session_start ze srodka tez. No jesli loginem jest email i email sie nie zapisuje to i tak nie zadziala Ci logowanie.
programistaarek
To mógłbyś mi dać poprawiony kod mój logowania ja juz odchodzę od zmysłów bo nie wiem co mam juz robić plik login.php nie jest uzależniony od rejestracji tzn tam sie tylk wpisuje login i hasło a te dane sa dodawane do bazy danych
com
napisz jeszcze raz jaki masz problem i wklej kod aktualny smile.gif bo z tych wcześniejszych postów ciężko wywnioskować
programistaarek
  1. <?php
  2. include 'config.php';
  3. include("head.php");
  4. if (isset($_POST['ok'])) {
  5. $_POST['login'] = filter_var(trim($_POST['login']), FILTER_SANITIZE_STRING);
  6. $_POST['haslo'] = filter_var(trim($_POST['haslo']), FILTER_SANITIZE_STRING);
  7.  
  8. if (empty($_POST['login'])) {
  9. echo 'proszę wpisać login';
  10. } else if (empty($_POST['haslo'])) {
  11. echo 'proszę wpisać hasło';
  12. } else {
  13. $sol = '%$^&gfgfg5454';
  14. $haslo = sha1($_POST['haslo'] . $sol);
  15.  
  16. $spr = mysql_fetch_array(mysql_query("SELECT id FROM players WHERE login='" . $_POST['login'] . "' and haslo = '" . $haslo . "'"));
  17. var_dump($spr);
  18. print_r($spr);
  19. if (!empty($spr['id'])) {
  20. $_SESSION['ss'] = $spr['id'];
  21. $_SESSION['sss'] = $_POST['login'];
  22. #header('Location: training.php');
  23. exit('dziala');
  24. } else {
  25. echo 'błedne dane';
  26. }
  27. }
  28. }
  29.  
  30.  
  31. include("foot.php");
  32. ?>
  33. <center>
  34. <form action='login.php' method='POST'>
  35. Login:<br><input type='text' name='login'/><br>
  36. Hasło:<br><input type='password' name='haslo'/><br>
  37. <input type='submit' name='ok' value='zaloguj'/>
  38. </form>
  39. </center>
to jest plik login.php po wpisaniu danych pisze tylko ze sa złe dane dane choć są one dobre usunąłem mysql_error(); na dodatek dodam ze podczas rejestrowania login i hasło do bazy danych sie dodaje ale email nie dodaje sie w ogole ale to nie moze miec nic wspólnego z logowaniem gdyż w logowaniu potrzebne sa dane z bazy tzn login i hasło a to jest w bazie danych .

dodam wszystko :
logowanie
  1. <?php
  2. include 'config.php';
  3. include("head.php");
  4. if (isset($_POST['ok'])) {
  5. $_POST['login'] = filter_var(trim($_POST['login']), FILTER_SANITIZE_STRING);
  6. $_POST['haslo'] = filter_var(trim($_POST['haslo']), FILTER_SANITIZE_STRING);
  7.  
  8. if (empty($_POST['login'])) {
  9. echo 'proszę wpisać login';
  10. } else if (empty($_POST['haslo'])) {
  11. echo 'proszę wpisać hasło';
  12. } else {
  13. $sol = '%$^&gfgfg5454';
  14. $haslo = sha1($_POST['haslo'] . $sol);
  15.  
  16. $spr = mysql_fetch_array(mysql_query("SELECT id FROM players WHERE login='" . $_POST['login'] . "' and haslo = '" . $haslo . "'"))or die(mysql_error());
  17. var_dump($spr);
  18. print_r($spr);
  19. if (!empty($spr['id'])) {
  20. $_SESSION['ss'] = $spr['id'];
  21. $_SESSION['sss'] = $_POST['login'];
  22. #header('Location: training.php');
  23. exit('dziala');
  24. } else {
  25. echo 'błedne dane';
  26. }
  27. }
  28. }
  29.  
  30.  
  31. include("foot.php");
  32. ?>
  33. <center>
  34. <form action='login.php' method='POST'>
  35. Login:<br><input type='text' name='login'/><br>
  36. Hasło:<br><input type='password' name='haslo'/><br>
  37. <input type='submit' name='ok' value='zaloguj'/>
  38. </form>
  39. </center>


rejestracja dodam jako ,że podczas niej dodaje do bazy tylko login i haslo a nie daje e-maila ale chcę powiedzieć iż przy logowaniu email jest nie wymagany tylko sam login i haslo
  1. <?php
  2. include 'config.php';
  3. include("head.php");
  4. if(isset($_POST['ok'])){
  5.  
  6. $_POST['login'] = filter_var(trim($_POST['login']), FILTER_SANITIZE_STRING);//filtrowanie
  7. $_POST['email'] = filter_var(trim($_POST['email']), FILTER_SANITIZE_STRING);
  8. $_POST['haslo'] = filter_var(trim($_POST['haslo']), FILTER_SANITIZE_STRING);
  9. $_POST['haslo2'] = filter_var(trim($_POST['haslo2']), FILTER_SANITIZE_STRING);
  10.  
  11.  
  12. if(empty($_POST['login'])) echo 'proszę wpisać login';
  13. elseif(empty($_POST['email'])) echo 'błąd';
  14. elseIF(empty($_POST['haslo'])) echo 'proszę wpisać hasło';
  15. elseIF(empty($_POST['haslo2'])) echo 'proszę wpisać hasło';
  16. elseif( (strlen($_POST['login']) < 5) and (strlen($_POST['login']) > 20)) echo "pole login może zawierać od 5 do 20 znaków!";
  17. elseif( (strlen($_POST['email']) < 15) and (strlen($_POST['email']) > 40)) echo "pole e-mail może zawierać od 5 do 30 znaków!";
  18. elseif( (strlen($_POST['haslo']) < 5) and (strlen($_POST['haslo']) > 20)) echo "pole haslo może zawierać od 5 do 20 znaków!";
  19. elseif( (strlen($_POST['haslo2']) < 5) and (strlen($_POST['haslo']) > 20)) echo "pole haslo może zawierać od 5 do 20 znaków!";
  20. elseif($_POST['haslo'] != $_POST['haslo2']) echo "podaj poprawne hasło!";
  21. elseif(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) echo "podaj poprawny adres mail!";
  22. else{
  23. $spr = mysql_fetch_array(mysql_query("SELECT id FROM players WHERE login='".$_POST['login']."' or mail = '".$_POST['email']."'"));
  24. if(!empty($spr['id'])) echo 'ta nazwa lub email sa juz w uzyciu';
  25. else {
  26. echo 'gratulacje rejestracja udana mozesz sie zalogowac';
  27. $sol = '%$^&gfgfg5454';
  28. $haslo = sha1( $_POST['haslo'] . $sol );
  29. mysql_query("insert into players set login='".$_POST['login']."',haslo='".$haslo."',email='".$_POST['email']."'")or die(mysql_error());
  30.  
  31. }
  32. }
  33. }
  34. include("foot.php");
  35. ?>
  36.  
  37.  
  38. <form action="signup.php" method="POST">
  39. <center>Wpisz swoj login<br><input type="text" name="login"/></br>
  40. wpisz haslo<br><input type="password" name="haslo"/></br>
  41. powtorz haslo<br><input type="password" name="haslo2"/></br>
  42. Podaj mail<br><input type="text" name="email"/></br>
  43. <br><input type="submit" name="ok" value="signup"/></br><center>
  44. </form>


to tyle juz googlowałem i nic ;/sam próbowałem to naprawić ,ale lipa więc może ktoś pomoże ?
com
co zwraca var_dump?

zrób var_dump($haslo) i sprawdź czy jest takie samo jak to z bazy
programistaarek
gdzie mam dodać var_dump do logowania ? jeśli tak to juz mi tak radzono wyżej i nic to nie dało wyszło ,że jest zgodne wszystko
//dodam ,że naprawiłem skrypt rejestracji już normalnie się e-mail dodaje do bazy danych teraz logowanie i myśle i nie wiem co jest nie tak

Rad11 mam już 15 wiadomości na dziś . A zatem na localhost też mi njie działa również sesja wygasła ;/
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.