pošiljanje obrazca na email
6 naročnikov
6 naročnikov
Pozdravljeni!
Mene pa zanima kako nardiš da k maš na intrnetni strani kkšn obrazc za izpovnt da pol k kliknš pošlji da ti to pošle na mail.
14 odgovorov
//offtopic:
jaz prodajam knjige kjer so vsi taki primeri razloženi not - idealno za začetnike :)
En osnoven primer: http://www.phpeasystep.com/phptu/8.html
Poskusi tukaj pogledat kako zgleda reč
http://www.freecontactform.com/free.php
Ali pa pogooglaj
http://www.google.si/search?hl=sl&client=firefox-a&rls=org.mozilla%3Asl%3Aofficial&hs=E9q&q=free+php+contact+form&btnG=Iskanje&meta=&aq=f&oq=
Zanima me kako bi naredil, da bi pri spodnjem php obrazcu php ločil v drugo datoteko.
koda:
<?php
if ($POST["email"]<>'') {
$ToEmail = 'example@damain.com';
$EmailSubject = 'Site contact form ';
$mailheader = "From: ".$POST["email"]."\r\n";
$mailheader .= "Reply-To: ".$POST["email"]."\r\n";
$mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n";
$MESSAGEBODY = "Name: ".$POST["name"]."<br>";
$MESSAGEBODY .= "Email: ".$POST["email"]."<br>";
$MESSAGEBODY .= "Comment: ".nl2br($POST["comment"])."<br>";
mail($ToEmail, $EmailSubject, $MESSAGEBODY, $mailheader) or die ("Failure");
?>
Your message was sent
<?php
} else {
?>
<form action="test.php" method="post">
<table width="400" border="0" cellspacing="2" cellpadding="0">
<tr>
<td width="29%" class="bodytext">Your name:</td>
<td width="71%"><input name="name" type="text" id="name" size="32"></td>
</tr>
<tr>
<td class="bodytext">Email address:</td>
<td><input name="email" type="text" id="email" size="32"></td>
</tr>
<tr>
<td class="bodytext">Comment:</td>
<td><textarea name="comment" cols="45" rows="6" id="comment" class="bodytext"></textarea></td>
</tr>
<tr>
<td class="bodytext"> </td>
<td align="left" valign="top"><input type="submit" name="Submit" value="Send"></td>
</tr>
</table>
</form>
<?php
};
?>
sem že probaval da bi naredil pri action povezavo na drugo datoteko kjer bi bil le zgornji php (do "Your message was sent") pa ni delovalo. :(
tole daš v naprimer sent_email.php
<?php
$ToEmail = 'example@damain.com';
$EmailSubject = 'Site contact form ';
$mailheader = "From: ".$_POST["email"]."\r\n";
$mailheader .= "Reply-To: ".$_POST["email"]."\r\n";
$mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n";
$MESSAGE_BODY = "Name: ".$_POST["name"]."<br>";
$MESSAGE_BODY .= "Email: ".$_POST["email"]."<br>";
$MESSAGE_BODY .= "Comment: ".nl2br($_POST["comment"])."<br>";
mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure");
print "Your message was sent";
?>
Tole daš v email.php
<form action="sent_email.php" method="post">
<table width="400" border="0" cellspacing="2" cellpadding="0">
<tr>
<td width="29%" class="bodytext">Your name:</td>
<td width="71%"><input name="name" type="text" id="name" size="32"></td>
</tr>
<tr>
<td class="bodytext">Email address:</td>
<td><input name="email" type="text" id="email" size="32"></td>
</tr>
<tr>
<td class="bodytext">Comment:</td>
<td><textarea name="comment" cols="45" rows="6" id="comment" class="bodytext"></textarea></td>
</tr>
<tr>
<td class="bodytext"> </td>
<td align="left" valign="top"><input type="submit" name="Submit" value="Send"></td>
</tr>
</table>
</form>
Poskusi in sporoči
Hvala Gogy zdei dela :) Me pa še zanima če kdo ve kako bi naredu da bi se obvestilo (Your message was sent) izpisalo v div-u pod formo?
saj celotno kodo lahko postaviš v ta div o katerem govoriš :)
Bodi pa pozoren pri tej skripti, saj jo brez težav izrabijo za razpošiljanje spam-a s tvojega naslova ali pa vsaj tvojega IP naslova :) tvoja skripta je na ravni aplikacije LuknjaTM
Preveri, če je $_POST["email"] res email.
function isEmail($email) {
return eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $email);
}
Ker header emaila sestavljaš s $_POST spremenljivko, lahko kdorkoli "dopolni" email header z dodatnimi CC, BCC emaili.
Še večja luknja bi pa bila, če bi imel $ToEmail = $POST["toemail"];
A mam prav? :)