contact form

Status
Niet open voor verdere reacties.

swen1997

Gebruiker
Lid geworden
7 apr 2012
Berichten
137
Beste helpmijer`s,

Ik wil graag een contact form zodat mensen die geen e-mail client op hun pc hebben wel een mail kunnen sturen.
het liefst in 1 bestand en met de volgende velden: E-Mail, Onderwerp en het bericht.
Veiligheid is niet echt belangrijk, er hoeft ook geen spam-bescherming op.

Alvast bedankt
 
Bedankt voor de snelle reacties, zodra ik thuis ben ga ik ze bekijken!
 
Hoi Sven,

Hier kunnen wij weinig mee, zet de broncode van de pagina hier eens neer.

Groeten,

Joop
 
[XML]<?php

// Clean up the input values
foreach($_POST as $key => $value) {
if(ini_get('magic_quotes_gpc'))
$_POST[$key] = stripslashes($_POST[$key]);

$_POST[$key] = htmlspecialchars(strip_tags($_POST[$key]));
}

// Assign the input values to variables for easy reference
$name = $_POST["name"];
$email = $_POST["email"];
$message = $_POST["message"];

// Test input values for errors
$errors = array();
if(strlen($name) < 2) {
if(!$name) {
$errors[] = "You must enter a name.";
} else {
$errors[] = "Name must be at least 2 characters.";
}
}
if(!$email) {
$errors[] = "You must enter an email.";
} else if(!validEmail($email)) {
$errors[] = "You must enter a valid email.";
}
if(strlen($message) < 10) {
if(!$message) {
$errors[] = "You must enter a message.";
} else {
$errors[] = "Message must be at least 10 characters.";
}
}

if($errors) {
// Output errors and die with a failure message
$errortext = "";
foreach($errors as $error) {
$errortext .= "<li>".$error."</li>";
}
die("<span class='failure'>The following errors occured:<ul>". $errortext ."</ul></span>");
}

// Send the email
$to = "swen-nijboer@hotmail.com";
$subject = "Contact Form: $name";
$message = "$message";
$headers = "From: $email";

mail($to, $subject, $message, $headers);

// Die with a success message
die("<span class='success'>Success! Your message has been sent.</span>");

// A function that checks to see if
// an email is valid
function validEmail($email)
{
$isValid = true;
$atIndex = strrpos($email, "@");
if (is_bool($atIndex) && !$atIndex)
{
$isValid = false;
}
else
{
$domain = substr($email, $atIndex+1);
$local = substr($email, 0, $atIndex);
$localLen = strlen($local);
$domainLen = strlen($domain);
if ($localLen < 1 || $localLen > 64)
{
// local part length exceeded
$isValid = false;
}
else if ($domainLen < 1 || $domainLen > 255)
{
// domain part length exceeded
$isValid = false;
}
else if ($local[0] == '.' || $local[$localLen-1] == '.')
{
// local part starts or ends with '.'
$isValid = false;
}
else if (preg_match('/\\.\\./', $local))
{
// local part has two consecutive dots
$isValid = false;
}
else if (!preg_match('/^[A-Za-z0-9\\-\\.]+$/', $domain))
{
// character not valid in domain part
$isValid = false;
}
else if (preg_match('/\\.\\./', $domain))
{
// domain part has two consecutive dots
$isValid = false;
}
else if(!preg_match('/^(\\\\.|[A-Za-z0-9!#%&`_=\\/$\'*+?^{}|~.-])+$/',
str_replace("\\\\","",$local)))
{
// character not valid in local part unless
// local part is quoted
if (!preg_match('/^"(\\\\"|[^"])+"$/',
str_replace("\\\\","",$local)))
{
$isValid = false;
}
}
if ($isValid && !(checkdnsrr($domain,"MX") || checkdnsrr($domain,"A")))
{
// domain not found in DNS
$isValid = false;
}
}
return $isValid;
}

?>[/XML]

Er zijn ook nog 4 js bestanden, heb je die ook nodig?
 
Hoi,

Dit is je procesform.php en daar moet op de eerste regel staan: <?php session_start(); ?><?php

Gaarne ook de html van de pagina waar het formulier staat.

Gr Joop
 
[XML]<!DOCTYPE HTML>
<html>
<head>
<title>Contact Form</title>

<link rel="stylesheet" href="style.css" type="text/css" />

<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.validate.min.js"></script>
<script type="text/javascript" src="js/jquery.form.js"></script>
<script type="text/javascript" src="js/contact.js"></script>
</head>
<body>
<div id="wrap">
<h1>Contact Sweetness</h1>
<form id="contactform" action="processForm.php" method="post">
<table>
<tr>
<td><label for="name">Name:</label></td>
<td><input type="text" id="name" name="name" /></td>
</tr>
<tr>
<td><label for="email">Email:</label></td>
<td><input type="text" id="email" name="email" /></td>
</tr>
<tr>
<td><label for="message">Message:</label></td>
<td><textarea id="message" name="message" rows="5" cols="20"></textarea></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Send!" id="send" /></td>
</tr>
</table>
</form>
<div id="response"></div>
</div>
</body>
</html>[/XML]

Ik zal het in de processForm aanpassen.
 
Hoi Swen,

De pagina geeft nogal wat fouten aan, de js codes staan wel goed en de form ook.

Er staat wel code buiten de body en de counter van dreamweaver staat op de verkeerde plek.

Controleer de pagina en het script met firebug (firefox) en dan zal alles wel goed werken.

Groeten,

Joop
 
Het ligt niet aan het script, uit de FAQ van Woelmuis.
Ook bieden we geen mailfaciliteiten, dit om te voorkomen dat we dit initiatief binnen enkele maanden alweer moeten staken vanwege misbruik door spammers.
Je krijgt waar je voor betaald zeg maar.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan