funkcja sprawdzająca znaki w formularzu
-
- Zaawansowany
- Posty: 223
- Dołączył(a): niedziela, 11 marca 2012, 03:08
- Lokalizacja: Poland
- Contact:
funkcja sprawdzająca znaki w formularzu
Opłacało by się napisać własną funkcję, która by sprawdzała wpisaną zawartość w formularzu? Mamy np. 2 inputy, jeden LOGIN i drugi PASSWORD, i chciałbym aby w jednym i w drugim można było wpisać tylko litery i cyfry. Czy koniecznie trzeba tutaj już użyć JSa? A jak Pan to stosuje u siebie na videokurs.pl?
Zawsze walcz do końca i nigdy się nie poddawaj!
Re: funkcja sprawdzająca znaki w formularzu
Najlepiej napisać pattern przy pomocy regexp w javascript (od strony przeglądarki) oraz oczywiście potem od strony php w razie gdyby dane były znaczące.
Można skorzystać z :
http://docs.jquery.com/Plugins/Validation
Można skorzystać z :
http://docs.jquery.com/Plugins/Validation
-
- Zaawansowany
- Posty: 223
- Dołączył(a): niedziela, 11 marca 2012, 03:08
- Lokalizacja: Poland
- Contact:
Re: funkcja sprawdzająca znaki w formularzu
Jak na razie omijam JSa bo nie wykupiłem kursu, i chcę to zrobić za pomocą czystego PHP. Generalnie każdy input jest sprawdzany po kolei, coś w tym stylu, i oczywiście na końcu ich są ELSY, lub ELSE IFY które sprawdzają kolejne warunki w innym wypadku, dzięki czemu w wypełnianiu formularzu mam komunikaty pod przyciskiem REJESTRACJA:
if(strlen($_POST['reg_login']) > 2)
Najgłębiej jest strlen($_POST['reg_login']) > 2 i tam właśnie są zapytania do bazy itd. itp. Może to nie jest najlepsza metoda jaką robię bo JSem pewnie odciążyłbym serwer, ale kilkanaście zapytań dla serwera to chyba wielkiej różnicy nie zrobi.
Tak jak widać sprawdzam długości znaków, żeby były poprawne. Mam jeden problemik, chciałbym aby nie można było wpisać innych znaków niż cyfry i litery do wszystkich inputów oprócz inputa['email] gdzie wchodzi @ i KROPKA [.] . Używać funkcji ereg, eregi jest zdeprecjonowane i nie wiem czy są jakieś inne funkcje w php, które pomogły mi to zrobić. Czy napisać jakąś wielgachną funkcję z tablicą możliwych znaków, które na wejściu by sprawdzała podany ciąg z POSTA?
Code: Zaznacz cały
if(((strlen($_POST['name']) > 2) && strlen($_POST['surname']) > 2))
{
if($_POST['email'] == $_POST['repeat_email'] && strlen($_POST['email']) > 8)
{
if($_POST['reg_password'] == $_POST['repeat_reg_password'] && strlen($_POST['reg_password']) > 5)
Najgłębiej jest strlen($_POST['reg_login']) > 2 i tam właśnie są zapytania do bazy itd. itp. Może to nie jest najlepsza metoda jaką robię bo JSem pewnie odciążyłbym serwer, ale kilkanaście zapytań dla serwera to chyba wielkiej różnicy nie zrobi.
Tak jak widać sprawdzam długości znaków, żeby były poprawne. Mam jeden problemik, chciałbym aby nie można było wpisać innych znaków niż cyfry i litery do wszystkich inputów oprócz inputa['email] gdzie wchodzi @ i KROPKA [.] . Używać funkcji ereg, eregi jest zdeprecjonowane i nie wiem czy są jakieś inne funkcje w php, które pomogły mi to zrobić. Czy napisać jakąś wielgachną funkcję z tablicą możliwych znaków, które na wejściu by sprawdzała podany ciąg z POSTA?
Zawsze walcz do końca i nigdy się nie poddawaj!
Re: funkcja sprawdzająca znaki w formularzu
z RegExp w php korzysta funkcja:
http://php.net/manual/en/function.preg-match.php
http://php.net/manual/en/function.preg-match.php
-
- Zaawansowany
- Posty: 223
- Dołączył(a): niedziela, 11 marca 2012, 03:08
- Lokalizacja: Poland
- Contact:
Re: funkcja sprawdzająca znaki w formularzu
Dzięki wielkie za tę funkcję. Bardzo się przydała.
Mam pytanie. Mam np. taki kod:
index.php
kontakt.php
Użycie zmienne $a znajduję się także w kontakt.php. W pliku tym będzie ostrzeżenie, że zmienna $a powinna być zainicjalizowana, z tym że wszystko jest ok bo ładuje cały kod do index.php. WIem, że wszystko będzie fajnie działać, ale czy jednak nie powinno się tak robić? Czasami jest za dużo kodu już np. na głównej stronie dlatego dorzucamy pliki. A może są sposoby, żeby pokazać plikowi kontakt.php że istnieje już taka zmienna w innym pliku? A co z klasami? Z klasami i obiektami to chyba nie byłoby takich błędów w kodzie, bo je wszędzie można używać i do nich się odwołowywać.
Mam pytanie. Mam np. taki kod:
index.php
Code: Zaznacz cały
$a = 5;
require('kontakt.php');
Code: Zaznacz cały
if ($a == 5)
echo "Jest równe 5";
Zawsze walcz do końca i nigdy się nie poddawaj!
Re: funkcja sprawdzająca znaki w formularzu
Jak widzisz powoli dochodzisz do stopnia zaawansowania, gdzie zauważasz sens istnienia klas
I dobrze to znaczy, że robisz postępy. Zacznij pisać obiektowo 


-
- Zaawansowany
- Posty: 223
- Dołączył(a): niedziela, 11 marca 2012, 03:08
- Lokalizacja: Poland
- Contact:
Re: funkcja sprawdzająca znaki w formularzu
Szczerze to utknąłem na klasach bo miałem problem w ich zrozumieniu. Jak na razie opanowałem programowanie strukturalne w takim stopniu, że potrafie poprawiać po sobie błędy od pewnego czasu główkując nawet nawet kilka godzin, ale teraz to jest coraz szybciej, a także potrafię wymyślać, znaczy się nauczyłem się wymyślać nowe sposoby np. na obejście problemu lub zrealizowanie jakiegoś celu w różnorakie sposoby. Np. stworzyłem sam aktywację konta, gdzie wysyłany jest link na mail i po jego kliknieciu aktywuje sie konto, dodatkowo dodałem np. zabezpieczenia wygaśnięcia linku, lub np. źle podanego linku, jest tego masa. A najśmieszniejsze jest to, że nie wiedziałem, że w podobny sposób się robi aktywację konta. Potem sobie sprawdziłem na Internecie, że tak ludzie robią. Troszkę główkowałem nad tym jak sprawdzić coś na stronie co zostało kliknięte w emailu. Odrazu pomyślałem o zmiennej predefiniowanej GET oraz przekazaiu jakiegos argumentu w emailu np. rand(), który był potem sprawdzany na stronie w zapytaniu. Oczywiście takie pole musiało istniec w tabeli np. code. Następnie wystarczyło wywołać zapytanie UPDATE do kolumny activation i ustawić z 0 na 1, i z takim warunkiem użytkownik się może logować.
Wszystko dzięki Panu. O wiele lepiej teraz rozumiem, myślę, poprawiam błędy, zastanawiam się jak coś obejść aby było lepiej itd. Na razie nad optymalizacją nie myślę, ale nad poprawnośćią przede wszystkim i pełną zgodnością. Małymi kroczkami + praktykując i wymyślając to nowe sposoby można się nauczyć wiele, ale także rozwinąć swoje pomysły.
Na razie klasy chwilowo odstawiam na boczek. Teraz mi sie przypomniała taka sytuacja jaką mam w kodzie. Otóż, chciałbym sprawdzić wynik pewnej zmiennej jeszcze przed zadeklarowaniej jej. Jest mi to potrzebne akurat przy czyszczeniu formularzy jeśli został ktoś już zarejestrowany.
To jest właśnie ten ból jak kod wykonuje się od góry do dołu. Taki przypadek mi się zdarzył dzisiaj i nie mam teraz pojęcia jak obejść coś takiego strukturalnie, ale pewnie coś wymyślę. Klasy też tak potrafią się odwoływać i będą widzieć zmienną wcześniej jeszcze przed deklaracją? Bo nie jestem pewien.
Wszystko dzięki Panu. O wiele lepiej teraz rozumiem, myślę, poprawiam błędy, zastanawiam się jak coś obejść aby było lepiej itd. Na razie nad optymalizacją nie myślę, ale nad poprawnośćią przede wszystkim i pełną zgodnością. Małymi kroczkami + praktykując i wymyślając to nowe sposoby można się nauczyć wiele, ale także rozwinąć swoje pomysły.

Na razie klasy chwilowo odstawiam na boczek. Teraz mi sie przypomniała taka sytuacja jaką mam w kodzie. Otóż, chciałbym sprawdzić wynik pewnej zmiennej jeszcze przed zadeklarowaniej jej. Jest mi to potrzebne akurat przy czyszczeniu formularzy jeśli został ktoś już zarejestrowany.
Code: Zaznacz cały
//nie deklarujemy tutaj zmiennej $a tylko potem, a chcemy sprawdzić warunek
if($a == 5)
echo "Jest równe 5";
$a = 5;
Zawsze walcz do końca i nigdy się nie poddawaj!
Re: funkcja sprawdzająca znaki w formularzu
No to fajnie, że się rozwijasz 
Przecież zmienna przed zadeklarowaniem nie posiada żadnej wartości więc nie ma sensu sprawdzania jej wartości. Coś może pomieszałeś o co Ci dokładnie chodzi?

Przecież zmienna przed zadeklarowaniem nie posiada żadnej wartości więc nie ma sensu sprawdzania jej wartości. Coś może pomieszałeś o co Ci dokładnie chodzi?
-
- Zaawansowany
- Posty: 223
- Dołączył(a): niedziela, 11 marca 2012, 03:08
- Lokalizacja: Poland
- Contact:
Re: funkcja sprawdzająca znaki w formularzu
Chodzi o to, że mam pewne zapytanie podczas tworzenia użytkownika i chciałbym sprawdzić wartość tego zapytania jeszcze przed jego zadeklarowaniem. WIem, że jest to niemożliwe z poziomu strukutralnego, ale czy obiektowo to przejdzie? Bo mam taką sytuację, że podczas stworzenie użytkownika chciałbym wyczyszczyć formularze, którą się znajdują powyżej tego kodu, a jedyny sposób jaki by działał to właśnie warunek rezultatu. Noi właśnie chodzi mi teraz o programowanie obiektowe, czy będzie mogło wstanie odwołać się jeszcze przed deklaracją, bo jak wiadomo można się wszędzie się odwoływać obiektowo, a czy jeszcze przed zadeklarowaniem nam pozwoli. Tego właśnie nie wiem.
Code: Zaznacz cały
if($rezultat == 1)
----- pełno kodu ------
$zapytanie = "INSERT INTO jakaś tabela (jakieś koloumny) VALUES ('jakieś wartości')";
$rezultat = mysql_query($zapytanie) or die(mysql_error());
Zawsze walcz do końca i nigdy się nie poddawaj!
Re: funkcja sprawdzająca znaki w formularzu
Weź najpierw poznaj JavaScript, a nie cuduj 
