Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][SQL][PHP]logowanie php sql jquery
Forum PHP.pl > Forum > Przedszkole
arogant
Witam. Połączyłem 2 skrypty aby otrzymać logowanie bez przeładowania i z komunikatami o błędzie, ale nie działa... Jakby ktoś mógłby mi pomóc to byłbym bardzo wdzięczny...

logowanie.php
  1. <div class="container"><center>
  2. <div id="result"></div>
  3. <table id="logowanie" cellpadding="0" cellspacing="0" width="180">
  4.  
  5. <tr><td><br></td></tr>
  6. <tr><td width="50">Login:</td><td><input type="text" name="login" maxlength="32"></td></tr>
  7. <tr><td width="50">Hasło:</td><td><input type="password" name="haslo" maxlength="32"></td></tr>
  8. <tr><td align="center" colspan="2"><button class="submit_btn" id="submit_btn">Zaloguj</button><br></td></tr>
  9.  
  10. </table>
  11. </form></center>
  12.  
  13. </div>
  14.  
  15. </div>
  16. <div class="cisti"></div>
  17.  
  18. <div id="omot_deo3">
  19.  
  20. </div>
  21.  
  22.  
  23. </div>
  24. <div id="footer" class="opacity">
  25. <?php include("stopka.php"); ?>
  26. </div>
  27. <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
  28. <script type="text/javascript">
  29. $(document).ready(function() {
  30. $("#submit_btn").click(function() {
  31. //Pobieramy dane
  32. var login = $('input[name=login]').val();
  33. var haslo = $('input[name=haslo]').val();
  34.  
  35. //Prosta walidacja (kolorujemy na czerwono pole jeśli jest puste
  36. var proceed = true;
  37. if(login==""){
  38. $('input[name=login]').css('border-color','red');
  39. proceed = false;
  40. }
  41. if(haslo==""){
  42. $('input[name=haslo]').css('border-color','red');
  43. proceed = false;
  44. }
  45.  
  46. //wszystko w porządku idziemy dalej
  47. if(proceed)
  48. {
  49. //Dane do wysłania
  50. post_data = {'login':login, 'haslo':haslo};
  51.  
  52. //Przesłanie danych poprzez AJAX
  53. $.post('login.php', post_data, function(response){
  54.  
  55. //wczytanie danych zwrotnych JSON
  56. if(response.type == 'error')
  57. {
  58. output = '<div class="error">'+response.text+'</div>';
  59. }else{
  60. output = '<div class="success">'+response.text+'</div>';
  61.  
  62. //resetujemy wszystkie wartości
  63. $('#logowanie input').val('');
  64. }
  65.  
  66. $("#result").hide().html(output).slideDown();
  67. }, 'json');
  68.  
  69. }
  70. });
  71.  
  72. //resetujemy kolorowanie po zaczęciu pisania
  73. $("#logowanie input").keyup(function() {
  74. $("#logowanie input").css('border-color','');
  75. $("#result").slideUp();
  76. });
  77.  
  78. });
  79. </script>


a tutaj plik login.php
  1. <?php
  2. if($_POST)
  3. $login = $_POST['login'];
  4. $haslo = $_POST['haslo'];
  5. $haslo = addslashes($haslo);
  6. $login = addslashes($login);
  7. $login = htmlspecialchars($login);
  8. {
  9.  
  10. //Sprawdzamy czy jest to rządanie Ajax, jeśli nie..
  11. if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {
  12.  
  13. //Kończymy skrypt wysyłając dane JSON
  14. $output = json_encode(
  15. 'type'=>'error',
  16. 'text' => 'Rządanie musi przejść przez AJAX'
  17. ));
  18.  
  19. die($output);
  20. }
  21.  
  22. //Sprawdzamy czy wszystkie pola zostały wysłane. kończymy skrypt jeśli nie (tutaj dodawaj więcej pól, które są wymagane)
  23. if(!isset($login) || !isset($haslo))
  24. {
  25. $output = json_encode(array('type'=>'error', 'text' => 'POLA SĄ PUSTE!'));
  26. die($output);
  27. }
  28.  
  29. //Pobieramy dane z formularza
  30. //$login = filter_var($login, FILTER_SANITIZE_STRING);
  31. //$haslo = filter_var($haslo, FILTER_SANITIZE_EMAIL);
  32.  
  33. //Dodatkowa validacja PHP (tylko dla pól wymaganych)
  34. if(strlen($login)<6) // Wywala błąd jeśli imię ma mniej niż 4 znaki
  35. {
  36. $output = json_encode(array('type'=>'error', 'text' => 'Login jest za krótki!'));
  37. die($output);
  38. }
  39. if(strlen($haslo)<6) // Wywala błąd jeśli imię ma mniej niż 4 znaki
  40. {
  41. $output = json_encode(array('type'=>'error', 'text' => 'Haslo jest za krótkie!'));
  42. die($output);
  43. }
  44.  
  45. $istnick = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM `uzytkownicy` WHERE `nick` = '$login' AND `haslo` = '$haslo'")); // sprawdzenie czy istnieje uzytkownik o takim nicku i hasle
  46. if ($istnick[0] == 0) {
  47. echo 'Logowanie nieudane. Sprawdź pisownię nicku oraz hasła.';
  48. } else {
  49.  
  50. $_SESSION['nick'] = $login;
  51. $_SESSION['haslo'] = $haslo;
  52.  
  53. header("Location: indeks.php");
  54. }
  55. ?>


Ktoś może powiedzieć mi co tutaj jest źle albo poprawić ten kod i powiedzieć co było źle?

Z góry dziękuje pozdrawiam smile.gif

P.S. Tutaj nic nie działa... ani nie koloruje pól ani nie daje błędów...
nospor
PAtrzyles co ci zwraca AJAX?
arogant
Nie.. A jak? W konsoli przeglądarki?
nospor
Np. w firebug w FF, albo w konsole Chrome (F12)
arogant
  1. http://multifps.pl/ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js Failed to load resource: the server responded with a status of 404 (Not Found)
  2. [url="http://multifps.pl/ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"]http://multifps.pl/ajax.googleapis.com/aja...query-ui.min.js[/url] Failed to load resource: the server responded with a status of 404 (Not Found)
  3. skripte.js:12 Uncaught ReferenceError: $ is not defined
  4. jquery.js:2 Uncaught TypeError: Cannot read property 'style' of undefined
  5. jNotify.jquery.js:248 Uncaught ReferenceError: jQuery is not defined
  6. jquery.nivo.slider.pack.js:10 Uncaught ReferenceError: jQuery is not defined


nic związanego z moim skryptem...

ale zauważyłem, że jest zły adres plików jQuery.. Zaraz zmienie i zobacze czy pomogło..

[EDIT]
ok zmieniłem ścieżki plików i jest mniej tych błędów...:
  1. jquery.js:2 Uncaught TypeError: Cannot read property 'style' of undefined


tylko to jest a dalej nie działa..
nospor
Nadal nie powiedziales mi co zwraca AJAX. To co pokazales to bledy konsoli. Ja sie pytam co zwraca żądanie AJAX. Powinienies widziec w konsoli, ze takie żądanie wyszło i co zawiera
arogant
W konsoli nic więcej nie ma..
nospor
Ja mowie o konsoli FireBug w Firefox. Jesli ty dzialasz na CHrome to musisz wejsc w zakladke NETWORK i tam beda AJAXy.

Jesli w zadnej z zakladek nie masz AJAX to znaczy ze ci w ogole ajax sie nie odpala.
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.