Gastenboek
Nu wil ik dit gastenboek gaan aanpassen zodat er een agenda functie ontstaat.
Dat omzetten lukt mij. De extra functie die ik er bij wil is dat het bericht dat geplaatst gaat worden in de agenda ook naar een mail adres gestuurd moet worden. Ik heb al een tweede script er in geplaatst met een mailfunctie dat vanuit een ander formulier prima werkt.
Kan iemand mij helpen om een aantal velden in een mail verstuurd kunnen worden.
Hieronder de pagina die nu als gastenboek functioneerd.
Het bericht wordt nu weggeschreven naar een txt file.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?
$amount=15;
if ($_GET['action']=='write') {
header('location: ag.php?action=read&start=0');
$file=fopen('agenda.txt','a');
$message=str_replace("\r",'',$message);
$message=str_replace("\n",'{{',$_GET['message']);
fwrite($file,$_GET['name'].'|||'.$_GET['email'].'|||'.date('d-m-Y').'|||'.$_GET['url'].'|||'.$message."\n");
fclose($file);
}
$start=(isset($_GET['start'])?$_GET['start']:0);
$agenda=Array();
$agenda=file('agenda.txt');
?>
$amount=15;
if ($_GET['action']=='write') {
header('location: ag.php?action=read&start=0');
$file=fopen('agenda.txt','a');
$message=str_replace("\r",'',$message);
$message=str_replace("\n",'{{',$_GET['message']);
fwrite($file,$_GET['name'].'|||'.$_GET['email'].'|||'.date('d-m-Y').'|||'.$_GET['url'].'|||'.$message."\n");
fclose($file);
}
$start=(isset($_GET['start'])?$_GET['start']:0);
$agenda=Array();
$agenda=file('agenda.txt');
?>
<SCRIPT language="JavaScript">
function validate(form) {
if (form.name.value=="") {
alert("Vul je naam in");
return false;
} else if (form.message.value=="") {
alert("Vul je bericht in");
return false;
}
}
</SCRIPT>
<P>
<TABLE width="100%" cellspacing="0" cellpadding="0" >
<TR>
<TD><b>Agenda</b><br></TD>
</TR>
</TABLE>
<TABLE width="100%" cellspacing="0" cellpadding="0">
<TR>
<TD class="side"> Berichten tot en met .
<HR> <TABLE width="100%" >
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?
$agenda=array_reverse($agenda);
for ($i=$start;$i<$start+$amount && $i<sizeof($agenda);$i++) {
list($name,$email,$date,$url,$message)=explode('|||',$agenda[$i]);
$message=str_replace('{{',"\n",$message);
echo '<TR><TD><B>'.($email!=""?'<A href="mailto:'.$email.'">'.$name.'</A>':$name).'</B></TD><TD align="right"><B>'.$date.'</B></TD></TR>'."\n";
echo ($url!=""?'<TR><TD colspan="2"><A href="'.$url.'" target="_blank">'.$url.'</A></TD></TR>':'')."\n";
echo '<TR><TD colspan="2"><SPAN>'.str_replace("\n",'<BR>',htmlspecialchars($message)).'</SPAN></TD></TR>'."\n";
echo '<TR><TD colspan="2"><HR></TD></TR>'."\n";
}
?>
$agenda=array_reverse($agenda);
for ($i=$start;$i<$start+$amount && $i<sizeof($agenda);$i++) {
list($name,$email,$date,$url,$message)=explode('|||',$agenda[$i]);
$message=str_replace('{{',"\n",$message);
echo '<TR><TD><B>'.($email!=""?'<A href="mailto:'.$email.'">'.$name.'</A>':$name).'</B></TD><TD align="right"><B>'.$date.'</B></TD></TR>'."\n";
echo ($url!=""?'<TR><TD colspan="2"><A href="'.$url.'" target="_blank">'.$url.'</A></TD></TR>':'')."\n";
echo '<TR><TD colspan="2"><SPAN>'.str_replace("\n",'<BR>',htmlspecialchars($message)).'</SPAN></TD></TR>'."\n";
echo '<TR><TD colspan="2"><HR></TD></TR>'."\n";
}
?>
</TABLE>
<CENTER>
Code (php)
</TR>
</TABLE>
<P>
<TABLE width="100%" cellspacing="0" cellpadding="0" >
<TR>
<TD class="side">Nieuw bericht</TD>
</TR>
</TABLE>
<TABLE width="100%" cellspacing="0" cellpadding="0" >
<TR>
<TD class="side"> <FORM action="ag.php" method="GET" onSubmit="return validate(this);">
<INPUT type="hidden" name="action" value="write">
<TABLE class="side">
<TR>
<TD>Naam:</TD>
<TD><INPUT type="text" name="name" size="30"></TD>
</TR>
<TR>
<TD>E-Mail:</TD>
<TD><INPUT type="text" name="email" size="30">
(optioneel)</TD>
</TR>
<TR>
<TD>Homepage:</TD>
<TD><INPUT name="url" type="text" value="http://" size="30">
(optioneel)</TD>
</TR>
<TR>
<TD>Bericht:</TD>
<TD><TEXTAREA name="message" cols="50" rows="5"></TEXTAREA></TD>
</TR>
</TABLE>
<INPUT type="submit" value="Verstuur">
</FORM></TD>
</TR>
</TABLE>
$remail='[email protected]';
$semail='[email protected]';
$subject='test';
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= "To:" . $remail . "\r\n";
$headers .= "From:" . $semail . "\r\n";
if (!$cc=="") $headers .= "Cc:" . $cc . "\r\n";
if (!$bcc=="") $headers .= "Bcc:" . $bcc . "\r\n";
// Send it
mail ($remail, $subject, $layout, $headers);
Hiermee kun je nette html mails versturen. Je moet zelf wel ff de $layout maken. :)
Suc6
Was eenvoudiger als dat ik dacht,
ik heb er dit van gemaakt.
$MailTo="[email protected]";
$Subject="Agenda item bestuur";
$Headsend="From: <$email>\n";
$Message = "$message";
// Send it
mail ($MailTo, $Subject, $Message, $Headsend);
Het werkt goed, op een ding na wanneer ik wat inzend krijg ik de ene keer twee berichten waarvan één zonder inhoud en afzender, de andere is dan compleet. De volgende keer krijg ik drie berichten één zoals die moet zijn en twee zonder tekst en afzender.
Ik ben een eind opweg maar dit moet ik nog uitzoeken of heb je nog een mogelijke oplossing.
Groet
Willem van Rijn
Dank voor de hulp ik ben er helemaal uit.
Je hebt me op weg geholpen en na wat puzzelen is het me helemaal gelukt en weer een hoop geleerd over PHP
Bedankt
Groeten
Willem van Rijn