Tutorial: Bijlage veld in form verwerken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jonathan

jonathan

17/10/2005 19:19:00
Quote Anchor link
Ik heb zelf een werkend contact formuliertje (zoals vele) En ook ik wil graag dat mensen een bijlage kunnen meesturen.
Ik ben hierzelf al een tijdje mee bezig geweest en er zijn voor zover ik weet ook al aardig wat topicjes enz. over geweest, maar ik kom er niet helemaal uit. Ik heb ook bestaande scripts doorgeplozen. en van alles nog wat op google gevonden maar niks kon mij helpen :(
Mijn vraag is dan ook:
Is/kan er ook een tutorialtje gemaakt worden waarin staat hoe je te werk moet gaan om dit in je bestaande formulier te verwerken, waar je op moet letten enz. en hoe het eigenlijk werkt.

?
 
PHP hulp

PHP hulp

05/11/2024 15:47:54
 
Niels Beckers

Niels Beckers

17/10/2005 19:22:00
Quote Anchor link
kijk http://www.phphulp.nl/forum/showtopic.php?cat=2&id=2026&q=bijlage%20bij%20mailform maar eens bij kan je hulp uit halen
Gewijzigd op 17/10/2005 19:23:00 door Niels Beckers
 
Jonathan

jonathan

17/10/2005 20:21:00
Quote Anchor link
kheb er even naar gekeken het script dat daar staat is inderdaad al wat duidelijker maar het lukt me nog niet om hem te verwerken in mijn bestaande formulier. wat ik waar moet neerzetten enz. dit is het bestaande script (overgens ook van deze site)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
<?  
ob_start(); // Voor Cookie setten  
// Config Gedeelte

$site = "http://www.google.nl";        // Site waarnaar je terug gaat als je een bericht hebt achtergelaten
$wm_naam = "jopie";        // Webmaster naam
$wm_email = "[email protected]";    // Webmaster E-mail
$datum = date("d-m-Y H:i:s");        // Datum wanneer verstuurd
$Anti_Spam = "0";            // Anti Spam Tijd in Minuten ( Voer "0" om de Spam Beveiliging uit te zetten )
$fout_text = FALSE;            // Bij Fout Text Rood maken ( TRUE voor aan, FALSE voor uit )
$fout_vakje = TRUE;        // Bij Fout Border om Vakje Rood maken ( TRUE voor aan, FALSE voor uit )

// Hierna hoef je niks meer te veranderen!

$naam = $_POST['naam'];  
$email = $_POST['email'];  
$onderwerp = $_POST['onderwerp'];  
$bericht = $_POST['bericht'];  
$bericht_wrap = wordwrap ($bericht, 40, "\n", 1);  

// IP van de verstuurder
if(getenv($_SERVER['HTTP_X_FORWARDED_FOR'])) {  
    $ip = getenv($_SERVER['HTTP_X_FORWARDED_FOR']);  
}
elseif(getenv($_SERVER['HTTP_CLIENT_IP'])) {  
    $ip = getenv($_SERVER['HTTP_CLIENT_IP']);  
}
else {  
    $ip = $_SERVER['REMOTE_ADDR'];  
}
  

$host = gethostbyaddr($ip);         // Host van verstuurder

$layout = "
<html>
<head>
  <title>Opdracht bon</title>
</head>
<body>
<table border='0' cellpadding='0' cellspacing='0' width='752'>
    <tr>
        <td bgcolor='#000000'>
        <p align='center'><font color='#FFFFFF'>ALGEMENE GEGEVENS</font></td>
    </tr>
</table>
</body>
</html>

Naam: "
.$naam."        \n
E-mail: "
.$email."     \n
Bericht:\n"
.$bericht_wrap."     \n
                    \n
Verstuurd op: "
.$datum."
------------------------------------------------------- \n
IP: "
.$ip."                    \n
Host: "
.$host."                \n
"
;  

            $headers = "MIME-Version: 1.0\r\n";  
            $headers.= "Content-type: text/html; charset=iso-8859-1\r\n";
            $headers .= "Reply-To: mailform <[email protected]>\r\n";
            
    
// Mail Checker
function checkmail($mail)    
{
  
    // explode het e-mail adres op een @
    $email_host = explode("@", $mail);    
    // pak alles na de @
    $email_host = $email_host['1'];  
    // zet een var met de (eventuele) DNS van de domein
    $email_resolved = gethostbyname($email_host);    
    // kijk of er een DNS aan zit en of alles voor en na het e-mail adres klopt
    if ($email_resolved != $email_host && eregi("^[0-9a-z]([-_.~]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$mail))    
       $valid = 1;    
    // wanneer het geldig is, is $valid = 1, zo niet, dan geeft hij geen result (NULL)
    return $valid;    
}
    
// Alles Controleren Wanneer er op Verzenden wordt gedrukt
if(isset($_POST['verzenden']))
{
  
    $fout = "";  
    if((empty($naam)) OR (strlen($naam) < 3))  
    {
  
        $fout .= "U bent vergeten je naam in te vullen! <BR>";  
        unset($naam);  
        $fout_vakje_naam = "input_fout";
        $fout_text_naam = "#FF0000";        
    }
  
    if((empty($email)) OR (strlen($email) < 7))  
    {
  
        $fout .= "U bent vergeten uw e-mail adres in te vullen! <BR>";  
        unset($email);  
        $fout_vakje_email = "input_fout";
        $fout_text_email = "#FF0000";    
    }
  
    elseif(checkmail($email) == 0)  
    {
  
        $fout .= "Vul een correct e-mail adres in! <BR>";  
        $fout_vakje_email = "input_fout";
        $fout_text_email = "#FF0000";      
    }
  
    if(empty($onderwerp))  
    {
  
        $fout .= "U bent vergeten een onderwerp in te vullen! <BR>";  
        unset($onderwerp);  
        $fout_vakje_onderwerp = "input_fout";
        $fout_text_onderwerp = "#FF0000";    
    }
  
    if(empty($bericht))  
    {
  
        $fout .= "U bent vergeten een bericht in te vullen!";  
        unset($bericht);  
        $fout_vakje_bericht = "input_fout";
        $fout_text_bericht = "#FF0000";    
    }
  
    elseif(strlen($bericht) < 6)  
    {
  
        $fout .= "Uw bericht is tekort! <BR>";  
        $fout_vakje_bericht = "input_fout";
        $fout_text_bericht = "#FF0000";    
    }
  
    if(!$fout_text)
    {

        unset($fout_text_naam);
        unset($fout_text_email);
        unset($fout_text_onderwerp);
        unset($fout_text_bericht);
    }

    if(!$fout_vakje)
    {

        unset($fout_vakje_naam);
        unset($fout_vakje_email);
        unset($fout_vakje_onderwerp);
        unset($fout_vakje_bericht);
    }
    
    if(!empty($fout))
    {

    echo "<font color=\"#FF0000\"> $fout </font>"; // Weergeven van de fout(en)
    }
    else  
    {  
    mail($wm_email,$onderwerp,$layout,$headers);  
      
    // Bericht als mail succesvol is verzonden
    echo "<head><link href=\"style.css\" rel=\"stylesheet\" type=\"text/css\"></head>";
    echo "<BR>Uw contact bericht is succesvol verzonden!<BR>";  
    echo "Er word zo snel mogelijk gereageerd.<BR><BR>";  
    echo "Met vriendelijke groeten,<BR>";  
    echo "<B>".$wm_naam."</B>";  
    echo "$naam";
      
    // cookie zetten tegen spam
    setcookie("mailformulier",1,time()+($Anti_Spam*60));  
      
    // formulier wordt niet weer getoond
    $Formulier = TRUE;  
      
      
    }  
}
  

// kijken of het cookie bestaat, zoja dan wordt het formulier niet getoond.
if(isset($_COOKIE['mailformulier']))  
{
  
    $Formulier = TRUE;
    echo "<head><link href=\"style.css\" rel=\"stylesheet\" type=\"text/css\"></head>";  
    echo "<center><h2> Spam Beveiliging </h2><BR>";
    echo "Je kunt maar eens in de $Anti_Spam minuten een e-mail versturen!</center>";  
    header("refresh:3;url=".$site."");  
}
  
if(!isset($Formulier))  
{
  
?>
<head>
<link href="style.css" rel="stylesheet" type="text/css">
</head>




<form method="POST" action="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $PHP_SELF; ?>
">
<table>
<tr><td> </td><td> </td></tr>
<tr><td><font color="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo"$fout_text_naam"; ?>
">Naam:</font></td><td><input type="text" class="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $fout_vakje_naam; ?>
" name="naam" maxlength="20" value="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo"$naam"; ?>
"></td></tr>
<tr><td><font color="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo"$fout_text_email"; ?>
">Email:</font></td><td><input type="text" class="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $fout_vakje_email; ?>
" name="email" maxlength="30" value="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo"$email"; ?>
"></td></tr>
<tr><td><font color="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo"$fout_text_onderwerp"; ?>
">Onderwerp:</font></td><td><input type="text" class="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $fout_vakje_onderwerp; ?>
" name="onderwerp" maxlength="30" value="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo"$onderwerp"; ?>
">
<input name="bijlage" type="file">
</td>
</tr>
<tr><td valign=top><font color="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo"$fout_text_bericht"; ?>
">Bericht:</font></td><td><textarea name="bericht" class="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $fout_vakje_bericht; ?>
" cols="30" rows="4">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo"$bericht"; ?>
</textarea></td></tr>
<tr><td></td><td><input type="submit" name="verzenden" value="Verzenden">
<input type="reset" name="reset" value="Reset"></td></tr>
</table>
</from>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?  
}  
?>
Gewijzigd op 18/10/2005 08:51:00 door jonathan
 
Thijs X

Thijs X

17/10/2005 22:25:00
Quote Anchor link
Hehe lijp iemand probeerd mn script uit te breiden :P
@ Jonathan ik ga dr zelf wel even naar kijke
 
Jonathan

jonathan

18/10/2005 08:53:00
Quote Anchor link
Okeey thijs, dat is mooi! Kvind het namelijk een erg handig mooi scriptje en makkelijk uit te breiden. behalve dat bijlage gedeelte daar snap ik nie veel van:S
 
Jonathan

jonathan

20/10/2005 20:39:00
Quote Anchor link
Gaat het denkje lukken thijs? of kan iemand anders thijs en mij opweg helpen? ;)
 
Thijs X

Thijs X

20/10/2005 22:00:00
Quote Anchor link
Ik heb het even geprobeerd maar het is me niet egt glukt :Ss
 
Jonathan

jonathan

20/10/2005 22:15:00
Quote Anchor link
mm jammer, toch bedankt;)
is er iemand anders die me op weg kan helpen? Kom er niet uit.
 
- Jim  -

- Jim -

21/10/2005 00:26:00
Quote Anchor link
Ik heb zoiets simpels gemaakt. Misschien dat je er iets aan hebt:

Plaats deze 2 scripts in een map, en maak in dezelfde map een mapje genaamd upload waarin de webserver mag scrijven.


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
# FILENAME: upload.php
# Hierin word alleen een formulier gemaakt.


echo "<H3>Een bestand uploaden</H3>\n";

/* Vooral deze regel is belangrijk en staat niet in jouw script!:

echo "<form action='upload2.php' method='post' enctype='multipart/form-data'>\n";
*/

echo "<form action='upload2.php' method='post' enctype='multipart/form-data'>\n";
echo "Bestand:<input type='file' name='file'><br />\n";
echo "Bestandsnaam:<input type='text' name='filename'><br />\n";
echo "<input type='submit' name='submit' value='Upload'>\n";
echo "</form>\n";
?>

-----------------------------------------

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
# FILENAME: upload2.php
# Hierin word het bestand verwerkt.

# Ja, is handiger om $_POST te gebruiken, maar moet dan even uitzoeken hoe ik de file er dan doorkrijg.


if (ISSET($file) && ISSET($submit) && ($filename != '')
 {


# Gebruik deze gegevens om te controleren of de data goed doorkomt!
# echo "FILE: $file <br />\n";
# echo "FILENAME: $filename <br />\n";


# Verplaats het bestand naar de map 'upload' in de map waarin ook deze scripts staan!

 if (copy($file, "upload/".$filename))
  {

  # Als ok.
  echo "Bestand $filename bewaard.<br />\n";
  }
else {
  # Als fout. (Check error_log).
  echo "Er is een probleem opgereden.<br />\n";
  }

 }
else {
 echo "De gegevens waren niet compleet, probeer opnieuw.<br />\n";
 }


?>
Gewijzigd op 21/10/2005 00:33:00 door - Jim -
 
Thijs X

Thijs X

21/10/2005 00:34:00
Quote Anchor link
Dat is een upload script jim.
 
Willem Jan Z

Willem Jan Z

21/10/2005 00:34:00
Quote Anchor link
Het gaat over een bestand als bijlage emailen, niet een bestand uploaden..
 
- Jim  -

- Jim -

21/10/2005 00:48:00
Quote Anchor link
Je kan dan toch gewoon het bestand oppakken en meesturen...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
  $body
.= "Content-Type: application/octet-stream; name='upload/".$filename;
?>


En dan het bestand wegflikkeren....
 
Jonathan

jonathan

21/10/2005 17:30:00
Quote Anchor link
mmm okeey dit begint al in de richting te komen in elk geval bedankt ik ga hier is even naar kijken. Het was inderdaad de bedoeling dat het bestand als bijlage mee werd gestuurd. jim wat bedoel je precies met oppakken en meesturen?
Het bestand wordt geupload en dan wordt er automatisch een link meegestuurd? ofzo?

als iemand nog suggesties/tips heeft, voor e-mail met bijlage.....>------v
 
Niels Beckers

Niels Beckers

21/10/2005 17:33:00
Quote Anchor link
neen jim bedoelt dat je het bestand selecteerd en dit word dan verzonder naa rde map uploads
 
- Jim  -

- Jim -

21/10/2005 18:31:00
Quote Anchor link
En dan in het mail script het bestand in de mail opnemen en de mail versturen en vervolgens het bestand weggooien.

--------------------------------------------------

Kijk hier eens.....
http://www.phphulp.nl/php/scripts/1/262

Alleen '</textarea>' (sluiten). En een beetje aanpassen zodat het juiste mail adres wordt gebruikt e.d.
 
Jonathan

jonathan

21/10/2005 19:24:00
Quote Anchor link
jah ok die had ik oook al bekeken maar wil hem graag gebruiken in mijn huidige mailform, kwil graag erachter komen hoe je dat nou in je huidige form verwerkt wat je er allemaal voor nodig hebt en waar je op moet letten, maar toch bedankt;)!
iemand nog tips/suggesties?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.