Avaleht
uus teema   vasta Tarkvara »  WWW »  PHP form väärtus märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale. Teata moderaatorile
otsing:  
redenergy
HV veteran
redenergy

liitunud: 22.03.2004




sõnum 11.02.2009 01:51:16 PHP form väärtus vasta tsitaadiga

Tervist
olen php suht algaja, hetkel teen ühte mailimis scripti.
Ja tahaks panna sinna sellise lisa, et kui nime v emaili pole kasti kirjutatud või on liiga lühike siis annaks veateate ja kirja ei saada.
Olen uurinud päris palju selle kohta aga ei oska täpselt seda asja otsida mida teada tahan.
Et pärast saada nuppu vaataks kas väärtused on õiged.
Kommentaarid: 30 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 9
tagasi üles
vaata kasutaja infot saada privaatsõnum
neros
HV Guru
neros

liitunud: 26.11.2003




sõnum 11.02.2009 03:26:41 vasta tsitaadiga

php:
  1.  
  2. <?php
  3.  
  4. if(strlen($_POST['nimi'])<5 || strlen($_POST['email'])<5)
  5. {
  6. echo "Nimi või e-mail liiga lühike";
  7. }
  8. else
  9. {
  10. // saada kiri
  11. }
  12. ?>
  13.  

"5" asendad siis kui pikaga iganes vaja, või regulaaravaldistega et kontrollida kas e-mailis on ikka domeen ja @ sees.
Ja loomulikult echo asemele misiganes sa tahad kasutajale öelda.
Kommentaarid: 48 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 40
tagasi üles
vaata kasutaja infot saada privaatsõnum
redenergy
HV veteran
redenergy

liitunud: 22.03.2004




sõnum 11.02.2009 04:18:21 vasta tsitaadiga

Tänud icon_wink.gif
Kommentaarid: 30 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 9
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 11.02.2009 09:48:21 vasta tsitaadiga

Tark oleks enne ka kontrollida et sisestatud email on korrektne (sisaldab vaid üht @ märki ja ülejäänud elemendid on samuti korrektsed).
Näiteks:
php:
  1. function check_email_address($email)
  2. {
  3.         // First, we check that there's one @ symbol, and that the lengths are right
  4.         if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email))
  5.         {
  6.                 // Email invalid because wrong number of characters in one section, or wrong number of @ symbols.
  7.                 return false;
  8.         }
  9.         // Split it into sections to make life easier
  10.         $email_array = explode("@", $email);
  11.         $local_array = explode(".", $email_array[0]);
  12.         for ($i = 0; $i < sizeof($local_array); $i++)
  13.         {
  14.                 if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i]))
  15.                 {
  16.                         return false;
  17.                 }
  18.         }
  19.         if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1]))
  20.         { // Check if domain is IP. If not, it should be valid domain name
  21.                 $domain_array = explode(".", $email_array[1]);
  22.                 if (sizeof($domain_array) < 2)
  23.                 {
  24.                         return false; // Not enough parts to domain
  25.                 }
  26.                 for ($i = 0; $i < sizeof($domain_array); $i++)
  27.                 {
  28.                         if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i]))
  29.                         {
  30.                                 return false;
  31.                         }
  32.                 }
  33.         }
  34.         return true;
  35. }
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
redenergy
HV veteran
redenergy

liitunud: 22.03.2004




sõnum 11.02.2009 14:17:47 vasta tsitaadiga

Võib olla selline loll küsimus aga mida see $i teeb või on
Kommentaarid: 30 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 9
tagasi üles
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 11.02.2009 14:46:59 vasta tsitaadiga

for tsükli sees ?
See on lihtsalt loendamiseks.
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
redenergy
HV veteran
redenergy

liitunud: 22.03.2004




sõnum 11.02.2009 15:46:32 vasta tsitaadiga

