Contactformulier

Status
Niet open voor verdere reacties.
Is het mogelijk om een contactformulier toe te voegen aan een forum
Dus daarmee bedoel ik een formulier waar men vb een titel kan invullen en daaronder een groter vak voor de uitleg
eventueel een vak waar hun e-mailadres in komt en dan een knop waar men moet op klikken om te verzenden en het bericht word dat automatisch verzonden naar mijn e-mail adres.

Is dat mogelijk? zo ja hoe doe ik dat en hoe kan ik zo'n pagina maken ?
 
Dit is mogelijk met bijvoorbeeld PHP. Je moet wel gebruik kunnen maken van een mailserver bij de Hostingprovider en deze moet ook PHP ondersteunen.

Belangrijk is om eerst te weten wat je precies wilt, omdat elke verandering een verandering betekend in het PHP script.

Ik zal hier een deel neerzetten van wat ik laatst geschreven heb. Kijk er eens naar wat het doet.
Het zijn 2 PHP bestanden die in 1 map geplaatst dienen te worden. Makr een link op de website naar sollicitatie.php en als het goed is zie je een invulblad. Dit bestand is kompleet met reguliere expressies, dus er moeten juiste gegevens worden ingevuld.

Bijna onderin het bestand post.php staat deze regel: $mailadres = "jouwemailadres@provider.be";
Hier moet je jouw eigen emaildres invullen en het formulier zal hier naartoe verzonden worden.

Hier komen de 2 scripts en dienen als .php opgeslagen te worden:

Het eerste moet je noemen sollicitatie.php
PHP:
<title>Sollicitatieformulier</title>
 
<body>
<h1><font face="Arial">Sollicitatieformulier</font></h1>
<font size="4" face="Arial">Wil je vrijwilliger worden, vul dan onderstaand formulier in en je krijgt zo snel mogelijk een antwoord.
</font>
<form name="form1" method="post" action="post.php">
<table width="100%" id="table1" border="6">
<tr>
<td width="20%"> <font size="4" face="Arial">Uw naam: </font> </td>
<td width="80%">
<input name="naam" type="text" value"" size="26"> </td>
<br>
</tr>
<tr>
<td width="20%"> <font size="4" face="Arial">Uw woonplaats: </font> </td>
<td width="80%"> <input name="woonplaats" type="text" value"" size="26"> </td>
<br>
</tr>
<tr>
<td width="20%"> <font size="4" face="Arial">Telefoonnummer: </font> </td>
<td width="80%"> <input name="telefoonnummer" type="text" value"" size="26"></td>
<br>
</tr>
<tr>
<td width="20%"> <font size="4" face="Arial">E-mail: </font> </td>
<td width="80%"> <input name="email" type="text" value=""size="26"> </td>
</tr>
<tr>
<td width="20%"> <font size="4" face="Arial">Vacature </font> </td>
<td width="80%"> <select name="vacatures">
<option>(Verschillende vacatures)</option>
<option value="barmedewerker"> Barmedewerker</option>
<option value="keukenmedewerker">Keukenmedewerker</option>
<option value="terreinmedewerker">Terreinmedewerker</option>
<option value="weekendhulp">Weekendhulp</option>
</select> </td>
</tr>
<tr>
<td width="20%"> <font size="4" face="Arial">Voorkeursdag </font> </td>
<td width="80%"> <select name="dag">
<option>(Geef de voorkeur dag)    </option>
<option value="zaterdag">Zaterdag</option>
<option value="zondag">Zondag</option>
<option value="zaterdag en zondag">Zaterdag en Zondag</option>
</select> </td>
</tr>
<tr>
<td width="20%"> <font size="4" face="Arial">Geef de voorkeur tijd </font> </td>
<td width="80%"> <select name="werktijd">
<option>(Geef de voorkeur tijd)      </option>
<option value="ochtend">Ochtend</option>
<option value="middag">Middag</option>
<option value="avond">Avond</option>
<option value="ochtend / middag">Ochtend / Middag</option>
<option value="middag / avond">Middag / Avond</option>
<option value="ochtend / avond">Ochtend / Avond</option>
<option value="gehele dag">Gehele dag</option>
</select> </td>
</tr>
<tr>
<td width="20%"> <font size="4" face="Arial">Bijzonderheden </font> </td>
<td width="80%"> <textarea name="bericht" rows="7" cols="45"></textarea><br>
 
</table>
<p align="center">
<br><input type="submit" name="Submit" value="Verzenden" style="float: left"> 
 
</p>
 
</form>
=======================================================================

Hier is de code van het tweede bestand en moet je opslaan als post.php

PHP:
<?php
function valid_name ($str) {
return (ereg ('^[A-Za-z. -]+$', $str));
}
function valid_woonplaats ($str) {
return (ereg ('^[A-Za-z. -]+$', $str));
}
function checktelefoon($telefoonnummer) {
$telefoon = ereg_replace("[^0-9]", "", $telefoonnummer);
return (ereg('^[0-9]{10}$', $telefoonnummer));
}
 
function valid_mail ($email) {
return (ereg ('(^[A-Za-z0-9._\-]+\@[A-Za-z0-9._\-]+\.[A-Za-z]{2,4}$)', $email));
}
 
?>
<?php
$naam = htmlspecialchars($_POST['naam']);
$woonplaats = htmlspecialchars($_POST['woonplaats']);
$telefoonnummer = htmlspecialchars($_POST['telefoonnummer']);
$email = htmlspecialchars($_POST['email']);
$vacatures = htmlspecialchars($_POST['vacatures']);
$dag = htmlspecialchars($_POST['dag']);
$werktijd = htmlspecialchars($_POST['werktijd']);
$bericht = htmlspecialchars($_POST['bericht']);
 
 
if (!valid_name($naam)) {
$naam = htmlspecialchars($_POST['naam']);
$naam = ucfirst($naam);
if (!valid_name($naam)) {
}
echo"U heeft geen naam of de naam ".$naam." niet op de juiste manier ingevoerd.";
?>
<br><A HREF="javascript:javascript:history.go(-1)"><b><big>Klik hier </big></b></A> om naar de <b><u>vorige</u></b><u></u> pagina terug te gaan
<?php
exit; }
if (!valid_woonplaats($woonplaats)) {
$naam = htmlspecialchars($_POST['woonplaats']);
$naam = ucfirst($woonplaats);
if (!valid_woonplaats($woonplaats)) {
}
echo "U heeft geen of geen juiste woonplaats ingevuld!";
?>
<br><A HREF="javascript:javascript:history.go(-1)"><b>Klik hier</b><big></big> </A> om naar de <b>vorige</b><u></u> pagina terug te gaan
<?php
exit; }
if(checktelefoon($_POST['telefoonnummer']) == 0)
{
echo "U heeft geen geldig telefoonnummer ingevuld!<br />Een geldig telefoonnummer bestaat uit 10 cijfers!<br />";
 
?>
<br><A HREF="javascript:javascript:history.go(-1)"><b>Klik hier </b><big></big></A> om naar de <b>vorige</b><u></u> pagina terug te gaan
<?php
exit; }
?>
 
<?php
if (!valid_mail($email)) {
echo "U heeft geen geldig e-mailadres ingevuld!";
?>
<br><A HREF="javascript:javascript:history.go(-1)"><b>Klik hier </b><big></big></A> om naar de <b>vorige</b><u></u> pagina terug te gaan
<?php
exit; }
 
else {
$tijd = time();
$datum = strftime("%d/%m/%y %H:%M", $tijd);
$message = "" . $naam . " met het e-mailadres " . $email . " stuurde op $datum het volgende bericht:
____________________________________
Ik wil graag als vijwilliger werken als " . $vacatures . "
Ik woon in " . $woonplaats . "
Mijn telefoonnummer is : " . $telefoonnummer . "
Ik ben beschikbaar op " . $dag . " "." " . $werktijd . "
Bijzonderheden: " . $bericht . "
 
------------------------------------";
$mailadres = "jouwemailadres@provider.be";
$message = str_replace ("<br>","\n", $message);
mail("$mailadres", "Vacature $vacatures", //Onderwerp bericht
$message, "From: " . $email . ""); //Van
echo "Uw bericht is verzonden. U krijgt zo snel mogelijk antwoord.";
?>
<?php
}
?>
 
Laatst bewerkt door een moderator:
Ik heb het php stuk aangepast aangezien ereg niet meer wordt ondersteund door php 5.
Je kan daar ook preg-match voor gebruiken heb het aangepast.

PHP:
<?php 

function valid_name ($naam) { 
return (preg_match ('^[A-Za-z. -]+$', $naam)); 
} 
function valid_woonplaats ($woonplaats) { 
return (preg_match ('^[A-Za-z. -]+$', $woonplaats)); 
} 
function checktelefoon($telefoonnummer) { 
return (preg_match('^[0-9]{10}$', $telefoonnummer)); 
} 
  
function valid_mail ($email) { 
return (preg_match('(^[A-Za-z0-9._\-]+\@[A-Za-z0-9._\-]+\.[A-Za-z]{2,4}$)', $email)); 
} 
  
?> 
<?php 
$naam           = htmlspecialchars($_POST['naam']); 
$woonplaats     = htmlspecialchars($_POST['woonplaats']); 
$telefoonnummer = htmlspecialchars($_POST['telefoonnummer']); 
$email          = htmlspecialchars($_POST['email']); 
$vacatures      = htmlspecialchars($_POST['vacatures']); 
$dag            = htmlspecialchars($_POST['dag']); 
$werktijd       = htmlspecialchars($_POST['werktijd']); 
$bericht        = htmlspecialchars($_POST['bericht']); 
  
  
if (!valid_name($naam)) { 
    $naam = htmlspecialchars($_POST['naam']); 
    $naam = ucfirst($naam); 
if (!valid_name($naam)) { 
} 
echo"U heeft geen naam of de naam ".$naam." niet op de juiste manier ingevoerd."; 
?> 
<br><A HREF="javascript:javascript:history.go(-1)"><b><big>Klik hier </big></b></A> om naar de <b><u>vorige</u></b><u></u> pagina terug te gaan 
<?php 
exit; } 
if (!valid_woonplaats($woonplaats)) { 
$naam = htmlspecialchars($_POST['woonplaats']); 
$naam = ucfirst($woonplaats); 
if (!valid_woonplaats($woonplaats)) { 
} 
echo "U heeft geen of geen juiste woonplaats ingevuld!"; 
?> 
<br><A HREF="javascript:javascript:history.go(-1)"><b>Klik hier</b><big></big> </A> om naar de <b>vorige</b><u></u> pagina terug te gaan 
<?php 
exit; } 
if(checktelefoon($_POST['telefoonnummer']) == 0) 
{ 
echo "U heeft geen geldig telefoonnummer ingevuld!<br />Een geldig telefoonnummer bestaat uit 10 cijfers!<br />"; 
  
?> 
<br><A HREF="javascript:javascript:history.go(-1)"><b>Klik hier </b><big></big></A> om naar de <b>vorige</b><u></u> pagina terug te gaan 
<?php 
exit; } 
?> 
  
<?php 
if (!valid_mail($email)) { 
echo "U heeft geen geldig e-mailadres ingevuld!"; 
?> 
<br><A HREF="javascript:javascript:history.go(-1)"><b>Klik hier </b><big></big></A> om naar de <b>vorige</b><u></u> pagina terug te gaan 
<?php 
exit; } 
  
else { 
$tijd = time(); 
$datum = strftime("%d/%m/%y %H:%M", $tijd); 
$message = "" . $naam . " met het e-mailadres " . $email . " stuurde op $datum het volgende bericht: 
____________________________________ 
Ik wil graag als vijwilliger werken als " . $vacatures . " 
Ik woon in " . $woonplaats . " 
Mijn telefoonnummer is : " . $telefoonnummer . " 
Ik ben beschikbaar op " . $dag . " "." " . $werktijd . " 
Bijzonderheden: " . $bericht . " 
  
------------------------------------"; 
$mailadres = "jouwemailadres@provider.be"; 
$message = str_replace ("<br>","\n", $message); 
mail("$mailadres", "Vacature $vacatures", //Onderwerp bericht 
$message, "From: " . $email . ""); //Van 
echo "Uw bericht is verzonden. U krijgt zo snel mogelijk antwoord."; 
?> 
<?php 
} 
?>
 
Bedankt en trouwens ook voor het netter maken van het stukje code in het post bestand.
Bij de meeste hostingproviders kun je trouwens gebruikmaken van zowel PHP4 als PHP5.
 
alles een beetje eigenlijk

dus wil een contactformulier waar er vb bovenaan een veld is met titel
daaronder een veld waar men alles kan plaatsen wat men moet vragen en dan daaronder een knop verzenden
Ik ken der dus eigenlijk niets van e van php
 
Het formulier staat er al.
je hoeft alleen de veld namen an te passen.

ik kan me goed voorstellen dat het erg verwarrend is van in een phpcode te kijken als je niet gewend bent van dat dagelijks op het toilet te doen :p

ik ben er echter zeker van dat als je rustig je tijd neemt om de code door te lezen je vindt wat Pluis en Butterfly bedoelden (lachen)
 
Om het makkelijk voor je te maken heb ik het helemaal aangepast zodat je alleen nog je email adres mag aanpassen deze dan naar de server uplaoden en via je forum een link maken naar de pagina
Bestand opslaan als premail.php
PHP:
<?php
/*
 *
 * @Author Butterflyice
 * @Date    07-01-2011 
 * @For PCtuts 
 *  
 */



