Heb ergens van deze site uit een tutorial een contactformulier gekopieerd en hij doet zijn ding perfect als er een leeg veld achterblijft, geeft ie een melding aan dat er een veld leeg is gebleven.
Nu wil ik ook dat ik via dit script dus een bijlage mee kan sturen. Ik heb al toegevoegd in het HTML form dat er een bijlage in gevoerd kan worden, maar als ik op verzenden druk, dan verstuurt het script de mail ook netjes, maar ik krijg geen bijlage mee. Heb al verschillende script er in geprobeerd te breien, maar krijg het niet voor elkaar.
Hier mijn aangepaste script:
<?php
$naar = '[email protected]'; // Verander hier [email protected] naar uw eigen email adress.
if(isset($_POST['verzend'])) // Als het bericht verzonden is
{
if($_POST['naam'] == '') // Als het veld naam leeg is
{
echo "U heeft geen naam ingevuld!<br />";
echo "<a href='javascript:history.back();' style='color: black; text-decoration:none;'>Klik hier om terug te gaan!</a>";
}
elseif($_POST['email'] == '') // Als het veld email leeg is.
{
echo "U heeft geen e-mail adress ingevuld!<br />";
echo "<a href='javascript:history.back();' style='color: black; text-decoration:none;'>Klik hier om terug te gaan!</a>";
}
elseif($_POST['bericht'] == '') // Als er geen bericht is ingevuld.
{
echo "U heeft geen bericht ingevuld!<br />";
echo "<a href='javascript:history.back();' style='color: black; text-decoration:none;'>Klik hier om terug te gaan!</a>";
}
elseif($_POST['onderwerp'] == '') // Als er geen onderwerp is ingevuld
{
echo "U heeft geen onderwerp ingevuld!<br />";
echo "<a href='javascript:history.back();' style='color: black; text-decoration:none;'>Klik hier om terug te gaan!</a>";
}
else
{
if(!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4})$", $_POST["email"])) // Als het email adress niet klopt
{
echo "U heeft geen geldig e-mail adress ingevuld!<br />";
echo "<a href='javascript:history.back();' style='color: black; text-decoration:none;'>Klik hier om terug te gaan!</a>";
}
else
{
// Mailen:
$bericht = "
<html>
<head>
<title>Contact fomulier</title>
</head>
<body>
<table border='0' width='50%'>
<tr>
<td width='20%'>Uw naam:</td>
<td>".$_POST['naam']."</td>
</tr>
<tr>
<td width='20%'>Uw e-mail adress:</td>
<td>".$_POST['email']."</td>
</tr>
<tr>
<td width='20%'>Het onderwerp:</td>
<td>".$_POST['onderwerp']."</td>
</tr>
<tr>
<td width='20%'>Het Bericht:</td>
<td>".$_POST['bericht']."</td>
</tr>
</table>
</body>
</html>
";
$headers = "MIME-Version: 1.0\r\n";
$headers.= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers.= "From: ".$_POST['naam']." <".$_POST['email'].">\r\n";
// Headers, zodat we html kunnen gebruiken in de mail, en van wie de mail komt.
if(mail($naar, $_POST['onderwerp'],$bericht,$headers)) // Als de mail naar de maker is verstuurd
{
echo 'Uw bericht is succesvol verstuurd!';
}
else // Anders
{
echo 'Uw bericht is helaas niet verstuurd.';
}
$ond = "Uw bericht, verzonden naar". $naar;
if(mail($naar, $ond,$bericht,$headers)) // Als de mail naar de verzender is verstuurd
{
echo 'Uw bericht is succesvol verstuurd!';
}
else // Anders
{
echo 'Uw bericht is helaas niet verstuurd.';
}
}
}
}
else
{
?>
<!-- Formulier weergeven -->
<table border='0' width='50%'>
<form method='post' ENCTYPE="multipart/form-data">
<tr>
<td align='right' width='30%'><b>Contact Systeem</b></td>
</tr>
<tr>
<td width='20%'>Naam:</td>
<td><input type='text' name='naam' /></td>
</tr>
<tr>
<td width='20%'>E-mail adress:</td>
<td><input type='text' name='email' /></td>
</tr>
<tr>
<td width='20%'>Het onderwerp:</td>
<td><input type='text' name='onderwerp' /></td>
</tr>
<tr>
<td width='20%'>Het Bericht:</td>
<td><textarea name='bericht'>Uw Bericht</textarea></td>
</tr>
<tr>
<td width='20%'>Bijlage</td>
<td><input type="file" name="file">
</td>
</tr>
<tr>
<tr>
<td colspan='2' align='center'><input type='submit' value='Verzend' name='verzend' /></td>
</tr>
</form>
</table>
<?php
}
?>
Wat moet ik hieraan toevoegen om bestanden mee te versturen van alleen de bestandstypes: RAR ZIP (Gelieve ook JPG met een maximale grote van 800*600) en een bestandsgrote van maximaal 10mb!
Welke code hoort daarbij, als ik zelf de juiste code alleen in een antwoord krijg, kan ik hem misschien zelf wel plaatsen in het script!
Alvast hartelijke dank!
[EDIT]
<form method='post' ENCTYPE="multipart/form-data"> toegevoegd in script!
Ik ben echt nog niet thuis in PHP, en las het misschien ook te snel!
Maar ik heb de mail() weer terug gezet in waar die volgens Zim moest komen! En het werkt weer!
En kan je me dan misschien vertellen waar ik mijn volgende controle weer moet beginnen!? Want met al die accolades snap ik het niet helemaal precies meer hoe ik nu kan zien wat wat precies afsluit!
Daar hebben veel editors zo hun oplossingen voor. In Crimson Editor en phpDesigner (2008) worden bij elkaar horende accolades gehighlight wanneer je je pointer erbij zet.
Kijken of bepaalde velden zijn ingevuld, doe je eigenlijk direct na het kijken of een formulier is verzonden. Veel zul je met deze velden niet hoeven doen (waarschijnlijk) dus bij jou kun je dit daar wel even tussen plakken. Zorg dan wel dat je na het stuk code wat je dan krijgt de if weer afsluit met een else {} waarin een melding komt met dat er velden niet zijn ingevuld. Je sluit deze if af voordat je de eerste if afsluit.
Misschien iets te snel en kortbondig uitgelegd, maar hoop dat je het - bij rustig overlezen - toch snapt.
Echt super programmatje dat phpDesigner, kon zo zien waar ik hem tussen moest plakken, de rest van dat andere script dan, en kon ook zo zien als der een fout inzat!
Ik kan nergens een werkend mimetype vinden voo .rar!
Had deze gevonden application/rar maar die werkt niet, ligt die aan het script, wat ik uiteraard heb aangepast zo dat het zou moeten werken.. Of heb ik gewoon der verkeerde mimetype!?
Dit blijft voor de zip en rar resulteren in de melding dat deze 2 types niet zijn toegestaan!
Hier nog maals mijn hele script wat nu voor de rest perfect werkt!
<head>
<meta http-equiv="Content-Language" content="nl">
</head>
<?
/*
Upload dit bestand en maak in diezelfde dir een nieuwe map aan.
Geef hieronder bij $mapnaam de naam van de map op die je daar aan hebt gemaakt.
Geef die map alle rechten (CHMOD 777)
Vul bij $site hieronder je dir in waar dit bestand in staat.
*/
$url = "*****"; // De FTP map waar dit bestand in is te vinden!
$mapnaam = "****"; // Het absolute FTPpath dat je FTP programma weergeeft in zijn eigen browers.
$naar = '****'; // Het email adres waar het heen moet.
if($_POST['submit']) {
$extensions = array();
$extensions['ext'][] = "image/gif";
$extensions['ext'][] = "image/jpg";
$extensions['ext'][] = "image/jpeg";
$extensions['ext'][] = "image/pjpeg";
$extensions['ext'][] = "image/png";
$extensions['ext'][] = "image/bmp";
$extensions['ext'][] = "image/x-png";
$extensions['ext'][] = "application/zip";
$extensions['ext'][] = "application/rar";
if(in_array($_FILES['file']['type'], $extensions['ext'])) {
if($_FILES['file']['size'] > 1048576) {
echo "Uw bestand is meer als 10 MB (1048576 KB)!<br>Klik <a href='javascript:history.back(1)'>hier</a> om terug te gaan!";
} else {
if($_FILES['file']['type'] == "image/gif") {
$ext = ".gif";
} elseif($_FILES['file']['type'] == "image/jpg") {
$ext = ".jpg";
} elseif($_FILES['file']['type'] == "image/jpeg") {
$ext = ".jpg";
} elseif($_FILES['file']['type'] == "image/pjpeg") {
$ext = ".jpg";
} elseif($_FILES['file']['type'] == "image/bmp") {
$ext = ".bmp";
} elseif($_FILES['file']['type'] == "image/png") {
$ext = ".png";
} elseif($_FILES['file']['type'] == "image/x-png") {
$ext = ".png";
} elseif($_FILES['file']['type'] == "application/zip") {
$ext = ".zip";
} elseif($_FILES['file']['type'] == "application/rar") {
$ext = ".rar";
}
if(file_exists($mapnaam.$_FILES['file']['name'].$ext)) {
unlink($mapnaam.$_FILES['file']['name'].$ext);
}
if(is_uploaded_file($_FILES['file']['tmp_name'])) {
move_uploaded_file($_FILES['file']['tmp_name'], $mapnaam.$_FILES['file']['name']);
echo "<font face='Arial' size='1'>Uw bestand is succesvol in de email geplakt!</font><br><br>"; // Deze tekst is zelf aan te passen!
$delocatiewaarjegeuploadefilestaat = $url.'/'.$_FILES['file']['name'].'';
$uploadedfilename = $_FILES['file']['name'];
} else {
echo "Er is iets fout gegaan tijdens het uploaden!<br>Probeert u het nogmaals..<br>Klik <a href='javascript:history.back(1)'>hier</a> om terug te gaan!"; // Deze tekst is zelf aan te passen
}
}
} else {
echo "U heeft geen bestand gekozen of<br>U heeft een bestand gekozen dat niet de extensie .gif, .jpg, .jpeg, .png of .bmp heeft!<br>Klik <a href='javascript:history.back(1)'>hier</a> om terug te gaan!<br><br>"; // Deze tekst is zelf aan te passen
}
if($_POST['naam'] == '') // Als het veld naam leeg is
{
echo "U heeft geen naam ingevuld!<br />";
echo "<a href='javascript:history.back();' style='color: black; text-decoration:none;'>Klik hier om terug te gaan!</a>";
}
elseif($_POST['email'] == '') // Als het veld email leeg is.
{
echo "U heeft geen e-mail adress ingevuld!<br />";
echo "<a href='javascript:history.back();' style='color: black; text-decoration:none;'>Klik hier om terug te gaan!</a>";
}
elseif($_POST['feest'] == '') // Als er geen bericht is ingevuld.
{
echo "U heeft geen feest ingevuld!<br />";
echo "<a href='javascript:history.back();' style='color: black; text-decoration:none;'>Klik hier om terug te gaan!</a>";
}
else
{
if(!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4})$", $_POST["email"])) // Als het email adress niet klopt
{
echo "U heeft geen geldig e-mail adress ingevuld!<br />";
echo "<a href='javascript:history.back();' style='color: black; text-decoration:none;'>Klik hier om terug te gaan!</a>";
}
else
{
// Mailen:
// Hier wordt het bericht opgemaakt dat de ontvanger in zijn Email Inbox krijgt.
$ontvanger = "
<html>
<head>
<title>Steeceeters.nl Foto's</title>
</head>
<body>
<table border='0'>
<tr>
<td>Naam van de afzender:</td>
<td>".$_POST['naam']."</td>
</tr>
<tr>
<td>E-mail adres van de afzender:</td>
<td>".$_POST['email']."</td>
</tr>
<tr>
<td>Het feest waar de foto's van zijn:</td>
<td>".$_POST['feest']."</td>
</tr>
<tr>
<td>Het Bericht:</td>
<td>".$_POST['bericht']."</td>
</tr>
<tr>
<td>Het Bestand:</td>
<td>".$delocatiewaarjegeuploadefilestaat."</td>
</tr>
</table
</body>
</html>
";
//Hier wordt het bericht opgemaakt dat de verstuurder in zijn Email Inbox krijgt als kopietje,
//en als er een geldig emailadres is ingevoerd!
$verstuurder = "
<html>
<head>
<title>Steeceeters.nl Foto's</title>
</head>
<body>
<table border='0'>
<tr>
<td>Jou naam:</td>
<td>".$_POST['naam']."</td>
</tr>
<tr>
<td>Jou e-mail adres:</td>
<td>".$_POST['email']."</td>
</tr>
<tr>
<td>Het feest dat jij hebt opgegeven:</td>
<td>".$_POST['feest']."</td>
</tr>
<tr>
<td>Jou bericht:</td>
<td>".$_POST['bericht']."</td>
</tr>
<tr>
<td>Het Bestand:</td>
<td>Is succesvol mee gemaild, helaas kan ik de link niet aan u geven</td>
</tr>
<tr>
<td colspan='2'><br>Bedankt voor het emailen van je foto's. Ze zullen zo snel mogelijk geplaatst worden!</td>
</tr>
</table>
</body>
</html>
";
$headers = "MIME-Version: 1.0\r\n";
$headers.= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers.= "From: ".$_POST['naam']." <".$_POST['email'].">\r\n";
// Headers, zodat we html kunnen gebruiken in de mail, en van wie de mail komt.
if(mail($naar, $_POST['feest'],$ontvanger,$headers)) // Als de mail naar de maker is verstuurd
{
echo '<br><font face="Arial" size="1">Uw bericht is succesvol samen met het bestand verstuurd naar [email protected]!</font>'; // Ook dit is weer zelf aan te passen tekst
}
else // Anders
{
echo '<font face="Arial" size="1"><br>Uw bericht is helaas niet verstuurd [email protected]!.</font>'; // En deze tekst is ook aan te passen
}
$ond = "Het kopietje van de email verzonden naar [email protected]"; // Deze tekst kan je ook naar wens aanpassen
if(mail($email, $ond,$verstuurder,$headers)) // Als de mail naar de verzender is verstuurd
{
echo '<br><font face="Arial" size="1">en er is een kopie naar uwzelf verstuurd!</font>'; //En dit mag je ook nog aanpassen!
}
}
}
}
else // Hieronder staat het forumulier, dit kan je naar eigen wens aanpassen! Als je de name velden veranderd, zul je ook
// zul je er ook rekening mee moeten houden dat je deze veranderd bij de controles, en bij de ontvanger en verstuurder
// berichten die aangemaakt worden!
{
echo "<form method='post' enctype='multipart/form-data'>
<table border='0'>
<tr>
<td align='center'><b><img src='http://www.steeceeters.nl/buttons/fotomail.jpg' width='120' height='13'></td>
</tr>
<tr>
<td><font face='Arial' size='1'>
<br>Velden met een * zijn verplicht</font></td>
</tr><tr>
<td><font face='Arial' size='2'><b>Naam:</b>*</td>
<td><input type='text' name='naam' /></td>
</tr>
<tr>
<td><font face='Arial' size='2'><b>E-mail adress:</b>*</td>
<td><input type='text' name='email' /></td>
</tr>
<tr>
<td><font face='Arial' size='2'><b>Het feest waar de foto's van zijn:</b>*</td>
<td><input type='text' name='feest'></td>
</tr>
<tr>
<td><font face='Arial' size='2'><b>Bericht:</b></td>
<td><textarea face='Arial' name='bericht'>Wil je nog wat kwijt aan ons?</textarea></td>
</tr>
<tr>
<td><font face='Arial' size='2'><b>Je Foto('s):</b>*<br>
<font size='1'>De volgende extensies zijn toegestaan: <br>.gif & .jpg & .jpeg & .png & .bmp.<br>
Let wel op dat het bestand niet groter is dan 10MB</font><br></td>
<td><input type='file' name='file' value='Bladeren'>
</td>
</tr>
<tr>
<td colspan='2' align='left'><input type='submit' value='Verzend' name='submit' /></td>
</tr>
</font>
</table>
</form>
";
}
?>
Na al de combinaties van Crispijn geprobeert te hebben werkt het nog neit, kan ik op de een of andere manier controleren of rar upload word toegestaan!
Met een zip file is het precies hetzelfde
En de manier van Djemo krijg ik niet aan de gang, hoe precies gebruik je dit!?