Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mintAjax]Sprawdzanie uzytkownika
Forum PHP.pl > Forum > Przedszkole
marcio
Witam obsluga formularzy za pomoca mintAjax do banal jednak mam problem bo robie to dopiero 2 raz mam taka funkcje:

  1. <?php
  2. <script type="text/javascript" src="../cms/mintAjax.js"></script>
  3.  
  4. function check_login() {
  5.    var req = mint.Request();
  6.    req.AddParam("login", $("login").value);
  7.    req.Send("check.php", "logins");
  8. }
  9. </script>
  10.  
  11. <input type="text" name="login" onBlur="error_input('login', 4, '<p>Login musi zawierac przynajmniej 4 znaki.</p>', 'login'); check_login();" value="Login" style="background-color:#FFFFFF; color:#000000; border: 1px solid #e0e0e0; height:15px;" onKeyUp="java script:blokujPoleSubmit()"> <div id="login"></div><div id="logins"></div>
  12. ?>

Tak odbieram:
  1. <?php
  2. if(!empty($_POST['login'])) echo('ok'); else echo('Zle');
  3. ?>


Jednak pokazuje mi zawsze ZLE nawet gdy nie jest pusty a jak chce sprawdzic czy taki login juz istnieje nic sie nie dzieje oto kod:
  1. <?php
  2. $sql_pass = file("./system/config.ini");
  3. global $sql_pass;
  4.  
  5. mysql_connect(trim($sql_pass[0]), trim($sql_pass[1]), trim($sql_pass[2])) or die('Brak połączenia z serwerem MySQL.');
  6. mysql_select_db(trim($sql_pass[3])) or die('Błąd wyboru bazy danych.');
  7.  
  8. if(!empty($_POST['login'])) {
  9.  
  10. $sql = mysql_query('select id from user_n where login = "'.mysql_real_escape_string($_POST['login']).'"');
  11. if(mysql_num_rows($sql) > 0) echo('Przykro mi ale login: '.$_POST['login'].' jest juz zajety.'); else echo('Ok');
  12.  
  13. }
  14.  
  15. ?>

Co robie zle
nospor
domyslnie mintAjax wysyla getem a nie postem.
phpion
Chwila lektury linku:
http://mintajax.pl/Przewodnik/Obiekt-Request/
i przykład "Dodawanie parametrów":
  1. <?php
  2. echo htmlentities(strtoupper($_GET['msg']));
  3. ?>

Co z tego wynika? Że dane przesyłane są metodą GET, a nie POST.

// Edit:
Aj, ~nospor okazał się szybszy smile.gif
marcio
No ok panowie jednak tam jest "opisane" jak zmienic metode POST/GET w metodzie SendFrom() a ja nie wysylam calego forma lecz tylko jedno pole i nie rozumiem zabardzo jak ustawic sobie ten POST.
nospor
czy ty nie przesadzasz?
http://mintajax.pl/Dokumentacja/Request/
jak wol stoi jak ustawic sposob wysylania po polsku
marcio
Albo jestem slepy albo nie wiem dla metody Send nie widze takiego parametru widze tylko dla SendForm c+
Cytat
  • SendForm(form, [url, method]) - wysyła zapytanie AJAX do serwera zawierające wartości wszystkich pól danego formularza
    • form - identyfikator formularza lub element formularza
    • url - adres, gdzie wysłane ma zostać zapytanie (jeśli ten argument zostanie pominięty, pobrana zostanie wartość atrybutu action z elementu formularza)
    • method - metoda wysłania zapytania (jeśli ten argument zostanie pominięty, pobrana zostanie wartość atrybutu method z elementu formularza lub w przypadku jego braku zapytanie zostanie wysłane metodą POST)
nospor
A cos ty sie tego sendForm uczepil?
Cytat
responseText - odpowiedź z serwera jako tekst
responseXML - odpowiedź z serwera w formacie XML
responseJSON - odpowiedź z serwera w formacie JSON
getJSON - pobranie odpowiedzi z serwera w formacie JSON (wartość domyślna: false)
async - asynchroniczne wysyłanie zapytań (wartość domyślna: true)
method - metoda wysyłania zapytań ("GET", "POST" lub "HEAD") (wartość domyślna: "GET")
......
marcio
Ok ustawilem samo !empty() pokazywalo wszystko good to juz nie:
  1. <?php
  2.  
  3. //if(!empty($_POST['login'])) echo('ok'); else echo('Zle');
  4.  
  5. mysql_connect('', '', '') or die('Brak połączenia z serwerem MySQL.');
  6. mysql_select_db('') or die('Błąd wyboru bazy danych.');
  7.  
  8. if(!empty($_POST['login'])) {
  9.  
  10. $sql = mysql_query('select login from user_n where login = "'.mysql_real_escape_string($_POST['login']).'"');
  11. if(mysql_num_rows($sql) == 1) echo('Przykro mi ale login: '.$_POST['login'].' jest juz zajety.');
  12.  
  13. }
  14.  
  15. ?>


Co robie zle biggrin.gif
nospor
ale ustawiles by wysylal metodą post?
marcio
Nom jak mnie okrzyczales to wkoncu do mnie dotarlo:
Kod
function check_login() {
    var req = mint.Request();
    req.Set("method", "post");
    req.AddParam("login", $("login").value);
    req.Send("check.php", "logins");
}
nospor
w dokumentacji jest POST a u ciebie post
marcio
Hm.. dziwne dalej nic tak jakby bylo zle zapytanie do bazy
nospor
kurcze, chlopie, to sprawdź co masz źle !
sprawdz czy masz login:
print_r($_POST)

