Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][JavaScript][AJAX]Sprawdzanie formularza
Forum PHP.pl > Forum > Przedszkole
Johnas
Witam mam taki kod. Wszystko działa z wyjątkiem pokazywania czy login jest w bazie.
[JAVASCRIPT] pobierz, plaintext
  1. <script>
  2. function sprawdz_formularz()
  3. {
  4. // zmienna przechowujaca komunikaty bledow
  5. var bledy = '';
  6. // przypisanie obiektu formularza do zmiennej
  7. var f = document.forms['register-form'];
  8.  
  9. // sprawdzenie czy login został wpisany
  10. if (f.login.value == '')
  11. {
  12. bledy += '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>Musisz wpisać login!<br>';
  13. } else {
  14. $.ajax({
  15. type: "POST",
  16. url: "check_login.php",
  17. data: "username="+ f.login.value,
  18. success: function(msg){
  19. $("#status").ajaxComplete(function(event, request){
  20. if(msg == 'OK')
  21. {
  22. bledy += "Login Dostepny";
  23. }
  24. else
  25. {
  26. bledy += "Login Zajety";
  27. }
  28. });
  29. }
  30. });
  31. }
  32. // sprawdzenie czy hasło zostało wpisane
  33. if (f.pass.value == '')
  34. bledy += '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>Musisz wpisać hasło!<br>';
  35. //sprawdzanie czy hasła są podobne
  36. if (f.pass.value != f.repass.value)
  37. bledy += '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>Hasła nie są identyczne!<br>';
  38. //sprawdzanie czy email został wpisany
  39. if (f.mail.value == '')
  40. bledy += '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>Musisz wpisać adres E-mail!<br>';
  41. //Sprawdzanie czy adresy email są ze sobą zgodne!
  42. if (f.mail.value != f.remail.value)
  43. bledy += '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>Podane adresy email nie są ze sobą zgodne!<br>';
  44.  
  45. // sprawdzenie czy byly bledy
  46. if (bledy == '')
  47. document.getElementById('register-form').submit();
  48. else
  49. {
  50. return pokaz_bledy(bledy);
  51.  
  52. }
  53. }
  54.  
  55.  
  56. function pokaz_bledy(bledy)
  57. {
  58. var tresc = '';
  59. tresc += '<div class="ui-widget"><div class="ui-state-error ui-corner-all" style="padding: 0 .7em;"><br><p>';
  60. tresc += bledy;
  61. tresc += "</p></div></div>";
  62. document.getElementById('myText').innerHTML = tresc;
  63. return false;
  64. }
  65. </script>
[JAVASCRIPT] pobierz, plaintext


Błędu tam nie widzę, ale może coś przeoczyłem gdyż ja dopiero początkujący
Necsord
  1. $.ajax({
  2. type:"POST",
  3. url:"check_login.php",
  4. data:"username=" + f.login.value,
  5. success:function (msg) {
  6. if (msg == 'OK') {
  7. bledy += "Login Dostepny";
  8. }
  9. else {
  10. bledy += "Login Zajety";
  11. }
  12. }
  13. });

