Moi!
Minulla tulee Emailformista lähetetty viesti sähköpostiin etunimi.sukunimeni otsikolla, miten saan siihen normaalisti Nimi-laatikon tiedot? Mulla on myös tuommoinen koodinpätkä Emailformissa, miten muutan stä että saan email-laatikon tiedot muutettua nimi-laatikon tiedoiksi?
// Build message.
$message = build_message($_REQUEST); $message = $message . PHP_EOL."-- ".PHP_EOL."Joopa joo".PHP_EOL."www.fi"; $message = stripslashes($message); if(isset($_REQUEST['email']) && !empty($_REQUEST['email'])) {$from = $_REQUEST['email'];} else {$from = $my_email;} $headers = 'From: ' . $from . PHP_EOL; $headers .= 'Content-Type: text/plain; charset='.$charset; mail($my_email,$subject,$message,$headers); header("Location:$location"); endif; ?>
Anteeksi että olisi sekavasti selitetty... =0
Ei vieläkään mene mun jakeluun, että minne kohtaan tuon lisää...
Voitko ystävällisesti vielä auttaa? Kiitos paljon...
ja tällainen koodi mulla on itse sivulla:
<div id="lomakelaatikko"> <div id="lomakebox"> <form action="emailform.php" method="post" id="lomake" name="Lomake" onsubmit="return formCheck(this);"> <label for="viesti">Mitä asianne koskee:</label> <br /> <textarea name="viesti" id="viesti" cols="46" rows="5"></textarea><br/> <label for="nimi">Nimi:</label> <br/> <input name="nimi" id="nimi" type="text"/><br/> <label for="puhelin">Puhelinnumero:</label><br/> <input name="puhelin" id="puhelin" type="text"/><br/> <label for="email">Sähköposti:</label><br/> <input name="email" id="email" type="text"/><br/> <label for="lahiosoite">Lähiosoite:</label><br/> <input name="lahiosoite" id="lahiosoite" type="text"/><br/> <label for="postinumero">Postinumero ja -toimipaikka:</label><br/> <input name="postinumero" id="postinumero" type="text"/><br/> <br/> <!--input type="submit" id="laheta" value="Lähetä" onclick="verify(lomake);"/--> <input class="laheta" value="Lähetä" type="submit" /> </form> </div> </div>
Mod. korjasi oikeat kooditagit!
Voi olla että käyn vähän hitaalla tänään, tai sitten selityksesi on puutteellista. Käsitin että haluat lähettää sähköpostia niin että viestissä on vastaanottajan nimi jolloin ensimmäisen koodin $subject muuttuja pitäisi muuttaa linkkini osoittamaan muotoon.
PS: kooditagit
Joo siis kotisivulta lähetetyssä ja sähköpostiin tulevassa viestissä pitäisi olla otsikossa tuo lähettäjän nimi, eikä emailin @-merkin edellä oleva teksti niin kuin on tällä hetkellä...
Kerro nyt vielä rautalangasta vääntäen, että miten tuon tekstin laitan tuohon:
mail($my_email,$subject,$message,$headers);
Eikö ihan PHP:n manuaalisivulta löytyvää (esim. tosta koodista kun klikkaa mail) esimerkkiä voisi soveltaa
<?php $to = 'nobody@example.com'; $subject = 'the subject'; $message = 'hello'; $headers = 'From: webmaster@example.com' . "\r\n" . 'Reply-To: webmaster@example.com' . "\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($to, $subject, $message, $headers); ?>
Tuohon vaan From: webmaster@example.com tilalle From: Nimi <user@example.com> (ja haluttaessa jättää pois nuo Reply-To ja X-Mailer tai muuttaa sopiviksi)
Koetappa selittää vähän tarkemmin ongelmasi.
Voit kokeilla seuraavaa koodia viidenneksi parametriksi:
-f from@email.com
Sorry, olen nyt oikeasti aika pihalla. Tässä koodia emailformista:
$my_email = "jhh@gmail.com"; # recipient email $location = "kiitos.html"; # page to redirect to $subject = "Yhteydenotto Oy:n kotisivuilta"; # set email subject name $charset = "iso-8859-1"; $headers = 'From: Nimi <user@example.com>' . "\r\n" .;
Näinkö se siis pitää laittaa? Ei vissiin?
Viimeisen rivin viimeinen piste turha, muuten näyttää suurinpiirtein oikealta. Suosittelen testaamaan tuotostasi.
Tässä koko emailform.php. Edelleen kun kotisivulta lähettää spostia, niin sähköpostilaatikon (Gmail) otsikossa lukee matti.meikalainen (kun siis olen lomakkeelle laittanut sähköpostikohtaan matti.meikalainen@meikalaiset.com).
Ja kun siinä pitäsi lukea nimi-kentän tietoa...
<?php $my_email = "jhh@gmail.com"; # recipient email $location = "kiitos.html"; # page to redirect to $subject = "Yhteydenotto Oy:n kotisivuilta"; # set email subject name $charset = "iso-8859-1"; $headers = 'From: Nimi <user@example.com>' . "\r\n"; $errors = array(); // Remove $_COOKIE elements from $_REQUEST. if(count($_COOKIE)){foreach(array_keys($_COOKIE) as $value){unset($_REQUEST[$value]);}} // Check all fields for an email header. function recursive_array_check_header($element_value) { global $set; if(!is_array($element_value)){if(preg_match("/(%0A|%0D|\n+|\r+)(content-type:|to:|cc:|bcc:)/i",$element_value)){$set = 1;}} else { foreach($element_value as $value){if($set){break;} recursive_array_check_header($value);} } } recursive_array_check_header($_REQUEST); if($set){$errors[] = "Header tietueita ei voi muokata";} unset($set); // Validate email field. if(isset($_REQUEST['email']) && !empty($_REQUEST['email'])) { if(preg_match("/(%0A|%0D|\n+|\r+|:)/i",$_REQUEST['email'])){$errors[] = "Tarkista sähköposti-osoitteen oikeinkirjoitus";} $_REQUEST['email'] = trim($_REQUEST['email']); if(substr_count($_REQUEST['email'],"@") != 1 || stristr($_REQUEST['email']," ")){$errors[] = "Tarkista sähköposti-osoitteen oikeinkirjoitus";}else{$exploded_email = explode("@",$_REQUEST['email']);if(empty($exploded_email[0]) || strlen($exploded_email[0]) > 64 || empty($exploded_email[1])){$errors[] = "Tarkista sähköposti-osoitteen oikeinkirjoitus";}else{if(substr_count($exploded_email[1],".") == 0){$errors[] = "Tarkista sähköposti-osoitteen oikeinkirjoitus";}else{$exploded_domain = explode(".",$exploded_email[1]);if(in_array("",$exploded_domain)){$errors[] = "Tarkista sähköposti-osoitteen oikeinkirjoitus";}else{foreach($exploded_domain as $value){if(strlen($value) > 63 || !preg_match('/^[a-z0-9-]+$/i',$value)){$errors[] = "Tarkista sähköposti-osoitteen oikeinkirjoitus"; break;}}}}}} } // Check referrer is from same site. if(!(isset($_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER']) && stristr($_SERVER['HTTP_REFERER'],$_SERVER['HTTP_HOST']))){$errors[] = "You must enable referrer logging to use the form";} // Check for a blank form. function recursive_array_check_blank($element_value) { global $set; if(!is_array($element_value)){if(!empty($element_value)){$set = 1;}} else { foreach($element_value as $value){if($set){break;} recursive_array_check_blank($value);} } } recursive_array_check_blank($_REQUEST); if(!$set){$errors[] = "Tarkista kentät ja lähetä viesti uudelleen";} unset($set); function build_message($request_input){if(!isset($message_output)){$message_output ="";}if(!is_array($request_input)){$message_output = $request_input;}else{foreach($request_input as $key => $value){if(!empty($value)){if(!is_numeric($key)){$message_output .= str_replace("_"," ",ucfirst($key)).": ".build_message($value).PHP_EOL.PHP_EOL;}else{$message_output .= build_message($value).", ";}}}}return rtrim($message_output,", ");} // Display any errors and exit if errors exist. if(count($errors)): foreach($errors as $error) { echo "<script language=\"JavaScript\"><!--\n"."alert(\"Virhe lomakkeessa: ".$error."\");\n"."history.back();\n"."// --></script>"; } exit; else: // Build message. $message = build_message($_REQUEST); $message = $message . PHP_EOL."-- ".PHP_EOL."Rakentamisen ja saneerauksen ammattilainen - Oy".PHP_EOL."www.fi"; [koodiphp] $message = stripslashes($message); if(isset($_REQUEST['email']) && !empty($_REQUEST['email'])) {$from = $_REQUEST['email'];} else {$from = $my_email;} $headers = 'From: ' . $from . PHP_EOL; $headers .= 'Content-Type: text/plain; charset='.$charset; mail($my_email,$subject,$message,$headers); header("Location:$location"); endif; ?>
Lisäys:
Homma on nyt kunnossa... Kyllä oli pienestä taas kiinni =)
Aihe on jo aika vanha, joten et voi enää vastata siihen.