Avaleht
uus teema   vasta Tarkvara »  WWW »  palun php meilivormi abi - ühe välja info ei jõua kohale 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 teata moderaatorile
otsing:  
adept+
HV vaatleja

liitunud: 09.09.2003




sõnum 03.10.2008 15:32:16 palun php meilivormi abi - ühe välja info ei jõua kohale vasta tsitaadiga

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>&nbsp;</td>
         </tr>
         </form>
      </table>
<?php
   }
?>
tagasi üles
vaata kasutaja infot saada privaatsõnum
tooming
HV vaatleja
tooming

liitunud: 19.03.2007




sõnum 03.10.2008 15:43:54 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 03.10.2008 15:44:24 vasta tsitaadiga

sa ei sisesta seda ju kuhugi (emaili) ?
Kommentaarid: 85 loe/lisa Kasutajad arvavad:  :: 0 :: 2 :: 78
tagasi üles
vaata kasutaja infot saada privaatsõnum
adept+
HV vaatleja

liitunud: 09.09.2003




sõnum 03.10.2008 16:56:10 vasta tsitaadiga

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 icon_smile.gif

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
vaata kasutaja infot saada privaatsõnum
Valdars
HV veteran
Valdars

liitunud: 22.02.2003




sõnum 03.10.2008 16:56:37 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
adept+
HV vaatleja

liitunud: 09.09.2003




sõnum 03.10.2008 17:43:09 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
mikk36
HV Guru
mikk36

liitunud: 21.02.2004




sõnum 03.10.2008 20:09:10 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
aatomik
HV kasutaja
aatomik

liitunud: 30.11.2005




sõnum 03.10.2008 20:31:36 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
gynterk
HV kasutaja

liitunud: 17.01.2004




sõnum 07.10.2008 13:35:51 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
adept+
HV vaatleja

liitunud: 09.09.2003




sõnum 09.10.2008 12:27:51 kõikide täitmata väljade veatedete väljastamine korraga vasta tsitaadiga

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 icon_sad.gif

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
vaata kasutaja infot saada privaatsõnum
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 09.10.2008 12:48:17 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
oicu
HV kasutaja

liitunud: 23.11.2006




sõnum 09.10.2008 13:04:33 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
adept+
HV vaatleja

liitunud: 09.09.2003




sõnum 09.10.2008 14:11:54 vasta tsitaadiga

aitäh andrusny icon_smile.gif 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
vaata kasutaja infot saada privaatsõnum
oicu
HV kasutaja

liitunud: 23.11.2006




sõnum 09.10.2008 15:41:37 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 09.10.2008 18:18:31 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
adept+
HV vaatleja

liitunud: 09.09.2003




sõnum 10.10.2008 11:14:01 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
oicu
HV kasutaja

liitunud: 23.11.2006




sõnum 10.10.2008 11:29:51 vasta tsitaadiga

kood tuleb lühem ja on paremini loetavam. imho
Kommentaarid: 9 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 9
tagasi üles
vaata kasutaja infot saada privaatsõnum
Valdars
HV veteran
Valdars

liitunud: 22.02.2003




sõnum 10.10.2008 11:38:26 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
oicu
HV kasutaja

liitunud: 23.11.2006




sõnum 10.10.2008 11:40:26 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
adept+
HV vaatleja

liitunud: 09.09.2003




sõnum 10.10.2008 12:58:54 välju juurde vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  WWW »  palun php meilivormi abi - ühe välja info ei jõua kohale
[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.