Pierwsze co rzuciło mi sie w oczy. Przy okazji to masz tez takie parametry $.ajax jak complete czy error działające na tej samej zasadzie co success. Sprawdź także konsole javascript'u.
Johnas
faktycznie to działa ale jak zrobie skrypt fake... czyli kod wygląda tak:
[JAVASCRIPT] pobierz, plaintext
  1. function sprawdz_formularz()
  2. {
  3. // zmienna przechowujaca komunikaty bledow
  4. var bledy = '';
  5. var rbg = 'ogar';
  6. // przypisanie obiektu formularza do zmiennej
  7. var f = document.forms['register-form'];
  8. //sprawdzanie formatu adresu email
  9. var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
  10. var AdresEmail = f.mail.value;
  11. var Wynik = AdresEmail.match(reg);
  12. // sprawdzenie czy login został wpisany
  13. if (f.login.value == '')
  14. {
  15. bledy += '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>Musisz wpisać login!<br>';
  16. } else {
  17. $.ajax({
  18. type:"POST",
  19. url:"function/check_login.php",
  20. data:"username=" + f.login.value,
  21. success:function (msg) {
  22. if (msg == 'OK') {
  23. bledy += "";
  24. }
  25. else {
  26. bledy += '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>Login <b>'+f.login.value+'</b> jest w użyciu. Prosimy wymyśleć inny.<br>';
  27. }
  28. }
  29. });
  30. }
  31. // sprawdzenie czy hasło zostało wpisane
  32. if (f.pass.value == '')
  33. bledy += '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>Musisz wpisać hasło!<br>';
  34. //sprawdzanie czy hasła są podobne
  35. if (f.pass.value != f.repass.value)
  36. bledy += '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>Hasła nie są identyczne!<br>';
  37. //sprawdzanie czy email został wpisany
  38. if (AdresEmail == '') {
  39. bledy += '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>Musisz wpisać adres E-mail!<br>';
  40. } else if (Wynik == null) {
  41. bledy += '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>Niepoprawny format adresu E-mail!<br>';
  42. } else if (AdresEmail != f.remail.value)
  43. {
  44. //Sprawdzanie czy adresy email są ze sobą zgodne!
  45. bledy += '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>Podane adresy email nie są ze sobą zgodne!<br>';
  46. } else {
  47. $.ajax({
  48. type: "POST",
  49. url: "function/check_mail.php",
  50. data: "mail="+ AdresEmail,
  51. success: function (rquest) {
  52. if (rquest == 'OK') {
  53. bledy += "";
  54. }
  55. else {
  56. bledy += '<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>E-mail '+AdresEmail+' jest już uzywany. Jeżeli zapomnialeś hasła kliknij <a href="memory.php">Tutaj</a> aby wygenerować nowe hasło.<br>';
  57. }
  58. }
  59.  
  60. });
  61. }
  62. $.ajax({
  63. type: "POST",
  64. url: "function/rebug.php",
  65. data: "xavier="+ rbg,
  66. success: function(rubg){
  67. $("#mail").ajaxComplete(function(event3, request3){
  68. if(rubg == 'OK')
  69. {
  70. pokaz_bledy(bledy);
  71. }
  72. });
  73. }
  74. });
  75. }
[JAVASCRIPT] pobierz, plaintext


Na końcu dodałem:

[JAVASCRIPT] pobierz, plaintext
  1. $.ajax({
  2. type: "POST",
  3. url: "function/rebug.php",
  4. data: "xavier="+ rbg,
  5. success: function(rubg){
  6. $("#mail").ajaxComplete(function(event3, request3){
  7. if(rubg == 'OK')
  8. {
  9. pokaz_bledy(bledy);
  10. }
  11. });
  12. }
  13. });
  14. }
[JAVASCRIPT] pobierz, plaintext

gdzie plik rebug.php wyglada tak:
  1. <?php
  2.  
  3. if(isset ($_POST['xavier']))
  4. {
  5. $xavi = $_POST['xavier'];
  6. if($xavi == 'ogar')
  7. {
  8. echo 'OK';
  9. }
  10. }
  11. ?>


Za pomoc dziękuje. Temat do zamknięcia.
MaciekDZN
Witam, potrzebuje kodu pliku "function/check_login.php" gdyż nie mogę podstawić tego pod swój kod... pozdrawiam smile.gif
viking
A pomyśleć to już ciężko? Kod tej funkcji jest uzależniony od twojego backendu.
MaciekDZN
czyli:
  1. <?php
  2. include("../config.php"); //polaczenie z baza danych
  3.  
  4. $rezultat = mysql_query("SELECT * FROM t_user where login='$_POST[username]'");
  5. $status = mysql_num_rows($rezultat);
  6. if($status==0)
  7. echo "0";
  8. else
  9. echo "1";
  10.  
  11.  
  12. ?>


takie coś nie działa, jakby nie sprawdza...
ps. myślę i jak już nie wiem jak coś zrobić to pytam wink.gif
viking
Po pierwsze to funkcje mysql są przestarzałe, Po drugie POST powinien być zabezpieczony. Po trzecie mysql_num_rows zwraca:
Cytat
The number of rows in a result set on success or FALSE on failure.

Po czwarte. Zobacz co wysyłasz i co dostajesz w odpowiedzi w konsoli przeglądarki.
MaciekDZN
Szybko ucze sie na przykladach, wolno jak musze cos rozkminiac bo ktos chce mnie uczyc swoim sposobem...

Jak możesz to podaj gotowe rozwiązanie - ja przeanalizuje Twoje spostrzeżenia i oboje bedziemy szczesliwi smile.gif
viking
Jeśli szukasz gotowca bez wkładu własnego to moje spostrzeżenia są płatne. Wtedy owszem, oboje będziemy szczęśliwi. A ten wykres co ma symbolizować?
MaciekDZN
Jak chcesz wiedzieć co ten wykres oznacza to moje spostrzeżenia też są płatne...

a symbolizuje on proporcjonalnie na kiedy potrzebuje tego kodu - a patrząc na wykres potrzebuje go na wczoraj smile.gif

więc zmieniłem 1/0 na success i false:
Kod
    if(server_response == false)
    {
    $("#status").html(' <font color="Green"> Available </font>  ');
            document.getElementById("login2").innerHTML = "<?echo '<font color=green>Login poprawny</font>';?>";
            document.getElementById("zarejestruj").disabled = false;    
    }  
    else  if(server_response == success)//if it returns "1"
    {  
     $("#status").html(' <font color="red">Not Available </font>');
            document.getElementById("login2").innerHTML = "<?echo '<font color=trf>Login zajęty</font>';?>";
            document.getElementById("zarejestruj").disabled = false;
     }


ale dalej nie działa...

mam cos takiego:

dlaczego nie dziala?
test.php
  1. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  2. <script language="text/javascript">
  3. $(document).ready(function(){
  4. $("fieldset input[name=login]").change(function(){
  5. var login = $("fieldset input[name=login]").val();//Get the value in the username textbox
  6. if(login.length > 3){
  7. $(".status").html('&nbsp;Checking availability...');
  8. $.ajax({
  9. type: "POST",
  10. url: "../post/login.php", //file name
  11. data: "login="+ login, //data
  12. success: function(data){
  13. console.log("server_response: "+data);
  14. if(data == '0'){
  15. $(".status").html('<font color="Green"> Available </font>');
  16. } else if(data == '1'){
  17. $(".status").html('<font color="red">Not Available </font>');
  18. }
  19. }
  20. });
  21. } else {
  22. $(".status").html('<font color="#cc0000">login too short</font>');
  23. }
  24. return false;
  25. });
  26. });
  27. </script>
  28. <?
  29. //okieno do rejestracji id='dialog'
  30. echo "<form name='rejestracja' method='post' action='../post/login.php'>
  31. Email: <input type='text' name='email' id='email'><br />
  32. Haslo: <input type='password' name='haslo'><br />";
  33. echo "Login: <input type='text' name='login' id='login'><br />";
  34. echo "<font id='status' name='status'></font><br />";
  35. echo "<input id='zarejestruj' type='submit'></form>
  36. ";
  37. echo "";
  38. ?>


i plik login.php:
  1. <?php
  2. $localhost = "localhost";
  3. $login = "xxx";
  4. $pass = "xxx";
  5. $db_name = "xxx";
  6. $sql = mysqli_connect($localhost,$login,$pass,$db_name);
  7.  
  8.  
  9. mysqli_query($sql,'SET NAMES utf8');
  10. mysqli_query($sql,'SET CHARACTER_SET utf8_unicode_ci');
  11.  
  12. $username = $_POST['login'];
  13.  
  14. $q = mysqli_query($sql, "SELECT * FROM t_user WHERE login='$username'");
  15. if( $q && $q->num_rows ){
  16. echo '1';
  17. } else {
  18. echo '0';
  19. }
  20. ?>



poradziłem sobie - dzięki przedszkolakom za pomoc - straciłem na waszej pomocy jakieś 3 godziny czyli 3 godziny mniej wiedzy dzięki wam tongue.gif pozdrawiam tych co potrafią odpowiedzieć jednym słowem i tych co myślą podobnie wink.gif
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.