Archief - Formulier verzenden naar mail

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

nigel555

Legacy Member
dus best 9livers ;)

Ik ben eerlijk PHP is niet iets waar ik goed in ben. HTML CSS geen probleem maar de php is een probleem.

Dus ik zit met het volgende dilema. Namelijk wil ik dat men een formulier invult en daarna op verzenden klikt. En dan zou ik dit formulier moeten ontvangen in mijn mailbox.
Nu ik heb hier wat opzoekwerk voor gedaan en dit zou lukken met PHP.

Dit is de code die ik gebruik:
Code:
		<form method="post" name="myemailform" action="form-to-email.php">
	<p>
		<label for='name'>Enter Name: </label><br>
		<input type="text" name="name">
	</p>
	<p>
		<label for='email'>Enter Email Address:</label><br>
		<input type="text" name="email">
	</p>
	<p>
		<label for='message'>Enter Message:</label> <br>
		<textarea name="message"></textarea>
	</p>
	<input type="submit" name='submit' value="submit">
</form>
<script language="JavaScript">
// Code for validating the form
// Visit http://www.javascript-coder.com/html-form/javascript-form-validation.phtml
// for details
var frmvalidator  = new Validator("myemailform");
frmvalidator.addValidation("name","req","Please provide your name"); 
frmvalidator.addValidation("email","req","Please provide your email"); 
frmvalidator.addValidation("email","email","Please enter a valid email address"); 
</script>

met als php
Code:
<?php
if(!isset($_POST['submit']))
{
	//This page should not be accessed directly. Need to submit the form.
	echo "error; you need to submit the form!";
}
$name = $_POST['name'];
$visitor_email = $_POST['email'];
$message = $_POST['message'];

//Validate first
if(empty($name)||empty($visitor_email)) 
{
    echo "Name and email are mandatory!";
    exit;
}

if(IsInjected($visitor_email))
{
    echo "Bad email value!";
    exit;
}

$email_from = '[email protected]';//<== update the email address
$email_subject = "New Form submission";
$email_body = "You have received a new message from the user $name.\n".
    "Here is the message:\n $message".
    
$to = "[email protected]";//<== update the email address
$headers = "From: $email_from \r\n";
$headers .= "Reply-To: $visitor_email \r\n";
//Send the email!
mail($to,$email_subject,$email_body,$headers);
//done. redirect to thank-you page.
header('Location: http://hardpoint.net/rodeo');


// Function to validate against any email injection attempts
function IsInjected($str)
{
  $injections = array('(\n+)',
              '(\r+)',
              '(\t+)',
              '(%0A+)',
              '(%0D+)',
              '(%08+)',
              '(%09+)'
              );
  $inject = join('|', $injections);
  $inject = "/$inject/i";
  if(preg_match($inject,$str))
    {
    return true;
  }
  else
    {
    return false;
  }
}
   
?>

de namen zijn zeker correct. Maar het probleem is als ik het formulier invul en verstuur kom ik op de pagina van mijn .php document. En krijg ik de inhoud van mijn formulier niet in mijn mailbox :doh:


Dus als iemand mij kan helpen dan ben ik u zeker dankbaar :niceone:

edit= mail adres aangepast ^^

nigel555

Legacy Member
d-zilla zei:
moet er onder header('Location: http://hardpoint.net/rodeo'); geen exit(); staan?
Ik herinner me dat ik dat vroeger deed.

Zal ik eens testen.
binnen 5min weet zal ik het je weten te vertellen :niceone:

bedankt voor de hint ^^

edit,
net getest en dit geeft geen verschil weer jammer genoeg...

nigel555

Legacy Member
probleem is opgelost. Het probleem was dat mijn localhost op desktop moeilijk deed door nieuwe firewall die is geinstalleerd geweest. Dus kon php niet veel uitspoken ^^

mag gesloten worden :)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan