Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Emailform.php

Sivun loppuun

jhh [12.12.2012 08:47:23]

#

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

samip [12.12.2012 11:49:17]

#

https://www.php.net/mail

Nimi <user@example.com>

jos nyt oikein tajusin.

jhh [12.12.2012 12:15:25]

#

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&auml;hk&ouml;posti:</label><br/>
	<input name="email" id="email" type="text"/><br/>
	<label for="lahiosoite">L&auml;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!

samip [12.12.2012 12:35:22]

#

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

jhh [12.12.2012 13:17:04]

#

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);

Grez [12.12.2012 13:50:26]

#

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)

dartvaneri [12.12.2012 14:00:33]

#

Koetappa selittää vähän tarkemmin ongelmasi.

Voit kokeilla seuraavaa koodia viidenneksi parametriksi:

-f from@email.com

jhh [12.12.2012 14:44:14]

#

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?

samip [12.12.2012 15:18:45]

#

Viimeisen rivin viimeinen piste turha, muuten näyttää suurinpiirtein oikealta. Suosittelen testaamaan tuotostasi.

jhh [13.12.2012 08:16:57]

#

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 =)

if(isset($_REQUEST['email']) && !empty($_REQUEST['email'])) {$from = $_REQUEST['nimi'];} else {$from = $my_email;}

Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta