Avaleht
uus teema   vasta Tarkvara »  WWW »  E-maili saatmise scripti vaja? 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:  
sakunne
HV veteran
sakunne

liitunud: 15.12.2004




sõnum 16.06.2009 15:30:00 E-maili saatmise scripti vaja? vasta tsitaadiga

Oleks siis vaja sellist scripti, mis töötaks ka ja kontrolliks, kontrolliks aadressi ja puha icon_rolleyes.gif
PHP Centeris on üks üleval, a'see ei tööta ja ise ma nii vinge mees ei ol, et sellise kirjutamisega hakkama saaksin
icon_cry.gif
Kommentaarid: 77 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 69
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 16.06.2009 17:39:08 vasta tsitaadiga

See on ka kusagilt netist saadud, suht vinge kood. On sisestuskontrollid ja töötab. Ma hästi ei usu, et PHP centri kood ei funka. Äkki sul server ei toeta üldse kirja saatmist?

<?php
if (!isset($_POST['submit']) || $_SERVER['REQUEST_METHOD'] != "POST") {
    exit("<p>You did not press the submit button; this page should not be accessed directly.</p>");
} else {
    $exploits = "/(content-type|bcc:|cc:|document.cookie|onclick|onload|javascript|alert)/i";
    $profanity = "/(beastial|bestial|blowjob|clit|cock|cum|cunilingus|cunillingus|cunnilingus|cunt|ejaculate|fag|felatio|fellatio|piix|fuk|fuks|gangbang|gangbanged|gangbangs|hotsex|jism|jiz|kock|kondum|kum|kunilingus|orgasim|orgasims|orgasm|orgasms|phonesex|phuk|phuq|porn|pussies|pussy|spunk|xxx|nude|adult)/i";   
   
   $spamwords = "/(viagra|phentermine|tramadol|adipex|advai|alprazolam|ambien|ambian|amoxicillin|antivert|blackjack|backgammon|texas|holdem|poker|carisoprodol|ciara|ciprofloxacin|debt|dating|porn)/i";
    $bots = "/(Indy|Blaiz|Java|libwww-perl|Python|OutfoxBot|User-Agent|PycURL|AlphaServer)/i";

    if (preg_match($bots, $_SERVER['HTTP_USER_AGENT'])) {
        exit("<p>Known spam bots are not allowed.</p>");
    }
    foreach ($_POST as $key => $value) {
        $value = trim($value);

        if (empty($value)) {
            exit("<p>Empty fields are not allowed. Please go back and fill in the form properly.</p>");
        } elseif (preg_match($exploits, $value)) {
            exit("<p>Exploits/malicious scripting attributes aren't allowed.</p>");
        } elseif (preg_match($profanity, $value) || preg_match($spamwords, $value)) {
            exit("<p>That kind of language is not allowed through our form.</p>");
        }

        $_POST[$key] = stripslashes(strip_tags($value));
    }

    if (!ereg("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,6})$",strtolower($_POST['email']))) {
        exit("<p>That e-mail address is not valid, please use another.</p>");
    }

    $recipient = "mina@server.ee";
    $subject = "Kontaktivormilt saadetud kiri";

    $message = "Teile saabus e-maili vormi kaudu kiri veebilehelt : \n";
    $message .= "Nimi: {$_POST['name']} \n";
    $message .= "E-mail: {$_POST['email']} \n";
 
    $message .= "Sisu: {$_POST['comments']} \n";

    $headers = "From: veebilehelt<$recipient> \n";
    $headers .= "Reply-To: <{$_POST['email']}>";

    if (mail($recipient,$subject,$message,$headers)) {
        echo "<p>Thank you! Your mail was successfully sent. Thank you for your time.</p>";
    } else {
        echo "<p>Sorry, there was an error and your mail was not sent. Please find an alternative method of contacting.</p>";
    }
}
?>

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

liitunud: 15.12.2004




sõnum 17.06.2009 16:00:52 vasta tsitaadiga

