Hallo allemaal.

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!
Djemo schreef op 04.04.2008 21:00
[php]empty[/php]() en [php]isset[/php]()?


Hier snap ik dus weer helemaal niks van? Sorry hoor..
Miky schreef op 04.04.2008 21:01
[quote='jesper schreef op 04.04.2008 20:56'][quote='Miky schreef op 04.04.2008 20:54']Maikel, wat wou je eigelijk controleren?

dat hij controleert van bijv.
vul u naam in e-mail adres enz
Groet, jesper[/quote]
Is jesper toevallig een schuilnaam van Uri Geller?
Wel knap dat je gedachtenlezen kan![/quote]

Hey
nee is geen schuilnaam is mijn echte:P
nou hij zei dat al tegen mij en anders wist je het nu pas;)
Maikel schreef op 04.04.2008 21:01
[quote='Djemo schreef op 04.04.2008 21:00'][php]empty[/php]() en [php]isset[/php]()?


Hier snap ik dus weer helemaal niks van? Sorry hoor..[/quote]
Met isset controleer je of een var bestaat, met empty of hij leeg is.

elseif($_POST['bestand'] == '') // Als er geen bestand is ingevuld 
    {  
        echo "U heeft geen bestand toegevoegd<br />";  
        echo "<a href='javascript&#058;history.back();' style='color: black; text-decoration:none;'>Klik hier om terug te gaan!</a>";  
    }  


Hij controleert nu al of er iets in mijn bestandsveld is toegevoegd.

Ook als je wat toevoegd, blijft ie deze melding geven.

Dit komt waarschijnlijk dan toch door deze regel?

elseif($_POST['bestand'] == '') 


Ik wil dus mijn input laten controleren op bestandstype!...

Dus ik moet nu eerst over het veld bestand een aantal variabellen laten opmaken en die met isset en empty laten controleren!

Heb me iets meer verdiept op verschillende nederlandse en engelse websites, maar kan er nog niet helemaal uit komen!
Je moet kijken naar $_FILES['error']. Als die 0 is, is alles goed gegaan. Bovendien moet je dit in je form hebben:

<form enctype="multipart/form-data" method="post" action="jouwpagina.php">

[edit]Nog een tip: je eindigt nu elke alinea met een uitroepteken. Dat staat nogal schreeuwerig.[/edit]
Met een uitroepteken bodoel ik ook vaak meer zoiets als: Toch? Of zit ik in de goede richting ;)

En form enctype="multipart/form-data" method="post" staat al in mijn php file, zal het nog even veranderen in mijn startpost ;)

Maar heb je misschien een DUIDELIJKE liefst NL website, waar precies staat beschreven hoe het werkt, bestanden laten controleren, alles wat ik vind op internet aan tutorials is uploaden naar server, en daar zitten move dit rename sus enzo bij, en als ik dus een stukje code daar uit overkopieer, krijg ik alleen maar parse errors! Erg vervelend dus.

Ik begin nu het PHP iets beter te lezen, maar snap echt nog langs niet alles, en kan het zeker zelf nog niet schrijven! Al die accolades en dergelijke, zie door de bomen het bos echt niet meer soms!
Of, hoe voeg ik dit stuk script toe, en maak het zo dat de link naar me geemaild wordt?


<?
/*
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 $url hieronder je dir in waar dit bestand in staat.

DEZE WERKT NU GOED, ALLEEN MOET DE LINK NOG EVEN WORDEN DOOR GEMAILD

*/

$url = "http://dekschrobbers.nl/mk/test/mail/"; //De map waar dit bestand in staat.
$mapnaam = "/home/dekschro/domains/dekschrobbers.nl/public_html/mk/test/mail/"; //Dit moest bij mij een absolute map wezen, anders werkte het niet

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";
    if(in_array($_FILES['file']['type'], $extensions['ext'])) {
        if($_FILES['file']['size'] > 1048576) {
            echo "Uw bestand is meer als 1 MB (1024 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";
            }
            if(file_exists($mapnaam.$_SERVER['REMOTE_ADDR'].$ext)) {
                unlink($mapnaam.$_SERVER['REMOTE_ADDR'].$ext);
            }
            if(is_uploaded_file($_FILES['file']['tmp_name'])) {
                move_uploaded_file($_FILES['file']['tmp_name'], $mapnaam.$_SERVER['REMOTE_ADDR'].$ext);
                echo "Uw bestand is succesvol geupload!";
            } 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!";
            }
        }
    } else {
        echo "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>";
    }
} else {
    echo "<form method='post' enctype='multipart/form-data'>
    De volgende extensies zijn toegestaan: .gif & .jpg & .jpeg & .png & .bmp.<br>
    Let wel op dat het bestand niet groter is dan 1 MB<br><br>
    Upload bestand: <input type='file' name='file' id='file'><br>
    <br>
    <input type='submit' name='submit' value='Upload bestand..'>
    </form>";
}
?> 
Ik denk op de plek van:
<?php
echo "Uw bestand is succesvol geupload!";
?>
Of daar omheen natuurlijk ;-).
Hoe bedoel je dat precies?

Reageren