graag verificatie van dit script
Dankje heren, om een nitwit kennis bij te geven.
Hoe worden headers gegroepeerd?
En dus moet er consequent altijd \r\n staan waar nu \n staat?
Die log.txt lijkt me zinloos, want ik zal het nooit weten wanneer een mail niet toekomt. Dan heb ik gewoon een ontevreden klant die denkt dat hij me niet interesseert.
Ik werk via One.com, en hier vind je het formulier: https://www.lichaamengeest.be/nieuw.php
Wat moet er nog allemaal aangepast worden?
Hoe worden headers gegroepeerd?
En dus moet er consequent altijd \r\n staan waar nu \n staat?
Die log.txt lijkt me zinloos, want ik zal het nooit weten wanneer een mail niet toekomt. Dan heb ik gewoon een ontevreden klant die denkt dat hij me niet interesseert.
Ik werk via One.com, en hier vind je het formulier: https://www.lichaamengeest.be/nieuw.php
Wat moet er nog allemaal aangepast worden?
De headers kan je prima bij elkaar zetten in de code, en is dus geen technische term ofzo. Het gaat puur om de logica goed bijelkaar te te houden. Ikzelf zou de voor de mail() functie plaatsen, omdat het daar ook betrekking bij heeft.
En die log kan zeker interessant zijn. Je weet immers niet van te voren of een mail wel of niet wordt verstuurd. Misschien kan je bij een hoop 'fails' wel een logica erin vinden die je op pad kan helpen om de oorzaak te vinden.
En die log kan zeker interessant zijn. Je weet immers niet van te voren of een mail wel of niet wordt verstuurd. Misschien kan je bij een hoop 'fails' wel een logica erin vinden die je op pad kan helpen om de oorzaak te vinden.
Gewijzigd op 05/03/2018 17:51:08 door - Ariën -
De headers staan toch allemaal mooi samen?
$headers = 'From: ' . $website_naam . ' <' . $eigen_emailadres . '>' . "\r\n";
$headers .= 'Reply-To: ' . $naam_verzender . ' <' . $email_verzender . '>' . "\r\n";
$headers .= 'Return-Path: Mail-Error <' . $error_emailadres . '>' . "\r\n";
$headers .= ($bcc_emailadres != '') ? 'Bcc: ' . $bcc_emailadres . "\r\n" : '';
$headers .= 'X-Mailer: PHP/' . phpversion() . "\r\n";
$headers .= 'X-Priority: Normal' . "\r\n";
$headers .= ($html) ? 'MIME-Version: 1.0' . "\r\n" : '';
$headers .= ($html) ? 'Content-type: text/html; charset=iso-8859-1' . "\r\n" : '';
$headers .= ($html) ? "Content-Type: multipart/mixed;\r\n" .
$headers .= ($html) ? "boundary=\"{$mime_boundary}\"";
Dus dan maak ik een www.domain.com/logs/log.txt aan, pas de url aan in de code en zien wat er te lezen valt?
$headers = 'From: ' . $website_naam . ' <' . $eigen_emailadres . '>' . "\r\n";
$headers .= 'Reply-To: ' . $naam_verzender . ' <' . $email_verzender . '>' . "\r\n";
$headers .= 'Return-Path: Mail-Error <' . $error_emailadres . '>' . "\r\n";
$headers .= ($bcc_emailadres != '') ? 'Bcc: ' . $bcc_emailadres . "\r\n" : '';
$headers .= 'X-Mailer: PHP/' . phpversion() . "\r\n";
$headers .= 'X-Priority: Normal' . "\r\n";
$headers .= ($html) ? 'MIME-Version: 1.0' . "\r\n" : '';
$headers .= ($html) ? 'Content-type: text/html; charset=iso-8859-1' . "\r\n" : '';
$headers .= ($html) ? "Content-Type: multipart/mixed;\r\n" .
$headers .= ($html) ? "boundary=\"{$mime_boundary}\"";
Dus dan maak ik een www.domain.com/logs/log.txt aan, pas de url aan in de code en zien wat er te lezen valt?
In je laatste code die je hebt laten zien staan de $headers bovenaan.
Ikzelf zou ze liever bovenaan je mail-functie plaatsen, zodat je niet straks rot hoeft te zoeken in je code.
De variabelen voor de waardes die je invoert zou ik dan bovenaan zetten.
Verder zou ik je log niet zichtbaar hebben voor jan-en-alleman. En dus buiten de webroot (htdocs, public_html etc...).
Ikzelf zou ze liever bovenaan je mail-functie plaatsen, zodat je niet straks rot hoeft te zoeken in je code.
De variabelen voor de waardes die je invoert zou ik dan bovenaan zetten.
Verder zou ik je log niet zichtbaar hebben voor jan-en-alleman. En dus buiten de webroot (htdocs, public_html etc...).
Gewijzigd op 05/03/2018 18:21:52 door - Ariën -
Waar staat de "mail() functie"? Is dat "if(mail($to, $subject, $message, $headers))"?
public_html heb ik niet; htdocs geen idee ... Bij One.com heb ik dat niet.
Is dit beter?
public_html heb ik niet; htdocs geen idee ... Bij One.com heb ik dat niet.
Is dit beter?
Code (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
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
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
<?php
$_POST['name'];
$_POST['phone'];
$_POST['email'];
$_POST['website'];
$_POST['beschrijving'];
$_POST['socialURL'];
$_POST['cmname'];
$_POST['faciliteit'];
$_POST['add'];
$_POST['city'];
$_POST['zip'];
$_POST['keywords1'];
$_POST['keywords2'];
$_POST['keywords3'];
$_POST['keywords4'];
$_POST['keywords5'];
$_POST['keywords6'];
$_POST['prijslijst'];
$_POST['openingsuren'];
$_POST['klikbaar'];
$_POST['socialFB'];
$_POST['socialTW'];
$_POST['socialIN'];
$_POST['socialGP'];
$_POST['opmerking'];
// append data to a log file
function _log($log_file,$ip,$email,$message)
{
$str = date('Y-m-d H:i:s') . " IP:$ip, EM:$email, $message\r\n";
file_put_contents($log_file,$str,FILE_APPEND);
}
$log_file = 'http://www.domain.com/logs/log.txt'; // log text file name
$ip = $_SERVER['REMOTE_ADDR']; // get ip to short variable name for logging purposes
$website_naam = 'Mijn Site';
$eigen_emailadres = '[email protected]';
$error_emailadres = '[email protected]';
$naam_verzender = 'Afzender';
$email_verzender = 'emailadres_van_verzender@zijn_domein.nl';
$bcc_emailadres = '[email protected]';
$html = true;
$to = "[email protected]";
$subject= "inschrijving";
$message = "
Faciliteit: $_POST['faciliteit'];
Naam bedrijf: $_POST['cmname'];
Adres: $_POST['add']; $_POST['zip']; $_POST['city'];
Beschrijving:
$_POST['beschrijving'];
Video:
$_POST['socialURL'];
Kernwoorden:
$_POST['keywords1'];
$_POST['keywords2'];
$_POST['keywords3'];
$_POST['keywords4'];
$_POST['keywords5'];
$_POST['keywords6'];
Prijslijst:
$_POST['prijslijst'];
Openklikbare tekst:
$_POST['klikbaar'];
Contactpersoon: $_POST['name'];
Telefoon: $_POST['phone'];
Email: $_POST['email'];
Website: $_POST['website'];
Openingsuren:
$_POST['openingsuren'];
Facebook: $_POST['socialFB'];
Instagram: $_POST['socialIN'];
Twitter: $_POST['socialTW'];
Google Plus: $_POST['socialGP'];
Verdere opmerkingen:
$_POST['opmerking'];
";
$mime_boundary="==Multipart_Boundary_x".md5(mt_rand())."x";
$message = "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\r\n" .
"Content-Type: text/plain; charset=\"iso-8859-1\"\r\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
$message . "\n\n";
foreach($_FILES as $userfile)
{
$tmp_name = $userfile['tmp_name'];
$type = $userfile['type'];
$name = $userfile['name'];
$size = $userfile['size'];
if (file_exists($tmp_name))
{
if(is_uploaded_file($tmp_name))
{
$file = fopen($tmp_name,'rb');
$data = fread($file,filesize($tmp_name));
fclose($file);
$data = chunk_split(base64_encode($data));
}
$message .= "--{$mime_boundary}\r\n" .
"Content-Type: {$type};\r\n" .
" name=\"{$name}\"\r\n" .
"Content-Disposition: attachment;\r\n" .
" filename=\"{$fileatt_name}\"\r\n" .
"Content-Transfer-Encoding: base64\n\n" .
$data . "\n\n";
}
}
$message.="--{$mime_boundary}--\r\n";
$headers = 'From: ' . $website_naam . ' <' . $eigen_emailadres . '>' . "\r\n";
$headers .= 'Reply-To: ' . $naam_verzender . ' <' . $email_verzender . '>' . "\r\n";
$headers .= 'Return-Path: Mail-Error <' . $error_emailadres . '>' . "\r\n";
$headers .= ($bcc_emailadres != '') ? 'Bcc: ' . $bcc_emailadres . "\r\n" : '';
$headers .= 'X-Mailer: PHP/' . phpversion() . "\r\n";
$headers .= 'X-Priority: Normal' . "\r\n";
$headers .= ($html) ? 'MIME-Version: 1.0' . "\r\n" : '';
$headers .= ($html) ? 'Content-type: text/html; charset=iso-8859-1' . "\r\n" : '';
$headers .= ($html) ? "Content-Type: multipart/mixed;\r\n" .
$headers .= ($html) ? "boundary=\"{$mime_boundary}\"";
if(mail($to, $subject, $message, $headers))
{
echo "Dankje om je gegevens door te zenden.<br>We nemen die door en contacteren je zo snel mogelijk.";
_log($log_file,$ip,$email,'Mail call successful.');
} else {
echo "Error in mail.<br>Probeer opnieuw door hieronder te klikken.";
$last_error = error_get_last();
_log($log_file,$ip,$email,"Mail call failed - {$last_error['message']}");
}
?>
$_POST['name'];
$_POST['phone'];
$_POST['email'];
$_POST['website'];
$_POST['beschrijving'];
$_POST['socialURL'];
$_POST['cmname'];
$_POST['faciliteit'];
$_POST['add'];
$_POST['city'];
$_POST['zip'];
$_POST['keywords1'];
$_POST['keywords2'];
$_POST['keywords3'];
$_POST['keywords4'];
$_POST['keywords5'];
$_POST['keywords6'];
$_POST['prijslijst'];
$_POST['openingsuren'];
$_POST['klikbaar'];
$_POST['socialFB'];
$_POST['socialTW'];
$_POST['socialIN'];
$_POST['socialGP'];
$_POST['opmerking'];
// append data to a log file
function _log($log_file,$ip,$email,$message)
{
$str = date('Y-m-d H:i:s') . " IP:$ip, EM:$email, $message\r\n";
file_put_contents($log_file,$str,FILE_APPEND);
}
$log_file = 'http://www.domain.com/logs/log.txt'; // log text file name
$ip = $_SERVER['REMOTE_ADDR']; // get ip to short variable name for logging purposes
$website_naam = 'Mijn Site';
$eigen_emailadres = '[email protected]';
$error_emailadres = '[email protected]';
$naam_verzender = 'Afzender';
$email_verzender = 'emailadres_van_verzender@zijn_domein.nl';
$bcc_emailadres = '[email protected]';
$html = true;
$to = "[email protected]";
$subject= "inschrijving";
$message = "
Faciliteit: $_POST['faciliteit'];
Naam bedrijf: $_POST['cmname'];
Adres: $_POST['add']; $_POST['zip']; $_POST['city'];
Beschrijving:
$_POST['beschrijving'];
Video:
$_POST['socialURL'];
Kernwoorden:
$_POST['keywords1'];
$_POST['keywords2'];
$_POST['keywords3'];
$_POST['keywords4'];
$_POST['keywords5'];
$_POST['keywords6'];
Prijslijst:
$_POST['prijslijst'];
Openklikbare tekst:
$_POST['klikbaar'];
Contactpersoon: $_POST['name'];
Telefoon: $_POST['phone'];
Email: $_POST['email'];
Website: $_POST['website'];
Openingsuren:
$_POST['openingsuren'];
Facebook: $_POST['socialFB'];
Instagram: $_POST['socialIN'];
Twitter: $_POST['socialTW'];
Google Plus: $_POST['socialGP'];
Verdere opmerkingen:
$_POST['opmerking'];
";
$mime_boundary="==Multipart_Boundary_x".md5(mt_rand())."x";
$message = "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\r\n" .
"Content-Type: text/plain; charset=\"iso-8859-1\"\r\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
$message . "\n\n";
foreach($_FILES as $userfile)
{
$tmp_name = $userfile['tmp_name'];
$type = $userfile['type'];
$name = $userfile['name'];
$size = $userfile['size'];
if (file_exists($tmp_name))
{
if(is_uploaded_file($tmp_name))
{
$file = fopen($tmp_name,'rb');
$data = fread($file,filesize($tmp_name));
fclose($file);
$data = chunk_split(base64_encode($data));
}
$message .= "--{$mime_boundary}\r\n" .
"Content-Type: {$type};\r\n" .
" name=\"{$name}\"\r\n" .
"Content-Disposition: attachment;\r\n" .
" filename=\"{$fileatt_name}\"\r\n" .
"Content-Transfer-Encoding: base64\n\n" .
$data . "\n\n";
}
}
$message.="--{$mime_boundary}--\r\n";
$headers = 'From: ' . $website_naam . ' <' . $eigen_emailadres . '>' . "\r\n";
$headers .= 'Reply-To: ' . $naam_verzender . ' <' . $email_verzender . '>' . "\r\n";
$headers .= 'Return-Path: Mail-Error <' . $error_emailadres . '>' . "\r\n";
$headers .= ($bcc_emailadres != '') ? 'Bcc: ' . $bcc_emailadres . "\r\n" : '';
$headers .= 'X-Mailer: PHP/' . phpversion() . "\r\n";
$headers .= 'X-Priority: Normal' . "\r\n";
$headers .= ($html) ? 'MIME-Version: 1.0' . "\r\n" : '';
$headers .= ($html) ? 'Content-type: text/html; charset=iso-8859-1' . "\r\n" : '';
$headers .= ($html) ? "Content-Type: multipart/mixed;\r\n" .
$headers .= ($html) ? "boundary=\"{$mime_boundary}\"";
if(mail($to, $subject, $message, $headers))
{
echo "Dankje om je gegevens door te zenden.<br>We nemen die door en contacteren je zo snel mogelijk.";
_log($log_file,$ip,$email,'Mail call successful.');
} else {
echo "Error in mail.<br>Probeer opnieuw door hieronder te klikken.";
$last_error = error_get_last();
_log($log_file,$ip,$email,"Mail call failed - {$last_error['message']}");
}
?>
Gewijzigd op 05/03/2018 18:29:28 door Bruintje Negrito
Regel 3 t/m 27 zijn ook onnodig.
Kijk anders in een apart .php-bestand met dit wat je volledige pad is:
Misschien kan je in je FTP-programma wel een mapje hogerop komen om je log veilig te stellen.
En als je wilt loggen moet je op lijn 36 geen URL invoeren, maar de bestandsnaam. Als je ../ ervoor gebruikt, dan ga je een mapje hoger.
Kijk anders in een apart .php-bestand met dit wat je volledige pad is:
Misschien kan je in je FTP-programma wel een mapje hogerop komen om je log veilig te stellen.
En als je wilt loggen moet je op lijn 36 geen URL invoeren, maar de bestandsnaam. Als je ../ ervoor gebruikt, dan ga je een mapje hoger.
Dit komt er wanneer ik je code in een nieuw doc steek: /customers/5/6/9/DOMAIN.COM/httpd.www
Hoe heet mijn log.txt dan?
Ik heb ook overal waar "\n" stond er "\r\n" van gemaakt. Dat mocht?
Hoe heet mijn log.txt dan?
Ik heb ook overal waar "\n" stond er "\r\n" van gemaakt. Dat mocht?
Ik weet niet of je in FTP een mapje hoger kan komen, en anders kan je hem ook in een beveiligde map plaatsen.
Zo te zien kan je bij one.com ook mappen beveiligen met een password. Dan is je logbestand ook veilig, als je hem daar in plaatst.
Zo te zien kan je bij one.com ook mappen beveiligen met een password. Dan is je logbestand ook veilig, als je hem daar in plaatst.
Gewijzigd op 05/03/2018 18:45:03 door - Ariën -
Aangemaakt. Dus dit is nu mijn beveiligde url: https://www.DOMAIN.com/logs
Dus nu een log.text aanmaken en in die folder opladen, en dan deze aanpassen:
$log_file = 'http://www.domain.com/logs/log.txt';
Is de aanpassing van de "\r\n" correct?
Dan ziet de code er zo uit:
Is dit het meest mogelijk beveiligd?
Dus nu een log.text aanmaken en in die folder opladen, en dan deze aanpassen:
$log_file = 'http://www.domain.com/logs/log.txt';
Is de aanpassing van de "\r\n" correct?
Dan ziet de code er zo uit:
Is dit het meest mogelijk beveiligd?
Code (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
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
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
<?php
// append data to a log file
function _log($log_file,$ip,$email,$message)
{
$str = date('Y-m-d H:i:s') . " IP:$ip, EM:$email, $message\r\n";
file_put_contents($log_file,$str,FILE_APPEND);
}
$log_file = 'http://www.domain.com/logs/log.txt'; // log text file name
$ip = $_SERVER['REMOTE_ADDR']; // get ip to short variable name for logging purposes
$website_naam = 'Mijn Site';
$eigen_emailadres = '[email protected]';
$error_emailadres = '[email protected]';
$naam_verzender = 'Afzender';
$email_verzender = 'emailadres_van_verzender@zijn_domein.nl';
$bcc_emailadres = '[email protected]';
$html = true;
$to = "[email protected]";
$subject= "inschrijving";
$message = "
Faciliteit: $_POST['faciliteit'];
Naam bedrijf: $_POST['cmname'];
Adres: $_POST['add']; $_POST['zip']; $_POST['city'];
Beschrijving:
$_POST['beschrijving'];
Video:
$_POST['socialURL'];
Kernwoorden:
$_POST['keywords1'];
$_POST['keywords2'];
$_POST['keywords3'];
$_POST['keywords4'];
$_POST['keywords5'];
$_POST['keywords6'];
Prijslijst:
$_POST['prijslijst'];
Openklikbare tekst:
$_POST['klikbaar'];
Contactpersoon: $_POST['name'];
Telefoon: $_POST['phone'];
Email: $_POST['email'];
Website: $_POST['website'];
Openingsuren:
$_POST['openingsuren'];
Facebook: $_POST['socialFB'];
Instagram: $_POST['socialIN'];
Twitter: $_POST['socialTW'];
Google Plus: $_POST['socialGP'];
Verdere opmerkingen:
$_POST['opmerking'];
";
$mime_boundary="==Multipart_Boundary_x".md5(mt_rand())."x";
$message = "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\r\n" .
"Content-Type: text/plain; charset=\"iso-8859-1\"\r\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
$message . "\n\n";
foreach($_FILES as $userfile)
{
$tmp_name = $userfile['tmp_name'];
$type = $userfile['type'];
$name = $userfile['name'];
$size = $userfile['size'];
if (file_exists($tmp_name))
{
if(is_uploaded_file($tmp_name))
{
$file = fopen($tmp_name,'rb');
$data = fread($file,filesize($tmp_name));
fclose($file);
$data = chunk_split(base64_encode($data));
}
$message .= "--{$mime_boundary}\r\n" .
"Content-Type: {$type};\r\n" .
" name=\"{$name}\"\r\n" .
"Content-Disposition: attachment;\r\n" .
" filename=\"{$fileatt_name}\"\r\n" .
"Content-Transfer-Encoding: base64\n\n" .
$data . "\n\n";
}
}
$message.="--{$mime_boundary}--\r\n";
$headers = 'From: ' . $website_naam . ' <' . $eigen_emailadres . '>' . "\r\n";
$headers .= 'Reply-To: ' . $naam_verzender . ' <' . $email_verzender . '>' . "\r\n";
$headers .= 'Return-Path: Mail-Error <' . $error_emailadres . '>' . "\r\n";
$headers .= ($bcc_emailadres != '') ? 'Bcc: ' . $bcc_emailadres . "\r\n" : '';
$headers .= 'X-Mailer: PHP/' . phpversion() . "\r\n";
$headers .= 'X-Priority: Normal' . "\r\n";
$headers .= ($html) ? 'MIME-Version: 1.0' . "\r\n" : '';
$headers .= ($html) ? 'Content-type: text/html; charset=iso-8859-1' . "\r\n" : '';
$headers .= ($html) ? "Content-Type: multipart/mixed;\r\n" .
$headers .= ($html) ? "boundary=\"{$mime_boundary}\"";
if(mail($to, $subject, $message, $headers))
{
echo "Dankje om je gegevens door te zenden.<br>We nemen die door en contacteren je zo snel mogelijk.";
_log($log_file,$ip,$email,'Mail call successful.');
} else {
echo "Error in mail.<br>Probeer opnieuw door hieronder te klikken.";
$last_error = error_get_last();
_log($log_file,$ip,$email,"Mail call failed - {$last_error['message']}");
}
?>
// append data to a log file
function _log($log_file,$ip,$email,$message)
{
$str = date('Y-m-d H:i:s') . " IP:$ip, EM:$email, $message\r\n";
file_put_contents($log_file,$str,FILE_APPEND);
}
$log_file = 'http://www.domain.com/logs/log.txt'; // log text file name
$ip = $_SERVER['REMOTE_ADDR']; // get ip to short variable name for logging purposes
$website_naam = 'Mijn Site';
$eigen_emailadres = '[email protected]';
$error_emailadres = '[email protected]';
$naam_verzender = 'Afzender';
$email_verzender = 'emailadres_van_verzender@zijn_domein.nl';
$bcc_emailadres = '[email protected]';
$html = true;
$to = "[email protected]";
$subject= "inschrijving";
$message = "
Faciliteit: $_POST['faciliteit'];
Naam bedrijf: $_POST['cmname'];
Adres: $_POST['add']; $_POST['zip']; $_POST['city'];
Beschrijving:
$_POST['beschrijving'];
Video:
$_POST['socialURL'];
Kernwoorden:
$_POST['keywords1'];
$_POST['keywords2'];
$_POST['keywords3'];
$_POST['keywords4'];
$_POST['keywords5'];
$_POST['keywords6'];
Prijslijst:
$_POST['prijslijst'];
Openklikbare tekst:
$_POST['klikbaar'];
Contactpersoon: $_POST['name'];
Telefoon: $_POST['phone'];
Email: $_POST['email'];
Website: $_POST['website'];
Openingsuren:
$_POST['openingsuren'];
Facebook: $_POST['socialFB'];
Instagram: $_POST['socialIN'];
Twitter: $_POST['socialTW'];
Google Plus: $_POST['socialGP'];
Verdere opmerkingen:
$_POST['opmerking'];
";
$mime_boundary="==Multipart_Boundary_x".md5(mt_rand())."x";
$message = "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\r\n" .
"Content-Type: text/plain; charset=\"iso-8859-1\"\r\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
$message . "\n\n";
foreach($_FILES as $userfile)
{
$tmp_name = $userfile['tmp_name'];
$type = $userfile['type'];
$name = $userfile['name'];
$size = $userfile['size'];
if (file_exists($tmp_name))
{
if(is_uploaded_file($tmp_name))
{
$file = fopen($tmp_name,'rb');
$data = fread($file,filesize($tmp_name));
fclose($file);
$data = chunk_split(base64_encode($data));
}
$message .= "--{$mime_boundary}\r\n" .
"Content-Type: {$type};\r\n" .
" name=\"{$name}\"\r\n" .
"Content-Disposition: attachment;\r\n" .
" filename=\"{$fileatt_name}\"\r\n" .
"Content-Transfer-Encoding: base64\n\n" .
$data . "\n\n";
}
}
$message.="--{$mime_boundary}--\r\n";
$headers = 'From: ' . $website_naam . ' <' . $eigen_emailadres . '>' . "\r\n";
$headers .= 'Reply-To: ' . $naam_verzender . ' <' . $email_verzender . '>' . "\r\n";
$headers .= 'Return-Path: Mail-Error <' . $error_emailadres . '>' . "\r\n";
$headers .= ($bcc_emailadres != '') ? 'Bcc: ' . $bcc_emailadres . "\r\n" : '';
$headers .= 'X-Mailer: PHP/' . phpversion() . "\r\n";
$headers .= 'X-Priority: Normal' . "\r\n";
$headers .= ($html) ? 'MIME-Version: 1.0' . "\r\n" : '';
$headers .= ($html) ? 'Content-type: text/html; charset=iso-8859-1' . "\r\n" : '';
$headers .= ($html) ? "Content-Type: multipart/mixed;\r\n" .
$headers .= ($html) ? "boundary=\"{$mime_boundary}\"";
if(mail($to, $subject, $message, $headers))
{
echo "Dankje om je gegevens door te zenden.<br>We nemen die door en contacteren je zo snel mogelijk.";
_log($log_file,$ip,$email,'Mail call successful.');
} else {
echo "Error in mail.<br>Probeer opnieuw door hieronder te klikken.";
$last_error = error_get_last();
_log($log_file,$ip,$email,"Mail call failed - {$last_error['message']}");
}
?>
Je schrijft naar een bestand, en NIET naar een URL.
Dus je moet enkel je bestandsnaam opgeven.
Dus je moet enkel je bestandsnaam opgeven.
Gewijzigd op 05/03/2018 18:58:58 door - Ariën -
Dus enkel dit:
$log_file = 'log.txt';
ook al staat die log.txt in een andere folder?
Ik heb de folder "logs" aangemaakt, en daarin htaccess en htpassw en log.txt opgeladen.
Op die url /logs/log.txt krijg ik nu 500 Internal Server Error
$log_file = 'log.txt';
ook al staat die log.txt in een andere folder?
Ik heb de folder "logs" aangemaakt, en daarin htaccess en htpassw en log.txt opgeladen.
Op die url /logs/log.txt krijg ik nu 500 Internal Server Error
Gewijzigd op 05/03/2018 19:03:13 door Bruintje Negrito
Log staat in de map 'log' ;-)
Ik heb geen map "log"
Ik heb de folder "logs" aangemaakt, en daarin htaccess en htpassw en log.txt opgeladen.
Op die url /logs/log.txt krijg ik nu 500 Internal Server Error
Of moet ik de map "log" heten omdat dit er staat:
function _log
Ook nog: de site heeft charset=utf-8, dus moet deze lijn ook aangepast worden?
$headers .= ($html) ? 'Content-type: text/html; charset=iso-8859-1' . "\r\n" : '';
wordt
$headers .= ($html) ? 'Content-type: text/html; charset=utf-8' . "\r\n" : '';
En deze
"Content-Type: text/plain; charset=\"iso-885\"\r\n" .
wordt
"Content-Type: text/plain; charset=\"utf-8\"\r\n" .
Correct?
Ik heb de folder "logs" aangemaakt, en daarin htaccess en htpassw en log.txt opgeladen.
Op die url /logs/log.txt krijg ik nu 500 Internal Server Error
Of moet ik de map "log" heten omdat dit er staat:
function _log
Ook nog: de site heeft charset=utf-8, dus moet deze lijn ook aangepast worden?
$headers .= ($html) ? 'Content-type: text/html; charset=iso-8859-1' . "\r\n" : '';
wordt
$headers .= ($html) ? 'Content-type: text/html; charset=utf-8' . "\r\n" : '';
En deze
"Content-Type: text/plain; charset=\"iso-885\"\r\n" .
wordt
"Content-Type: text/plain; charset=\"utf-8\"\r\n" .
Correct?
Gewijzigd op 05/03/2018 19:14:08 door Bruintje Negrito
Nog wat dingen:
- gotcha: bestanden ter grootte 0, dat levert mogelijk problemen met filesize() in de passage "fread($file,filesize($tmp_name));"
- het content-type van attachments staat ingesteld op $fileatt_name, waar komt deze waarde vandaan?
- validatie van form-data en attachments ontbreekt? het kan dus zijn dat er fouten zijn met uploads, maar dat wordt nergens ondervangen
- je stelt nu op twee plekken dezelfde headers in, dit moet je nog even gelijk trekken... in $message en in $headers
- gotcha: bestanden ter grootte 0, dat levert mogelijk problemen met filesize() in de passage "fread($file,filesize($tmp_name));"
- het content-type van attachments staat ingesteld op $fileatt_name, waar komt deze waarde vandaan?
- validatie van form-data en attachments ontbreekt? het kan dus zijn dat er fouten zijn met uploads, maar dat wordt nergens ondervangen
- je stelt nu op twee plekken dezelfde headers in, dit moet je nog even gelijk trekken... in $message en in $headers
Dankje voor je reactie, Thomas, maar om op je vier punten te antwoorden: geen idee ...
- waar staat gotcha?
- $fileatt_name : heb ik behouden van de originele code die ik online vond
- validatie van form-data en attachments: wat is dat en hoe ziet dat beest eruit?
- bedoel je dat dit een header is:
$message = "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\r\n" .
"Content-Type: text/plain; charset=\"utf-8\"\r\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
- waar staat gotcha?
- $fileatt_name : heb ik behouden van de originele code die ik online vond
- validatie van form-data en attachments: wat is dat en hoe ziet dat beest eruit?
- bedoel je dat dit een header is:
$message = "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\r\n" .
"Content-Type: text/plain; charset=\"utf-8\"\r\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
Een "gotcha" is een losse kei in je code waar vaak over gestruikeld wordt :p.
Ben hier al de hele tijd aan het struikelen; zo'n keitje kan er nog bij ...
Maar we gaan niet meer vooruit!
Maar we gaan niet meer vooruit!
Misschien is het eigenlijk wel eenvoudiger om de phpMailer of Switftmailer class te gebruiken, maar dan moet je wel weten hoe je het inbouwt. Je hoeft dan zelf niet met headers te klooien, plus dat je meer controle hebt over het verzend-proces van een mail, en de nodige foutmeldingen die een mailserver geeft als je direct met het SMTP babbelt.
Het is net wat je makkelijk vindt werken. Voor een beginner (als die de basis van PHP kent) zou ik het wel aanraden. Maar dan moet je wel je script omgooien.
Ik merk dat je nu ook tegen diverse dingen struikelt doordat je de nodige ervaring mist. Je kan wel wat prutsen en hopen dat het goed werkt, maar je wilt ook moeten weten wat er precies gebeurd en waarom. met prutsen zonder te weten wat er gebeurd is de kans op veiligheidslekken een stuk groter, en heb je kans dat je script een rommeltje wordt.
Het is net wat je makkelijk vindt werken. Voor een beginner (als die de basis van PHP kent) zou ik het wel aanraden. Maar dan moet je wel je script omgooien.
Ik merk dat je nu ook tegen diverse dingen struikelt doordat je de nodige ervaring mist. Je kan wel wat prutsen en hopen dat het goed werkt, maar je wilt ook moeten weten wat er precies gebeurd en waarom. met prutsen zonder te weten wat er gebeurd is de kans op veiligheidslekken een stuk groter, en heb je kans dat je script een rommeltje wordt.
Snap je, Ariën.
Bestaat er dan nergens een php formulier met multiple files upload, dat voor handen ligt? Ergens online beschikbaar en gewoon te kopiëren en finetunen? Al mijn kennis komt uit trial and error, maar over dit formulier heb ik maar één code gevonden, en da's deze. En dan lukt die niet ...
Bestaat er dan nergens een php formulier met multiple files upload, dat voor handen ligt? Ergens online beschikbaar en gewoon te kopiëren en finetunen? Al mijn kennis komt uit trial and error, maar over dit formulier heb ik maar één code gevonden, en da's deze. En dan lukt die niet ...
Hier moet je wel wat kunnen vinden:
https://www.google.nl/search?q=php+contact+script+files+upload
Maar zoals ik al zei: 'trial and error' zonder de basiskennis te kennen, raad ik af.
Als je een script gaat zoeken op internet, let er op dat deze niet te gedateerd is en zo recent mogelijk. Er zijn helaas al genoeg lekke scripts te vinden uit 2009.
https://www.google.nl/search?q=php+contact+script+files+upload
Maar zoals ik al zei: 'trial and error' zonder de basiskennis te kennen, raad ik af.
Als je een script gaat zoeken op internet, let er op dat deze niet te gedateerd is en zo recent mogelijk. Er zijn helaas al genoeg lekke scripts te vinden uit 2009.
Gewijzigd op 05/03/2018 20:16:04 door - Ariën -




