Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> zastrzeganie znakow w formularzu
andy84
post
Post #1





Grupa: Zarejestrowani
Postów: 165
Pomógł: 0
Dołączył: 14.11.2005
Skąd: London

Ostrzeżenie: (0%)
-----


sluchajcie przejzalem 8 stron z formu search mi nei jedzie bo nie do konca mam polskie znaki ;/ potrzebuje zeby formularz mial zastrzezenia typu ze to pole ma byc wypelnione i tu maja byc tylko np cyfry ktore bym podal dostepne od np 1-5 zdrowo dzieki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Ociu
post
Post #2





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




if" title="Zobacz w manualu php" target="_manual + preg_match" title="Zobacz w manualu php" target="_manual. Z tego co pamiętam będzie coś takiego:
  1. <?php
  2. if(preg_match('[1-5]', $_POST['input']))
  3. ?>
Go to the top of the page
+Quote Post
andy84
post
Post #3





Grupa: Zarejestrowani
Postów: 165
Pomógł: 0
Dołączył: 14.11.2005
Skąd: London

Ostrzeżenie: (0%)
-----


Cytat(Ociu @ 2005-11-19 15:18:02)
+ <a href="http://pl.php.net/preg_match">preg_match. Z tego co pamiętam będzie coś takiego:
  1. <?php
  2. if(preg_match('[1-5]', $_POST['input']))
  3. ?>

ok moze inaczej to okresle (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) to sie przyda zapewne ale :

jest formularz
imie
nazwisko
tel
email
mam to wszyskto juz przygotowane wysylam sobie to do bazy i odczytuje z admina storny ale to nie jest najwazneijsze

jezeli ktos wprowadzi napszyklad w pole imie > janek3 - zeby mu to np wywalilo blad ze imie moze zawierac tylko litery a w nr telefonu zeby nie mogl wpisywac 0-888 twoja info linai tylko zeby to musialy byc nr ewentualnie zamiast wyskakujacego bledu windowsa mogl by byc jakis print pod danym polem (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
legorek
post
Post #4





Grupa: Zarejestrowani
Postów: 411
Pomógł: 35
Dołączył: 27.06.2004
Skąd: Kraków

Ostrzeżenie: (0%)
-----


  1. <?php
  2. if(!preg_match('/[a-zążźćęśńłó]/i', $_POST['input'])) {
  3. echo 'możesz podawac tylko litery';
  4. }
  5. ?>


Ten post edytował legorek 19.11.2005, 16:38:57
Go to the top of the page
+Quote Post
ghostrider
post
Post #5





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 30.09.2005
Skąd: k-rk

Ostrzeżenie: (0%)
-----


tak można po stronie przegladarki:

  1. <script language="javascript" type="text/javascript">
  2.  
  3. function mask(e){
  4. var my_mask = this.masking;
  5. var mychar = String.fromCharCode(e.which);
  6. if ( !my_mask.test(mychar) ){
  7. alert(this.alertmsg);
  8. return false;
  9. }
  10. }
  11. <input type="text" id="box" value="" name="x" />
  12. <input type="text" id="boxnum" value="" name="x2" />
  13. <script language="javascript" type="text/javascript">
  14. var mybox = document.getElementById("box");
  15. mybox.masking = /[a-z]/;
  16. mybox.alertmsg = "tylko znaki a-z(małe litery)";
  17. mybox.onkeypress = mask;
  18. var mybox2 = document.getElementById("boxnum");
  19. mybox2.masking = /[0-9]/;
  20. mybox2.alertmsg = "tylko cyfry";
  21. mybox2.onkeypress = mask;


Ten post edytował ghostrider 19.11.2005, 16:43:51
Go to the top of the page
+Quote Post
andy84
post
Post #6





Grupa: Zarejestrowani
Postów: 165
Pomógł: 0
Dołączył: 14.11.2005
Skąd: London

Ostrzeżenie: (0%)
-----


Cytat(legorek @ 2005-11-19 15:38:41)
  1. <?php
  2. if(!preg_match('/[a-zążźćęśńłó]/i', $_POST['input'])) {
  3. echo 'możesz podawac tylko litery';
  4. }
  5. ?>

no to dziala to o co chodzilo prawie dlaczego tylko nadal mimo np wpisania samych cyft i wyskoczenu bledu dodaje sie to do bazy (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
  1. <?php
  2.  
  3. if(!preg_match('/[a-zążźćęśńłó]/i', $_POST['input'])) {
  4. echo 'możesz podawac tylko litery';
  5. }
  6. ?>


Ten post edytował andy84 19.11.2005, 17:54:09
Go to the top of the page
+Quote Post
legorek
post
Post #7





Grupa: Zarejestrowani
Postów: 411
Pomógł: 35
Dołączył: 27.06.2004
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Bo liczyłem na trochę Twojej inwencji.

  1. <?php
  2. if(!preg_match('/[a-zążźćęśńłó]/i', $_POST['input'])) {
  3. die('możesz podawac tylko litery');
  4. }
  5. ?>
Go to the top of the page
+Quote Post
andy84
post
Post #8





Grupa: Zarejestrowani
Postów: 165
Pomógł: 0
Dołączył: 14.11.2005
Skąd: London

Ostrzeżenie: (0%)
-----


Cytat(legorek @ 2005-11-19 15:53:08)
Bo liczyłem na trochę Twojej inwencji.

  1. <?php
  2. if(!preg_match('/[a-zążźćęśńłó]/i', $_POST['input'])) {
  3. die('możesz podawac tylko litery');
  4. }
  5. ?>

ok ostatnia sprawa
probowalem to jw przerobic na maila zeby tez prawidlowe wpisy rozpoznawal ale nawet nie patrzcie
  1. <?php
  2.  
  3. }
  4. if(!preg_match('/[a-z,0-9]@[a-z,0-9].[a-z]/i', $_POST['email'])) {
  5. echo 'podaj prawidlowy email';
  6. }
  7. ?>

dobra slyszalem wasz smiehc az tutaj ma ktos jakis pomysl jak to bez pear'a przerobic

mam do pear cos takiego
  1. <?php
  2.  
  3. $out = Mail_RFC822:parseAddressList($value);
  4.  
  5. if(PEAR::isError($out))
  6.  
  7. {
  8.  
  9. return $out;
  10.  
  11. }
  12.  
  13. else return true;
  14. ?>


ale chchial bym to pominac (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ( da sie (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?)
Go to the top of the page
+Quote Post
ghostrider
post
Post #9





Grupa: Zarejestrowani
Postów: 135
Pomógł: 0
Dołączył: 30.09.2005
Skąd: k-rk

Ostrzeżenie: (0%)
-----


ja takiej func. uzywam:

  1. <?php
  2.  
  3. function is_email($email){
  4.  return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]]).)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg
    |bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|c
    om|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|
    fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr
    |ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky
    |kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|m
    s|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|
    org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|s
    g|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|t
    t|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]).){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i"
    ,$email));
  5. }
  6.  
  7. ?>
Go to the top of the page
+Quote Post
andy84
post
Post #10





Grupa: Zarejestrowani
Postów: 165
Pomógł: 0
Dołączył: 14.11.2005
Skąd: London

Ostrzeżenie: (0%)
-----


no blad wyskakuje przy tym zeczywiscie jak wpisze maila nie tak jak trzeba (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) dzieki ghost ale jest jeszcze taki problem jak pisze prawidlowe maile tez blad wyskakuje (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) zebu wpisac maila prawidlowo i nadal nie rozumiem czemu jak jest cus zle itak dodaje sie do bazy qde ;/ grrr no nic ide walczyc panowie a dla waz sotawiam watek otwarty (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Ociu
post
Post #11





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




Kod z wiki.php.pl.
Prosty:
  1. <?php
  2. function ValidEmail($str)
  3. {
  4. if(strstr($str,'@'))
  5. {
  6. return true;
  7. }
  8. return false;
  9. }
  10. ?>


zaawansowany:
  1. <?php
  2. /**
  3.  * Funkcja sprawdza poprawność adresu e-mail na podstawie wyrażeń regularnych
  4.  * i weryfikacji danych z serwera DNS.
  5.  *
  6.  * Funkcja nie działa pod systemem Ms Windows!
  7.  *
  8.  * @author Bakus <bakus@php.pl>
  9.  * @param string Adres e-mail do weryfikacji
  10.  * @return mixed (bool) true gdy adres będzie poprawny, lub komunikat błędu
  11.  */
  12. function ValidateEmail($email)
  13. {
  14. $wholeexp = '/^(.+?)@(([a-z0-9.-]+?).[a-z]{2,5})$/i';
  15. $userexp = "/^[a-z0-9-_+,.]+$/i";
  16. if (preg_match($wholeexp, $email, $regs)) // EMail jest poprawny składniowo?
  17. {
  18. $username = $regs[1];
  19. $host = $regs[2];
  20. if (!checkdnsrr($host, "MX")) // Czy serwer obsługuje pocztę?
  21. {
  22. return "Podany adres jest nieprawidłowy. Przyczyna błędu: Podany serwer nie obsługu
    je poczty."
    ;
  23. }else{
  24. if (!preg_match($userexp, $username)) // Login jest poprawy?
  25. {
  26. return "Podany adres jest nieprawidłowy. Przyczyna błędu: Login zawiera niedozwolon
    e znaki."
    ;
  27. }else{
  28. return true;
  29. }
  30. }
  31. }else{
  32. return "Podany adres nadawcy jest nieprawidłowy.";
  33. }
  34. }
  35. ?>


Proste użycie:
if(!ValidEmail($_POST['mail'])) die('Nie poprawny adres e-mail');
mysql_query(...);
pozdrawiam
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 19:05