sprawdz jaki masz blad zapytania : mysql_error().

Kurcze rusz te cztery litery i wlacz odrobine samodzielnosci
webasek
Spróbuj tak:

Kod
function check_login() {
    var req = mint.Request();
    req.Set("method", "POST");
    req.AddParam("login", document.form[0].login.value);
    req.Send("check.php", "logins");
}


albo tak:

Kod
function check_login() {
    var req = mint.Request();
    req.Send("check.php?"+document.form[0].login.value, "logins");
}


tyle tylko, że wtedy masz geta
marcio
Tak jak pokazales nie dziala 1 sposob tak tez nie:
Kod
req.AddParam("login", document.form.reg.login.value);

Zmienna login jest zawsze undefined nie wiem czemu :/
nospor
przeciez u ciebie input z loginem nie jest w formularzu wiec nie mozesz sie poprzez form odwolywac.
Wczesniej sie odwolywales przez id , ale dla inputa nie nadales id tylko samo name. Nadaj mu te id i odwoluj sie jak wczesniej
marcio
Nie rozumiem mam taki formularz:
  1. <?php
  2. $zawartosc = '<form method="post" action="'.$_SERVER['PHP_SELF'].'" name="reg">
  3. <table align="center">
  4. <tr>
  5. <td style="width:100px;color:#000000;text-align:left">Login</td>
  6. <td>
  7. <input type="text" name="login" onBlur="error_input('login', 4, '<p>Login musi zawierac przynajmniej 4 znaki.</p>', 'login'); check_login();" value="Login" style="background-color:#FFFFFF; color:#000000; border: 1px solid #e0e0e0; height:15px;" onKeyUp="java script:blokujPoleSubmit()"> <div id="login"></div><div id="logins"></div>
  8. </td>
  9. </tr>
  10. <tr>
  11. <td style="width:140px;color:#000000;text-align:left">Haslo</td>
  12. <td>
  13. <input type="password" name="pass" onBlur="error_input('password', 5, '<p>Haslo musi zawierac przynajmniej 5 znakow.</p>', 'pass');" style="background-color:#FFFFFF; color:#000000; border: 1px solid #e0e0e0; height:15px;" onKeyUp="java script:blokujPoleSubmit()"> <div id="password"></div>
  14. </td></tr>
  15. <tr>
  16. <td style="width:140px;color:#000000;text-align:left">Wiek</td>
  17. <td>
  18. <input type="text" name="wiek" value="wiek" style="background-color:#FFFFFF; color:#000000; border: 1px solid #e0e0e0; height:15px;">
  19. </td></tr>
  20. <tr>
  21. <td style="width:140px;color:#000000;text-align:left">Email</td>
  22. <td>
  23. <input type="text" name="email" onBlur="error_input('mail', 1, '<p>Prosze podac email.</p>', 'email');" value="email" style="background-color:##FFFFFF; color:#000000; border: 1px solid #e0e0e0; height:15px;"> <div id="mail"></div>
  24. </td></tr>
  25. <tr>
  26. <td style="width:140px;color:#000000;text-align:left">Numer gg</td>
  27. <td>
  28. <input type="text" name="gg" value="gg" style="background-color:#FFFFFF; color:#000000; border: 1px solid #e0e0e0; height:15px;">
  29. </tr></td>
  30. <tr>
  31. <td style="width:140px;color:#000000;text-align:left">WWW</td>
  32. <td>
  33. <input type="text" name="www" value="www" style="background-color:#FFFFFF; color:#000000; border: 1px solid #e0e0e0; height:15px;">
  34. </td></tr>
  35. <tr>
  36. <td style="width:140px;color:#000000;text-align:center"><img src="./system/token.php"></td>
  37. <td>
  38. <input type="text" name="kod" onBlur="error_input('token', 6, '<p>Prosze przepisac token.</p>', 'kod');" value="Token" style="background-color:#FFFFFF; color:#000000; border: 1px solid #e0e0e0; height:15px;" onKeyUp="java script:blokujPoleSubmit()"> <input type="button" onClick="java script: location.reload();" value="Zmien" style="background-color:#FFFFFF; color:#bdbdbd; border: 1px solid #bdbdbd; height:17px; width:80px;"> <div id="token"></div>
  39. </td></tr>
  40. <tr>
  41. <td style="width:140px;"></td>
  42. <td align="center">
  43. <input type="submit" name="dodaj" value="Rejestruj" style="background-color:#FFFFFF; color:#bdbdbd; border: 1px solid #bdbdbd; height:18px; width:140px;" disabled="disabled"></td>
  44. </tr>
  45. </table>
  46. </form>';
  47. ?>
nospor
we wczesniejszym kodzie nie bylo widac ze masz formularz.
Nadaj to id dla pola login i w kodzie daj:
Kod
req.AddParam("login", document.getElementById('login').value);
marcio
Ok wielkie dzieki teraz dziala biggrin.gif w sumie moglem zostawic bez id i dac getElementByName() jak sie nie myle?

Ale dzieki Nospor jak zawsze twoje odpowiedzi sa super musze tylko poznac bardziej js i mintAjax i poruszac sie w ich dokumentacjach biggrin.gif

P.S a dlaczego za pomoca $("login").value nie dzialalo?
nospor
Cytat
P.S a dlaczego za pomoca $("login").value nie dzialalo?
bo nie miales nadanego id dla pola. Teraz jak nadales to powinno zadzialac

Cytat
sumie moglem zostawic bez id i dac getElementByName() jak sie nie myle
Mylisz, sie nie ma czegos takiego.
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.