Olgu, üritan oma scripti kokku panna nüüd. Tänud icon_wink.gif thumbs_up.gif
Kommentaarid: 30 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 9
tagasi üles
vaata kasutaja infot saada privaatsõnum
Donut
HV vaatleja
Donut

liitunud: 21.01.2005




sõnum 12.02.2009 17:30:22 vasta tsitaadiga

Tahtsin lihtsalt mainida, et strlen() asemel võiks kasutada isset() funktsiooni. isset() on kiirem ja minuarust ka mugavam.

<?php
$nimi = "peeter";
echo $vastus = isset($nimi[5]) ? "vähemalt 6 tähemärki pikk" : "lühem kui 6 tähemärki";
?>
Kommentaarid: 6 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 6
tagasi üles
vaata kasutaja infot saada privaatsõnum
nene
Kreisi kasutaja
nene

liitunud: 20.03.2004




sõnum 12.02.2009 19:30:47 vasta tsitaadiga

Donut kirjutas:
Tahtsin lihtsalt mainida, et strlen() asemel võiks kasutada isset() funktsiooni. isset() on kiirem ja minuarust ka mugavam.


isset() kasutamine on halb valik, ning seda mitmel põhjusel:

1. strlen() on lihtsamini arusaadav. Igaüks teab, mida strlen($x) > 5 teeb, aga isset($x[5]) puhul tuleb tublisti nuputada.

2. Kiirus pole antud koodi puhul kuigivõrd oluline. Kui kontrollitavaid e-posti aadresse on alla paari tuhande, siis ei anna kiirus kuidagi tunda. Ning kui ka annab, siis tuleks teha mõõtmised ja tuvastada, et pudelikael on just strlen funkstiooni kasutamises.

3. PHP hoiab stringi mälus koos tema pikkusega. Seega strlen() käsk lihtsalt vaatab järgi selle numbri - ei mingid stringi otsast lõpuni läbi jalutamist, et pikkust teada saada. Seega kiirusevõit isset-i kasutusest on väga kahtlane.

_________________
Mõistus otsas? Pane pinusse...
Kommentaarid: 24 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 23
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
redenergy
HV veteran
redenergy

liitunud: 22.03.2004




sõnum 17.02.2009 01:26:00 vasta tsitaadiga

No kohe mitte ei jaga matsu välja. Tunde jamanud sellega ja aitab jamast.
Ehk keegi oskab öelda kuhu mikk36 või madedog antud lõigud sisestada icon_confused.gif beer_yum.gif
php:
  1.  
  2.  
  3. <?php
  4. $kellele="kes@kus.mis";//Kellele kiri saadetakse
  5.  
  6. if (isset($_REQUEST['email']))
  7. //if "email" is filled out, send email
  8.   {
  9.  
  10.   //send email
  11.   $email = $_REQUEST['email'] ;
  12.   $subject = $_REQUEST['subject'] ;
  13.   $message = $_REQUEST['teade'] ;
  14.   $name = $_REQUEST['name'] ;
  15.   mail( "$kellele", "$subject",
  16.   $message, "From:<$name - $email>" );
  17.   echo "Kiri on saadetud";
  18.   }
  19. else
  20. $PHP_SELF;?>
  21. <form action="index.php?leht=kontakt" method="POST">
  22.   <p>
  23.    Nimi: <input size="34" type="text" name="name">
  24.   </p>
  25.   <p>
  26.      Teema: <input size="34" type="text" name="subject">
  27.     </p>
  28.   <p>
  29.    Teie e-mail: <input size="34" type="text" name="email">
  30.     </p>
  31.   <p>
  32.    Teade: <textarea rows="6" cols="31" name="teade"></textarea>
  33.   </p>
  34.   <p>
  35.     <input type="submit" name="SubmitForm" value="Saada">
  36.     <input type="reset" name="Reset" value="Tühista">
  37.   </p>
  38. </form>
  39.  
Kommentaarid: 30 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 9
tagasi üles
vaata kasutaja infot saada privaatsõnum
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 17.02.2009 02:16:16 vasta tsitaadiga

Selliselt ehk.


<?php
$kellele="kes@kus.mis";//Kellele kiri saadetakse

if (isset($_REQUEST['email']))
//if "email" is filled out, send email
  {
//****************************** kontrol **************
if(check_email_address($_REQUEST['email'])==true){

  //send email
  $email = $_REQUEST['email'] ;
  $subject = $_REQUEST['subject'] ;
  $message = $_REQUEST['teade'] ;
  $name = $_REQUEST['name'] ;
  mail( "$kellele", "$subject",
  $message, "From:<$name - $email>" );
  echo "Kiri on saadetud";
  //****************
  }
  else {echo "Su Eposti aadress on vale!";}
 
  }
else {
echo $PHP_SELF;
}

function check_email_address($email)
{
        // First, we check that there's one @ symbol, and that the lengths are right
        if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email))
        {
                // Email invalid because wrong number of characters in one section, or wrong number of @ symbols.
                return false;
        }
        // Split it into sections to make life easier
        $email_array = explode("@", $email);
        $local_array = explode(".", $email_array[0]);
        for ($i = 0; $i < sizeof($local_array); $i++)
        {
                if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i]))
                {
                        return false;
                }
        }
        if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1]))
        { // Check if domain is IP. If not, it should be valid domain name
                $domain_array = explode(".", $email_array[1]);
                if (sizeof($domain_array) < 2)
                {
                        return false; // Not enough parts to domain
                }
                for ($i = 0; $i < sizeof($domain_array); $i++)
                {
                        if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i]))
                        {
                                return false;
                        }
                }
        }
        return true;
}
?>

_________________
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
AMD
HV veteran
AMD

liitunud: 29.07.2003




sõnum 17.02.2009 09:49:07 vasta tsitaadiga

andrusny,
if(check_email_address($_REQUEST['email'])==true){

=
if(check_email_address($_REQUEST['email'])){

_________________
From now on, the forum is owned by AMD.That means that you are NO LONGER allowed to talk about, or even mention *ntel.
Kommentaarid: 335 loe/lisa Kasutajad arvavad:  :: 145 :: 3 :: 12
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 17.02.2009 09:51:36 vasta tsitaadiga

AMD, on see halb sinu meelest, et seal lõpus "== true" on ?
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
estipois
HV vaatleja
estipois

liitunud: 12.01.2008




sõnum 17.02.2009 10:16:57 vasta tsitaadiga

Emaili kontrollimisest üks artikkel:
http://www.linuxjournal.com/article/9585
Seal on näidatud, et emailis võib olla ka rohkem kui üks @ märk.
Saad kopida sealt ka emaili kontrollimsie funktsiooni icon_wink.gif
Kommentaarid: 10 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 9
tagasi üles
vaata kasutaja infot saada privaatsõnum
AMD
HV veteran
AMD

liitunud: 29.07.2003




sõnum 17.02.2009 11:08:50 vasta tsitaadiga

mikk36, on küll halb.
See tõeväärtus == true võrdlus muudab koodi mõttetult pikemaks.

_________________
From now on, the forum is owned by AMD.That means that you are NO LONGER allowed to talk about, or even mention *ntel.
Kommentaarid: 335 loe/lisa Kasutajad arvavad:  :: 145 :: 3 :: 12
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 17.02.2009 11:14:45 vasta tsitaadiga

Ma ütleks et muudab koodi loetavamaks.
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
redenergy
HV veteran
redenergy

liitunud: 22.03.2004




sõnum 17.02.2009 16:42:15 vasta tsitaadiga

Suured tänud teile abi eest thumbs_up.gif
Sain asja valmis nagu plaanisin
Kommentaarid: 30 loe/lisa Kasutajad arvavad:  :: 0 :: 1 :: 9
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  WWW »  PHP form väärtus
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.