Mam funkcje zarejestruj w 2 wersjach. Wersja 1 jest mniej zabezpieczona a wersja 2 bardziej. Problem jest taki że obie funkcje mają zarejestrować gracza po przez dodanie do bazy kilku rekordów. Przy wersji 1 wszystko jest ok, rejestruje, logowanie przebiega ok, a przy drugiej wersji rejestruje ale nie da się zalogować, serwer wyświetla

Kod
Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, [no address given] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.


wersja #1

  1. <?php
  2. function zarejestruj($login, $haslo, $p_haslo, $email, $kraj, $profesja, $token) {
  3.  
  4. $_kraj = array('poland' => "Polska", 'zsrr' => 'ZSRR', '3rzesza' => 'III Rzesza');
  5.  
  6. if($haslo==$p_haslo) {
  7. $expl = explode(" x ", $_SESSION['rej_token']);
  8. $wynik = $expl[0]*$expl[1];
  9. $time = time();
  10. if($wynik == $token) {
  11. if(!mysql_query("insert into users values('', '$login', '$haslo', '$email', '$_kraj[$kraj]', '$profesja', '15', '', '', '5000', '5000', '5000', '5000', '15000', '5000', '', '', '', '0', '0', '0', '1')"))
  12. wyswietl_pasek_error("Błąd #1");
  13. elseif(!mysql_query("insert into surowce values('$time', '$login')"))
  14. wyswietl_pasek_error("Błąd #2");
  15. elseif(!mysql_query("insert into punkty values('$time', '$login')"))
  16. wyswietl_pasek_error("Błąd #3");
  17. elseif(!mysql_query("insert into wiadomosci values('', '$login', 'System Wiadomości', 'Czołem żołnierzu, zapraszamy do gry!', 'Czołem żołnierzu, pragnę powitać Cię oraz ...', '1')"))
  18. wyswietl_pasek_error("Błąd #4");
  19. else
  20. wyswietl_pasek_ok("Zostałeś zarejestrowany!");
  21.  
  22. }else
  23. wyswietl_pasek_error("Podano błędny wynik.");
  24. } else
  25. wyswietl_pasek_error('Hasło nie zostało powtórzone dokładnie.');
  26.  
  27. }
  28. ?>


Wersja #2


  1. <?php
  2. function zarejestruj($login, $haslo, $p_haslo, $email, $kraj, $profesja, $token) {
  3.  
  4. $_kraj = array('poland' => "Polska", 'zsrr' => 'ZSRR', '3rzesza' => 'III Rzesza');
  5. $num_log = mysql_num_rows( mysql_query("select * from users where log='$login'") );
  6.  
  7. if($num_log == 0) {
  8. if($haslo==$p_haslo) {
  9. if($_SESSION['rej_token'] == $token) {
  10. if(!mysql_query("insert into users values('', '$login', '$haslo', '$email', '$_kraj[$kraj]', '$profesja', '15', '', '', '5000', '5000', '5000', '5000', '15000', '5000', '', '', '', '0', '0', '0', '1')"))
  11. wyswietl_pasek_error("Błąd #1");
  12. elseif(!mysql_query("insert into surowce values('$time', '$login')"))
  13. wyswietl_pasek_error("Błąd #2");
  14. elseif(!mysql_query("insert into punkty values('$time', '$login')"))
  15. wyswietl_pasek_error("Błąd #3");
  16. elseif(!mysql_query("insert into wiadomosci values('', '$login', 'System Wiadomości', 'Czołem żołnierzu, zapraszamy do gry!', 'Czołem żołnierzu, pragnę powitać Cię oraz pogratulować Ci dołączenia do naszego 
    grona. Mam dla Ciebie kilka informacji i podpowiedzi: pierwsza to taka, że wraz z
     zarejestrowaniem dostałeś pieniądze w gotówce oraz na koncie a także surowce, po
    staraj się działać z rozsądkiem aby nie przegrać wszystkiego w bardzo szybkim cza
    sie; druga wiadomość to taka że jeśli zabraknie Ci pieniędzy, możesz napisać do j
    akiegoś z graczy Prywatną Wiadomość w której poprosisz o przelanie na Twoje konto
     danej kwoty, staraj się być miły i życzliwy, zapewnij że oddasz pieniądze w jak 
    najszybszym czasie, wzbudź zaufanie; sposobem na zarabianie pieniędzy są Walki, k
    tóre możesz odbywać co 2 minuty, po każdej walce otrzymujesz punkty doświadczenia
     oraz pieniądze, w każdej z nich giną żołnierze, choć nie zawsze; punkty doświadc
    zenia przy pewnych zebranych ilościach powiększają Twój poziom; w razie problemów
     i pytań pisz do Zespołu, czytając wcześniej FAQ; Powodzenia żołnierzu, pamiętaj 
    początki zawsze są trudne!', '1')"
    ))
  17. wyswietl_pasek_error("Błąd #4");
  18. else
  19. wyswietl_pasek_ok("Zostałeś zarejestrowany!");
  20.  
  21. unset($_SESSION['rej_token']);
  22.  
  23. }else
  24. wyswietl_pasek_error("Żle przepisano kod.");
  25. } else
  26. wyswietl_pasek_error('Hasło nie zostało powtórzone dokładnie.');
  27. } else
  28. wyswietl_pasek_error('Istnieje już taki gracz.');
  29.  
  30. }
  31. ?>


HELP