(PHP) Mailformulier + bijlage

Pagina: 1
Acties:
  • 273 views sinds 30-01-2008
  • Reageer

  • gscholman
  • Registratie: Juli 2006
  • Laatst online: 25-10-2021
Ik heb een mail formulier van het internet gehaald waar een bijlage bij kan worden gevoegd. Ik heb er een sollicitatie formulier van gemaakt voor het bedrijf waar ik voor werk. Het formulier bestaat uit 4 bestanden

- class.phpmailer.php
- class.smtp.php
- config_inc.php
- contact.php

Nou is mijn kennis van php vrij beperkt en ik heb geen idee meer waar het formulier vandaan komt. Het werkt fantastisch, maar hij voegt niet alle bijlagen goed bij. Een .txt gaat goed maar bij bijvoorbeeld een PDF zegt hij dat het bestand niet toegevoegd mag worden. Terwijl in contact.php een regel staat dat hij alle bestanden wat eindigt op .doc .txt of .pdf toe moet laten en de rest blokkeren.

Mijn vraag is dus hoe zorg ik dat hij wel de juiste bestanden toelaat of hoe gooi ik die beperking van bestanden eruit? Heb zelf al wat geknutseld maar daar wordt het niet beter van :9.

contact.php script:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<script language="php">
include "config_inc.php";

$foutvoorl="*";
$foutnaam="*";
$fouttel="*";
$foutEmail="*";
$fout="";
if ($_SERVER['REQUEST_METHOD'] == 'POST') { 

    //Markering:
    $mark="<span style=\"color: red; font-size: 150%; font-weight_bold\">*</span>";

    $geslacht= $_POST['geslacht']; 
    $naam= stripslashes($_POST['naam']); 
    $adres= stripslashes($_POST['adres']); 
    $postcode= $_POST['postcode']; 
    $woonplaats= stripslashes($_POST['woonplaats']); 
    $telefoon= $_POST['telefoon']; 
    $strEmail= $_POST['strEmail']; 
    $opmerkingen= stripslashes($_POST['opmerkingen']);
      $opleidingen= stripslashes($_POST['opleidingen']);
    $werkervaring= stripslashes($_POST['werkervaring']);
    $motivatie= stripslashes($_POST['motivatie']);
    $functie= $_POST['functie'];

$file = $_FILES['strFile']['tmp_name'];
$file_name = $_FILES['strFile']['name'];
$file_type = $_FILES['strFile']['type']; //Niet gebruikt
$file_size = $_FILES['strFile']['size']; //Niet gebruikt

    //Spam met emailadressen in diverse velden of alle velden met zelfde inhoud
    $spamstring=$naam.$woonplaats.$opmerkingen.$adres;
    if (is_integer(strpos (strtolower($spamstring), "@"))
        or ($naam!="" and ($woonplaats==$naam or $adres==$naam))){
        echo "Fatal error";
        exit;
    }

    if ($naam=="") {
        $fout="U heeft niet alle gemarkeerde velden ingevuld. ";
        $foutnaam=$mark;}
    if ($telefoon=="") {
        $fout="U heeft niet alle gemarkeerde velden ingevuld. ";
        $fouttel=$mark;}
    if ($strEmail=="") {
        $fout="U heeft niet alle gemarkeerde velden ingevuld. ";
        $foutEmail=$mark;}

    if (($telefoon!="") and (!ereg("[0-9]{10}",$telefoon))) { 
        $fout.="Telefoonnr niet correct. ";
        $fouttel="<span style=\"color: red;\">Vul in als 10 cijfers, zonder spaties</span>";}

    //NB E-mail-validatie is nooit 100% compleet. Deze werkt bijna altijd:  
    if (!$strEmail=="" && (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3}$", $strEmail))) {
          $fout.="Ondeugdelijk emailadres!";
          $foutEmail=$mark;}


    //Beperk upload tot bepaalde mime-types. 
    if (!$_FILES['strFile']['name']=="") {
        $acceptedTypes = array('text/plain', 'text/plain asc txt', 'text/richtext rtx', 'text/rtf rtf', 'text/enriched', 'text/rfc822-headers', 'application/pdf pdf', 'application/msword doc', 'application/rtf rtf'); 
        if(!in_array($_FILES['strFile']['type'], $acceptedTypes) || trim($_FILES['strFile']['tmp_name']) == "" || trim($_FILES['strFile']['tmp_name']) =="none") {
            $fout.=$_FILES['strFile']['name']." is geen geldig bestand (Het moet een TXT, Word of PDF-file zijn). ";
        }
    }


} //Van POST
</script>


Ik heb de pagina er uit gehaald en alleen het bovenste deel gepost, als je kijkt naar de geaccepteerde MIME files, dan staat er dat hij ze toe moet voegen, of heb ik de MIME types verkeerd geformuleerd?

[ Voor 65% gewijzigd door gscholman op 13-06-2007 09:44 ]


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Nofi, maar je zal toch echt wat meer basis PHP kennis op moeten doen. Dat je de PHP code in *.php bestanden niet op deze manier door ons kan laten downloaden hoort daar bijvoorbeeld ook bij.

Doe wat basiskennis op zodat je weet wat de echt relevante code is en zet die code dan tussen [php][/php] tags. Let op dat je wel zelf meer initiatief moet tonen, we zitten hier niet om jouw complete script te maken. ;)

{signature}


  • gscholman
  • Registratie: Juli 2006
  • Laatst online: 25-10-2021
Nee daar heb je gelijk aan, maar omdat het zoveel script is, en alles aan elkaar linkt natuurlijk, leek het mij het beste dat "jullie" (bezoekers van het forum ;)) alles konden zien, ik heb de post dus aangepast! En natuurlijk zitten jullie hier niet om het script te schrijven, want dat werkt, afgezien de bijlage wat niet goed gaat natuurlijk :P


Iemand een suggestie of moet er nog moet ik eerst meer scipt laten zien? Nofi

[ Voor 10% gewijzigd door gscholman op 13-06-2007 14:20 ]