function validMail ($str) {
    return  (preg_match ('(^[0-9a-zA-Z_\.-]{1,}@([0-9a-zA-Z_\-]{1,}\.)+[0-9a-zA-Z_\-]{2,}$)', $str));
}
function validName ($str) {
    return  (preg_match('(^[A-Za-z. -]+$)', $str));
}

function validTitle ($str) {
    return  (preg_match('(^[A-Za-z. -]+$)', $str));
}
 // eerste letter omzetten naar Uppercase
$_POST["name"] = ucfirst($_POST["name"]);

// controle op de velden of ze ingevuld zijn en via een POST verstuurd.
if ($_SERVER['REQUEST_METHOD'] == 'POST' &&  $_POST["submit"] != "Verzenden"  || !validName($_POST["name"]) || !validMail($_POST["email"]) || !$_POST["message"] || !validTitle($_POST['title'])) {
	

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<title>Vraag het</title>
<style type="text/css">
    #wrapper {
        border:1px solid blue;
        width:400px
    }

    .red {
       color:red;
    }
    .green {
       color:green;
    }
</style>
</head>
<body>
<div id="wrapper">
<?php 
    // Fouten afvangen
    if($_POST["submit"]) { 
        echo "<div class=\"error\">Velden die rood zijn  gekleurd zijn fout in gevuld.</div>";         
    } 
?>
    <form method="post" action="premail.php" >
        <div><label>Naam:</label></div><input type="text" <?php if($_POST["submit"] && !validName($_POST["name"])) {echo 'class="red"'; }elseif(validName($_POST["name"])){echo 'class="green"'; }?>  value="<?php  echo $_POST["name"]; ?>" name="name"  /><br />
        <div><label>Email:</label></div><input type="text" <?php if($_POST["submit"] && !validMail($_POST["email"])) {echo 'class="red"'; }elseif(validMail($_POST["email"])){echo 'class="green"'; }?> value="<?php  echo $_POST["email"]; ?>" name="email" /><br />
        <div><label>Titel:</label></div><input type="text" <?php if($_POST["submit"] && !validTitle($_POST["title"])) {echo 'class="red"'; }elseif(validTitle($_POST["name"])){echo 'class="green"'; }?>  value="<?php  echo $_POST["name"]; ?>" name="title"  /><br />
        <div><label>Vraag:</label></div><textarea rows="5" cols="35" name="message"  <?php if($_POST["submit"] && !($_POST["message"])) {echo 'class="red"'; }elseif($_POST["message"]){echo 'class="green"'; }?>  ><?php  echo $_POST["message"]; ?></textarea>        <br />
        <div><label>  </label></div> <input type="submit" value="Verzenden" name="submit" /> <br />
    </form>
<?php 
	
} else {
	// Verzenden van het bericht
	$to = "jouwadres@domeinnaam"; // Vul hier je email adress
	$subject = "Vragen van af het forum";
	$message = "Vraag van Naam:" . $_POST['title'] ."\r\n"    
	. "Email:" . $_POST['email'] ."\r\n"	
    . "Titel :". $_POST['title'] ."\r\n"
	. "Vraag :". $_POST['message'] ."\r\n";
	$header = "FROM: ". $_POST['email'];

	mail($to,$subject, $message, $header);
    
   echo' <form method="post" action="premail.php" >
            <div><label>Naam:</label></div><input type="text"   value="" name="name"  /><br />
            <div><label>Email:</label></div><input type="text"  value="" name="email" /><br />
            <div><label>Titel:</label></div><input type="text"  value="" name="title" /><br />
            <div><label>Vraag:</label></div><textarea name="message" rows="" cols="" ></textarea>        <br />
            <div><label>  </label></div><input type="submit" value="Verzenden" name="submit" /> <br />
        </form>';
	echo "<h3>Bericht is succes vol verzonden bedankt voor uw bericht</h3>";
}
?>
   
        
        
</div>    
</body>
</html>

Suc6 er mee :p
 
nee nog niet kunnen proberen heb het ontzettend druk voor de moment
ga er proberen volgende week werk van e maken
mss nog 1 vraagje ,In welke map moet ik deze plaatsen
 
In de map waar ook de index in staat.
En als je het in de zelfde stijling wilt hebben kan je het ook in de style map zetten maar dan moet je meer doen.
Maar voor testen zou ik in de hoofdmap zetten.

suc6 er mee
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan