Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
adept+
HV vaatleja
liitunud: 09.09.2003
|
03.10.2008 15:32:16
palun php meilivormi abi - ühe välja info ei jõua kohale |
|
|
Palun php abi meilivormi tegemisel. Kõik muidu töötab, aga telefoni numbrit ei saada. Kas keegi oskab aidata?
<?php
$mailiaadress = "nimi@aadress.ee";
$error = "";
$submit = $_REQUEST['submit'];
if (isset ($submit)) {
$nimi = $_REQUEST['nimi'];
$telefon = $_REQUEST['telefon'];
$kommentaar = $_REQUEST['kommentaar'];
$verify = $_REQUEST['verify'];
$epostiaadress = $_REQUEST['epostiaadress'];
if (preg_match ("/\r|\n/", $epostiaadress) || preg_match ("/\r|\n/", $nimi)) {
$error = "Vigane e-posti aadress või nimi!";
}
if (!strlen ($nimi)) {
$error = "Palun lisage oma nimi";
}
if (!strlen ($kommentaar)) {
$error = "Palun lisage kirja sisu";
}
if (!strlen ($epostiaadress)) {
$error = "Palun lisage oma e-posti aadress";
} else if (!preg_match ("/^.+@.+\$/", $epostiaadress)) {
$error = "E-posti aadress on vigane";
}
if ($verify != 'verified') {
if ($verify == 'not_verified') {
$error = 'Palun aktiveerige JavaScript!';
}
}
if (!$error) {
mail($mailiaadress, "Kiri veebilehelt", "$kommentaar", "From: $nimi <$epostiaadress>");
?>
<br><br>Kiri saadetud</b>
<?php
}
}
if ($error)
{
?>
<br><br>Viga!!!</b><br><?php echo $error; ?>
<?php
}
if (!isset ($submit))
{
?>
<br><br><font class="smustekst">Saada kiri:</font><table border="0" cellspacing="0" cellpadding="0" width="350">
<form action="?action=tagasiside" method="post" onsubmit="this.verify.value='verified';">
<input type="hidden" name="verify" value="not_verified">
<tr>
<td width=115>Nimi <font color="#ff0000">*</font></td>
<td width=335><input type="text" name="nimi" size="25"></td>
</tr>
<tr>
<td width=50>Telefon</td>
<td width=200><input type="text" name="telefon" size="25"></td>
</tr>
<tr><td width=115>e-mail <font color="#ff0000">*</font></td>
<td width=335><input type="text" name="epostiaadress" size="25"></td>
</tr>
<tr>
<td width=50>Kiri <font color="#ff0000">*</font></td>
<td width=200><textarea name="kommentaar" rows="7" cols="38"></textarea></td>
</tr>
<tr>
<td colspan="2"><font color="#ff0000">*</font> - väljad on kohustuslikud<p></td>
</tr>
<tr>
<td><input type="submit" name="submit" value="Saada kiri" class="button"></td>
<td> </td>
</tr>
</form>
</table>
<?php
}
?>
|
|
|
tagasi üles |
|
 |
tooming
HV vaatleja

liitunud: 19.03.2007
|
03.10.2008 15:43:54
|
|
|
Aga pane siis skript telefoni kuvama ka?
if (!$error) {
mail($mailiaadress, "Kiri veebilehelt", "$kommentaar".'<br>Telefon'.$telefon, "From: $nimi <$epostiaadress>");
?>
<br><br>Kiri saadetud</b>
<?php
} |
|
|
Kommentaarid: 4 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
4 |
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
03.10.2008 15:44:24
|
|
|
sa ei sisesta seda ju kuhugi (emaili) ?
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
adept+
HV vaatleja
liitunud: 09.09.2003
|
03.10.2008 16:56:10
|
|
|
aitäh tooming, aga kuidas saab nii et kui kiri postkasti kohale jõuab, siis tel nr läheks teisele reale ilma <br>?
praegu tuli kohale nii:
kirja sisu<br>Telefon123456
muudan postitust, sain nüüd teisele reale ka:
mail($mailiaadress, "Kiri veebilehelt", "$kommentaar"."\n".'Telefon: '.$telefon, "From: $nimi <$epostiaadress>"); |
Aitäh abi eest
mikk36 kirjutas: |
sa ei sisesta seda ju kuhugi (emaili) ? |
Emaili aadressi ei jõua saaja postkasti tekstina vaid jääb praegu From reale, aga ma saan nüüd telefoni näite põhjal meiliaadressi ka juurde panna
|
|
tagasi üles |
|
 |
Valdars
HV veteran

liitunud: 22.02.2003
|
03.10.2008 16:56:37
|
|
|
tsitaat: |
aitäh tooming, aga kuidas saab nii et kui kiri postkasti kohale jõuab, siis tel nr läheks teisele reale ilma <br>?
|
Kasuta <br> asemel \n ja see peab "" sees olema.
|
|
Kommentaarid: 47 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
44 |
|
tagasi üles |
|
 |
adept+
HV vaatleja
liitunud: 09.09.2003
|
03.10.2008 17:43:09
|
|
|
Aitäh, sellega on korras.
Kas on väga keeruline teha sellist asja, et kui kõik või mõned kohustuslikud väljad on täitmata siis annab veateate kõikidele neile korraga. Praegu teatab ühekaupa kohustuslikest täitmata väljadest (kõigepealt meiliaadressile, kui teised ka täitmata siis kirja sisu jne), aga võiks olla nii:
Palun lisage nimi
Palun lisage oma e-posti aadress
Palun lisage kirja sisu
Valdars kirjutas: |
tsitaat: |
aitäh tooming, aga kuidas saab nii et kui kiri postkasti kohale jõuab, siis tel nr läheks teisele reale ilma <br>?
|
Kasuta <br> asemel \n ja see peab "" sees olema. |
|
|
tagasi üles |
|
 |
mikk36
HV Guru

liitunud: 21.02.2004
|
03.10.2008 20:09:10
|
|
|
no aga tekita kontrollid ja anna teatud muutujatele vastavad väärtused ja siis lehe sisu väljastades kontrolli nende muutujate väärtusi ja tegutse vastavalt
a'la
if(!strlen(blabla)) blabla_error = true;
ja lehte väljastades siis
if(blabla_error == true) blabla'ga oli midagi valest
|
|
Kommentaarid: 85 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
2 :: |
78 |
|
tagasi üles |
|
 |
aatomik
HV kasutaja

liitunud: 30.11.2005
|
03.10.2008 20:31:36
|
|
|
adept+ kirjutas: |
Aitäh, sellega on korras.
Kas on väga keeruline teha sellist asja, et kui kõik või mõned kohustuslikud väljad on täitmata siis annab veateate kõikidele neile korraga. |
Kui väljadele kontrolli teed, siis "else if" asemel kasuta näiteks if-i. Nii kontrollib kõik lahtrid korraga ära ja kuvab veateated ka.
|
|
Kommentaarid: 14 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
14 |
|
tagasi üles |
|
 |
gynterk
HV kasutaja
liitunud: 17.01.2004
|
07.10.2008 13:35:51
|
|
|
Kerge kontrolli võid ju JS-iga teha, aga PHP-s tee ka kindlasti
|
|
Kommentaarid: 5 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
5 |
|
tagasi üles |
|
 |
adept+
HV vaatleja
liitunud: 09.09.2003
|
09.10.2008 12:27:51
kõikide täitmata väljade veatedete väljastamine korraga |
|
|
Pean tunnistama et ei tunne php-d ja selle koodi mida enda jaoks praegu muudan sain Zone-st. Püüdsin mikk36 antud juhise järgi teha aga mida ei oska seda ei oska
Kas see on õige kui ma loetlen kõik kohustuslikud väljad ühe if(!strlen( sees ära või tuleb kõikvõimalikud variandid välja kirjutada? (nt kui on täitmata e-post ja nimi, või e-post ja kommentaar, või nimi ja kommentaar)
Äkki on võimalik nad ühe sees ära kirjeldada, et ükskõik mis kombinatsioon on täitmata, siis väljastab ainult need?
Vabandan oma võhilikkuse pärast.
|
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
09.10.2008 12:48:17
|
|
|
Võid selliselt teha
if (preg_match ("/\r|\n/", $epostiaadress) || preg_match ("/\r|\n/", $nimi)) {
$error = "Vigane e-posti aadress või nimi!<br>";
}
if (!strlen ($nimi)) {
$error = $error."Palun lisage oma nimi<br>";
}
if (!strlen ($kommentaar)) {
$error =$error. "Palun lisage kirja sisu<br>";
}
if (!strlen ($epostiaadress)) {
$error = $error."Palun lisage oma e-posti aadress<br>";
} else if (!preg_match ("/^.+@.+\$/", $epostiaadress)) {
$error =$error. "E-posti aadress on vigane<br>";
}
if ($verify != 'verified') {
if ($verify == 'not_verified') {
$error = $error.'Palun aktiveerige JavaScript!';
}
} |
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
oicu
HV kasutaja
liitunud: 23.11.2006
|
09.10.2008 13:04:33
|
|
|
andrusny, miks $epostiaadress'ile 2 korda preg_matchi teed?
emaili ja nime lahti valideerimine tuleks eraldi panna.
hetkel kui midagi peaks valesti olema, on viga palju keerulisem leida.
|
|
Kommentaarid: 9 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
9 |
|
tagasi üles |
|
 |
adept+
HV vaatleja
liitunud: 09.09.2003
|
09.10.2008 14:11:54
|
|
|
aitäh andrusny Nüüd töötab nagu vaja.
oicu, kas selle võib eemaldada?
if (preg_match ("/\r|\n/", $epostiaadress) || preg_match ("/\r|\n/", $nimi)) {
$error = "Vigane e-posti aadress või nimi!<br>";
} |
muudan oma postitust: eemaldasin selle koodijupi ja ikka töötab.
Kui on kellelgi veel ettepanekuid mida on tema meelest selle koodi puhul kasulik teha, siis oleksin väga tänulik. php võhikule nagu ma olen, on see vorm juba piisavalt hea, aga äkki on teil kui spetsidel muu arvamus?
|
|
tagasi üles |
|
 |
oicu
HV kasutaja
liitunud: 23.11.2006
|
09.10.2008 15:41:37
|
|
|
no ma teeks selle teistmoodi. ma tekitaks väljadest array, kuhu paneks vajalikud parameetrid sisse
kuid alustuseks on pakutud lahendus ka ok.
|
|
Kommentaarid: 9 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
9 |
|
tagasi üles |
|
 |
andrusny
Kreisi kasutaja

liitunud: 20.03.2006
|
09.10.2008 18:18:31
|
|
|
tsitaat: |
miks $epostiaadress'ile 2 korda preg_matchi teed? |
Ma kasutasin tema koodi ja ei muutnud seal muud, kui liitsin ta veateated üheks.
_________________
 |
|
Kommentaarid: 7 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
7 |
|
tagasi üles |
|
 |
adept+
HV vaatleja
liitunud: 09.09.2003
|
10.10.2008 11:14:01
|
|
|
mille poolest see variant parem on, kas lühem kood või tehniliselt õigem vms?
oicu kirjutas: |
no ma teeks selle teistmoodi. ma tekitaks väljadest array, kuhu paneks vajalikud parameetrid sisse kuid alustuseks on pakutud lahendus ka ok. |
|
|
tagasi üles |
|
 |
oicu
HV kasutaja
liitunud: 23.11.2006
|
10.10.2008 11:29:51
|
|
|
kood tuleb lühem ja on paremini loetavam. imho
|
|
Kommentaarid: 9 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
9 |
|
tagasi üles |
|
 |
Valdars
HV veteran

liitunud: 22.02.2003
|
10.10.2008 11:38:26
|
|
|
oicu, sellise väikese koodi puhul mitte niiväga, eriti arvestades seda, et siin kasutatakse erinevaid meetodeid kontrollimiseks. Selline lähenemine oleks hea siis, kui hiljem tekib vajadus kontrollitavaid välju juurde lisada või on sama kontrollsüsteemi vaja mitmes kohas kasutada.
|
|
Kommentaarid: 47 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
1 :: |
44 |
|
tagasi üles |
|
 |
oicu
HV kasutaja
liitunud: 23.11.2006
|
10.10.2008 11:40:26
|
|
|
Valdars kirjutas: |
Selline lähenemine oleks hea siis, kui hiljem tekib vajadus kontrollitavaid välju juurde lisada või on sama kontrollsüsteemi vaja mitmes kohas kasutada. |
mina arvestangi koodi kirjutades sellega, et hiljem oleks lihtsam koodi täiendada.
|
|
Kommentaarid: 9 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
9 |
|
tagasi üles |
|
 |
adept+
HV vaatleja
liitunud: 09.09.2003
|
10.10.2008 12:58:54
välju juurde |
|
|
Oleksin väga huvitatud. Võimalik, et varsti on välju juurde vaja. Kas sa saaksid siia oma variandi panna palun?
oicu kirjutas: |
mina arvestangi koodi kirjutades sellega, et hiljem oleks lihtsam koodi täiendada. |
|
|
tagasi üles |
|
 |
|