Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Sprawdzanie fomularza - wyrażenia reg PCRE
Forum PHP.pl > Forum > Przedszkole
aleo
  1. <form action="" method=get >
  2.  <input type="text" name="mail">
  3.  <input type="submit" value="send"></form>
  4.  
  5.  <?php
  6.  
  7.  
  8.  
  9.  if (isset($_GET['send'])) {
  10.      if ( preg_match("/w+@.w{2,4}/" . $_GET['send']=! 1 ) ) {
  11.          echo"dobrze" ;
  12.      }
  13.      else "zle";
  14.  }
  15.  
  16.  
  17.  ?>


Witam

Dlaczego powyższy fomularz nie działa ?
Spawnm
send to value a nie name
RubiX
  1. <?php
  2. if ( preg_match("/w+@.w{2,4}/" . $_GET['mail'])=! 1 ) {
  3. ?>
aleo
ok ale skrypt mi nadal nie dziala co jest zle
  1. <?php
  2.  
  3.  
  4.  
  5.  if (isset($_GET['send'])) {
  6.      if ( preg_match("/w+@.w{2,4}/" , $_GET['send']) !=1 )  {
  7.          echo"zle" ;
  8.      } }
  9.      else  { echo "dobrze";
  10.  }
  11.  
  12.  
  13.  ?>
RubiX
Zamień SEND na MAIL exclamation.gif

  1. <?php
  2. if (isset($_GET['mail'])) {
  3.     if ( preg_match("/w+@.w{2,4}/" , $_GET['mail']) !=1 )  {
  4.         echo"zle" ;
  5.     } }
  6.     else  { echo "dobrze";
  7. }
  8. ?>
aleo
zrobiłem tak ale nadal źle
  1. <form action="" method=get >
  2.      <input type ="hidden" name="phon" value="1">
  3.  <input type="text" name="mail">
  4.  <input type="submit" value="send"
  5.  name="send"></form>
  6.  
  7.  <?php
  8.  
  9.  
  10.  
  11.  if (isset($_GET['phon'])) {
  12.      if ( preg_match("/w+@.w{2,4}/" , $_GET['mail']) !=1 )  {
  13.          echo"zle" ;
  14.      } }
  15.      else  { echo "dobrze";
  16.  }
  17.  
  18.  
  19.  ?>
slawny
  1. <?php
  2. if(!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$",$_GET['mail'])
  3.   {
  4.       echo "Podany email nie jest prawidłowy.";
  5.   }
  6. ?>
wookieb
@slawny Nie no stary tym ostatnim to padłes na całej liniii Eregi się używa.

@aleo zrób sobie na odwrot
Kod
if(preg_match("/\w+@\.\w{2,4}/" , $_GET['mail']))
{
echo 'ok';
}
else echo 'nie';

A potem powiedz jaki mail wpisałes.
I jeszcze wyświetl sobie tablice $_GET
Kod
print_r($_GET);
slawny
Cytat(wookieb @ 9.04.2009, 13:38:02 ) *
@slawny Nie no stary tym ostatnim to padłes na ostatniej liniii Eregi się używa.


co tym razem odstawiłem nie tak?
aleo
no nadal nie działa

nieArray ( [mail] => forumphp@wp.pl [send] => send )
wookieb
Dopiero teraz to zauwazyłem
Użyj wyrazenia (pierwszy argument funkcji) od @slawny (zamien eregi na preg_match i wstaw / / na poczatku i koncu wyrazenia)
aleo
pogubiłem się sciana.gif

kod
  1. <?php
  2.  
  3.  
  4.  
  5.  
  6. if(preg_match("//^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$//",$_GET['mail']))
  7. {
  8. echo 'ok';
  9. }
  10. else echo 'nie<BR>';
  11. print_r($_GET);
  12.  ?>
  13.    </body>
  14. </html>



O to chodziło ?

na dodatek wyskoczył error Warning: preg_match() [function.preg-match]: Unknown modifier '[' in /home/desk/public_html/php/ke/listing_5/listing_5_5.php on line 23 smile.gif

Nie wiem gdzie mam umiescic te //
wookieb
Ech :/ faktycznie źle się wyraziłem. Przepraszam i Proszę:
Kod
if(preg_match("/^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$/",$_GET['mail']))
erix
preg_quote" title="Zobacz w manualu PHP" target="_manual i zobacz, co będziesz musiał escape'ować. winksmiley.jpg
aleo
ok dzięki koledzy proszę jednak o jeszcze jedno wytłumaczenie kod
  1. <form action="" method=get >
  2.     <input type ="hidden" name="phon" value="1">
  3. <input type="text" name="mail">
  4. <input type="text" name="mail2">
  5. <input type="submit" value="send"
  6. name="send"></form>
  7.  
  8.  <?php
  9.  
  10.  
  11.  
  12.  
  13. if((preg_match("/^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$/",$_GET['mail'] )) && (preg_match("/^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$/",$_GET['mail2'] )) )
  14. {
  15. echo 'ok';
  16. }
  17. else echo 'nie<BR>';
  18. print_r($_GET);
  19.  ?>


Notice: Undefined index: mail in /home/desk/public_html/php/ke/listing_5/listing_5_5.php on line 24

Dlaczego wyskakuje ten błąd ? Przecież jest mail ?

Proszę o wytłumaczenie .
wookieb
nie ma go dopkoi nie wyslales formularza. Dlatego robi sie na poczatku
  1. <?php
  2. if(isset($_GET['mail']))
  3. ?>
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.