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!
Tip: leer werken met de Swift mailer class. Een bijlage verzenden gaat dan op de volgende, simpele manier:

<?php
    $msg->attach (new Swift_Message_Attachment (new Swift_File ($path), $name, $_FILES['userfile']['type']));
?>
Pas je script even aan en gebruik [ignore]
 en 
[/ignore] tags om je code heen. Gebruik je knop om dit te doen.

SanThe.
Script even aangepast met code tags, maar wie heeft er voor mij het antwoord naar het juiste stukje script wat ik als totale stranger to php zo in kan plakken en dat het ook werkt!

Ik heb al van alles aan upload scripts bekeken en proberen toe te voegen, maar die uploaden enkelt naar een server, en ik wil dat het gemailt wordt!

Alvast erg bedankt!
Niemand?
twee maal posten achter elkaar ma niet. xD

en voor zoverre ik weet heeft Jan Koehoorn het antwoord al gegeven.
jesper schreef op 04.04.2008 20:12
Hey dus je zoekt een gewoon contact formulier als ik het goed begrijp
http://www.stabilo-games.nl/contactformulier.php
zoiets
Groet Jesper


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.




En ik snap helemaal niks van die PHPMailer spul en Swiftmailer enzo, maakt het voor mij alleen maar onduidelijker!
Als je een bijlage wilt verzenden moet je
enctype="multipart/form-data"
in je form tag zetten.

@wesley, na 24 uur mag je wel bumpen ;)
je wilt dus dat "wij" het maken voor je.?
mijn antwoord, lees wat er net gezegd is, en leer het. weet je het volgende keer ook.

oke, ik keek niet naar de tijden xD ik was alleen sadistisch :')

@ Miky; Oke, dat zet ik in mijn form tag, hoe kan ik het nu zo maken dat mijn toegevoegde bestand gecontroleerd gaat worden?

@ Wesley; Dat vraag ik helemaal niet, ik vraag om de code die ik moet gebruiken om mijn formulier iets te laten controleren en te laten mailen!
Ik vraag dus om het stukje code dat ik nodig heb om in mij script te plaatsen, niet dat jullie het helemaal aanpassen, ik wil het er zelf in zetten!

Reageren