Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
sõnum |
|
redenergy
HV veteran
liitunud: 22.03.2004
|
11.02.2009 01:51:16
PHP form väärtus |
|
|
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 |
|
|
neros
HV Guru
liitunud: 26.11.2003
|
11.02.2009 03:26:41
|
|
|
php:
|
<?php { echo "Nimi või e-mail liiga lühike"; } else { // saada kiri } ?>
|
"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 |
|
|
redenergy
HV veteran
liitunud: 22.03.2004
|
11.02.2009 04:18:21
|
|
|
Tänud
|
|
Kommentaarid: 30 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
1 :: |
9 |
|
tagasi üles |
|
|
mikk36
HV Guru
liitunud: 21.02.2004
|
11.02.2009 09:48:21
|
|
|
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:
|
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: 85 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
|
redenergy
HV veteran
liitunud: 22.03.2004
|
11.02.2009 14:17:47
|
|
|
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 |
|
|
mikk36
HV Guru
liitunud: 21.02.2004
|
11.02.2009 14:46:59
|
|
|
for tsükli sees ?
See on lihtsalt loendamiseks.
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
|
redenergy
HV veteran
liitunud: 22.03.2004
|
11.02.2009 15:46:32
|
|
|
Olgu, üritan oma scripti kokku panna nüüd. Tänud
|
|
Kommentaarid: 30 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
1 :: |
9 |
|
tagasi üles |
|
|
Donut
HV vaatleja
liitunud: 21.01.2005
|
12.02.2009 17:30:22
|
|
|
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 |
|
|
nene
Kreisi kasutaja
liitunud: 20.03.2004
|
12.02.2009 19:30:47
|
|
|
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 |
|
|
redenergy
HV veteran
liitunud: 22.03.2004
|
17.02.2009 01:26:00
|
|
|
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
php:
|
<?php $kellele="kes@kus.mis";//Kellele kiri saadetakse if (isset($_REQUEST['email'])) //if "email" is filled out, send email { //send email $email = $_REQUEST['email'] ; $subject = $_REQUEST['subject'] ; $message = $_REQUEST['teade'] ; $name = $_REQUEST['name'] ; mail( "$kellele", "$subject", $message, "From:<$name - $email>" ); } else $PHP_SELF;?> <form action="index.php?leht=kontakt" method="POST"> <p> Nimi: <input size="34" type="text" name="name"> </p> <p> Teema: <input size="34" type="text" name="subject"> </p> <p> Teie e- mail: <input size= "34" type= "text" name= "email"> </p> <p> Teade: <textarea rows="6" cols="31" name="teade"></textarea> </p> <p> <input type="submit" name="SubmitForm" value="Saada"> <input type="reset" name="Reset" value="Tühista"> </p> </form>
|
|
|
Kommentaarid: 30 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
1 :: |
9 |
|
tagasi üles |
|
|
andrusny
Kreisi kasutaja
liitunud: 20.03.2006
|
17.02.2009 02:16:16
|
|
|
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 |
|
|
AMD
HV veteran
liitunud: 29.07.2003
|
17.02.2009 09:49:07
|
|
|
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 |
|
|
mikk36
HV Guru
liitunud: 21.02.2004
|
17.02.2009 09:51:36
|
|
|
AMD, on see halb sinu meelest, et seal lõpus "== true" on ?
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
|
estipois
HV vaatleja
liitunud: 12.01.2008
|
17.02.2009 10:16:57
|
|
|
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
|
|
Kommentaarid: 10 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
0 :: |
9 |
|
tagasi üles |
|
|
AMD
HV veteran
liitunud: 29.07.2003
|
17.02.2009 11:08:50
|
|
|
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 |
|
|
mikk36
HV Guru
liitunud: 21.02.2004
|
17.02.2009 11:14:45
|
|
|
Ma ütleks et muudab koodi loetavamaks.
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
|
redenergy
HV veteran
liitunud: 22.03.2004
|
17.02.2009 16:42:15
|
|
|
Suured tänud teile abi eest
Sain asja valmis nagu plaanisin
|
|
Kommentaarid: 30 loe/lisa |
Kasutajad arvavad: |
|
:: |
0 :: |
1 :: |
9 |
|
tagasi üles |
|
|
|