andrusny kirjutas:
See on ka kusagilt netist saadud, suht vinge kood. On sisestuskontrollid ja töötab. Ma hästi ei usu, et PHP centri kood ei funka. Äkki sul server ei toeta üldse kirja saatmist?
Joomla vormilt laaseb küll saata icon_eek.gif
Sinu kood annab sellise kirja:
You did not press the submit button; this page should not be accessed directly.
PHP centeri kood on siuke:
<?php
   $mailiaadress = "mina@server.ee";
   $error = "";

   if ($saadanupp) {

        if (preg_match ("/\r|\n/", $epostiaadress) || preg_match ("/\r|\n/", $nimi)) {
            $error = "Vigane e-posti aadress või nimi!";
        }

      if (!strlen ($kommentaar)) {
         $error = "Tekst on vajalik!";
      }

      if (!strlen ($epostiaadress)) {
         $error = "Teie murele vastamisks on e-mail vajalik!";
      } else if (!preg_match ("/^.+@.+\$/", $epostiaadress)) {
         $error = "E-posti aadress ei ole päris õige!";
      }

        if ($verify != 'verified') {
            if ($verify == 'not_verified') {
                $error = 'Palun aktiveerige JavaScript!';
            }
        }

      if (!$error) {
         mail($mailiaadress, "Tagasiside vormi kommentaar", "$kommentaar", "From: $nimi <$epostiaadress>");
?>
         <br><br><table border="1" bordercolor="<? echo $border_color; ?>" cellspacing="0" cellpadding="2" width="450">
            <tr>
               <td><center><b>Täname, võtame ühendust kolme (3) päeva jooksul!</b></center></td>
            </tr>
         </table>

<?php
      }
   }

   if ($error)
   {
?>
      <br><br><table border="1" bordercolor="<? echo $border_color; ?>" cellspacing="0" cellpadding="2" width="450">
         <tr bgcolor="red">
            <td><b>Viga!!!</b><br><?php echo $error; ?></td>
         </tr>
      </table>
<?php
   }


   if (!$saadanupp)
   {
?>
      <br><br><table border="1" bordercolor="<? echo $border_color; ?>" cellspacing="0" cellpadding="2" width="450">
         <form action="?action=tagasiside" method="post" onsubmit="this.verify.value='verified';">
         <input type="hidden" name="verify" value="not_verified">
         <tr><td width=115>
                  Sinu e-mail
             </td>
             <td width=335>
                  <input type="text" name="epostiaadress" size="40">
             </td>
         <tr><td width=115>
                  Sinu nimi
             </td>
             <td width=335>
                  <input type="text" name="nimi" size="40">
             </td>
         <tr><td width=115>
                  Tekst
             </td>
             <td width=335>
                  <textarea name="kommentaar" rows="5" cols="40"></textarea>
             </td>
         <tr><td colspan="2">
                  <center><input type="submit" name="saadanupp" value="Saada kiri"></center>
             </td>
         </tr>
         </form>
      </table>
<?php
   }
?>

Muarust seal midagi kirjeldamata jäänd:

<form action="?action=tagasiside" method="post" onsubmit="this.verify.value='verified';"
Kommentaarid: 77 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 69
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 17.06.2009 18:00:51 vasta tsitaadiga

!isset($_POST['submit'])

Nupu name peab submit olema.

PHP centri koodis on arvestatud, et global muutujad on sisse lülitatud. Enamustes serverites uuemal ajal see nii ei ole.
Pead kõiki väärtused $_POST abil sisse lugema, siis peaks toimima.

if ($saadanupp) {

sea $saadanupp väärtust pole ja ta ei hakkagi tööle. Pead enne seda rida lisama

$saadanupp = $_POST[saadanupp];

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

liitunud: 15.12.2004




sõnum 18.06.2009 16:35:36 vasta tsitaadiga

andrusny kirjutas:
!isset($_POST['submit'])

Nupu name peab submit olema.
Kuhu ma selle lisan, nupu nimi 'saadanupp' ju - tundub, et ma lollim, kui oskasin arvata icon_redface.gif
Kommentaarid: 77 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 69
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
andrusny
Kreisi kasutaja
andrusny

liitunud: 20.03.2006




sõnum 18.06.2009 17:10:41 vasta tsitaadiga

See on minu koodi kohta, nupu nimi peab olema submit, et asi tööle läheks. Muudad lihtsalt ära selle saadanupp asemele kirjutad submit.
_________________
Kommentaarid: 7 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 7
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  WWW »  E-maili saatmise scripti vaja?
[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.