Krijg me phpmailer niet aan de gang ?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<form method="post" enctype="multipart/form-data">
Kies een bestand: <input name="userfile" type="file"><br>
<input type="hidden" name="MAX_FILE_SIZE" value="1000000">
<input type="submit" value="Sturen!">
</form>
<?php
if($_SERVER['REQUEST_METHOD']=="POST") {
$uploadfile = $_SERVER['DOCUMENT_ROOT']."contracten/".$_FILES['userfile']['name'];
echo "Upload locatie:".$uploadfile;
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
$msg = "Gelukt!";
} else {
$msg = 'Failed to move file to ' . $uploadfile;
}
echo $msg;
}
?>
Dit werkt prima bij mij. Daarna kan je PHPmailer weer inbouwen.
Kies een bestand: <input name="userfile" type="file"><br>
<input type="hidden" name="MAX_FILE_SIZE" value="1000000">
<input type="submit" value="Sturen!">
</form>
<?php
if($_SERVER['REQUEST_METHOD']=="POST") {
$uploadfile = $_SERVER['DOCUMENT_ROOT']."contracten/".$_FILES['userfile']['name'];
echo "Upload locatie:".$uploadfile;
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
$msg = "Gelukt!";
} else {
$msg = 'Failed to move file to ' . $uploadfile;
}
echo $msg;
}
?>
Dit werkt prima bij mij. Daarna kan je PHPmailer weer inbouwen.
Gewijzigd op 30/12/2014 14:07:22 door - Ariën -
Staat de map contracten in dezelfde map als het php-bestand?
Upload locatie:/home/reclam2q/public_htmlcontracten/Verkoopfactuur1.pdf
Failed to move file to /home/reclam2q/public_htmlcontracten/Verkoopfactuur1.pdf
Mist een / tussen public_html en contracten volgens mj ?
Toevoeging op 30/12/2014 14:18:36:
Maar dat was niet het probleem nogmaals bedankt voor jullie geduld en hulp
$uploadfile = $_SERVER['DOCUMENT_ROOT']."/contracten/".$_FILES['userfile']['name'];
Toevoeging op 30/12/2014 14:20:21:
Werkt het nou opeens?
Wat heb je aangepast?
Upload locatie:/home/reclam2q/public_html/data/contracten/Verkoopfactuur1.pdf
Blijft nog steeds de vraag: Waarom zou hij falen.
Kan je eens heel de array van $_FILES laten zien?
Toevoeging op 30/12/2014 14:23:10:
Jordy R op 30/12/2014 14:20:55:
Ik heb er een map tussen gezet en nu wekt hij wel maar waarom snap ik echt niet ?
Geen rechten om de webroot te schrijven om magische redenen?
Geeft array als waarde
Upload werkt maar mail script weer niet "Doe ik nu zulke rare dingen"
Hier nogmaals me script tot nu toe
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
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
<?php
/**
* PHPMailer simple file upload and send example
*/
$msg = '';
if (array_key_exists('userfile', $_FILES)) {
// First handle the upload
// Don't trust provided filename - same goes for MIME types
// See http://php.net/manual/en/features.file-upload.php#114004 for more thorough upload validation
$uploadfile = $_SERVER['DOCUMENT_ROOT']."/Data/contracten/".$_FILES['userfile']['name'];
echo "Upload locatie:".$uploadfile;
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
// Upload handled successfully
// Now create a message
// This should be somewhere in your include_path
require ($_SERVER['DOCUMENT_ROOT'].'/Data/PHPMailerAutoload.php');
$mail = new PHPMailer;
$mail->setFrom('[email protected]', 'First Last');
$mail->addAddress('[email protected]', 'John Doe');
$mail->Subject = 'Verkoopmelding'.$Verkoopbureau;
$mail->msgHTML("My message body");
// Attach the uploaded file
$mail->addAttachment($uploadfile, 'My uploaded file');
if (!$mail->send()) {
$msg = "Mailer Error: " . $mail->ErrorInfo;
} else {
$msg = "Message sent!";
}
} else {
$msg = 'Failed to move file to ' . $uploadfile;
}
}
echo "<pre>".print_r($_FILES, true)."</pre>";
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>PHPMailer Upload</title>
</head>
<body>
<?php if (empty($msg)) { ?>
<form method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000"> Send this file: <input name="userfile" type="file">
<input type="submit" value="Send File">
</form>
<?php } else {
echo $msg;
echo "<pre>".print_r($_FILES, true)."</pre>";
} ?>
</body>
</html>
/**
* PHPMailer simple file upload and send example
*/
$msg = '';
if (array_key_exists('userfile', $_FILES)) {
// First handle the upload
// Don't trust provided filename - same goes for MIME types
// See http://php.net/manual/en/features.file-upload.php#114004 for more thorough upload validation
$uploadfile = $_SERVER['DOCUMENT_ROOT']."/Data/contracten/".$_FILES['userfile']['name'];
echo "Upload locatie:".$uploadfile;
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
// Upload handled successfully
// Now create a message
// This should be somewhere in your include_path
require ($_SERVER['DOCUMENT_ROOT'].'/Data/PHPMailerAutoload.php');
$mail = new PHPMailer;
$mail->setFrom('[email protected]', 'First Last');
$mail->addAddress('[email protected]', 'John Doe');
$mail->Subject = 'Verkoopmelding'.$Verkoopbureau;
$mail->msgHTML("My message body");
// Attach the uploaded file
$mail->addAttachment($uploadfile, 'My uploaded file');
if (!$mail->send()) {
$msg = "Mailer Error: " . $mail->ErrorInfo;
} else {
$msg = "Message sent!";
}
} else {
$msg = 'Failed to move file to ' . $uploadfile;
}
}
echo "<pre>".print_r($_FILES, true)."</pre>";
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>PHPMailer Upload</title>
</head>
<body>
<?php if (empty($msg)) { ?>
<form method="post" enctype="multipart/form-data">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000"> Send this file: <input name="userfile" type="file">
<input type="submit" value="Send File">
</form>
<?php } else {
echo $msg;
echo "<pre>".print_r($_FILES, true)."</pre>";
} ?>
</body>
</html>
Gewijzigd op 30/12/2014 14:53:44 door Jordy R
maar je script crasht zonder foutmelding voordat het bij regel 34 aankomt.
--
dan zou mijn eerste stap zijn om er zeker van de zijn dat de error reporing aan staat en hoog .
dit zet je bovenin je script:
Krijg je dan nog geen foutmeling, dan zet je in het blok na regel 13 een paar keer:
om te zien waar je script strandt.
Gewijzigd op 30/12/2014 15:02:28 door Ivo P
Iedereen probeert je goed te helpen en dat is prima maar als ik dit even vanaf een kleine afstand bekijk dan gaat er iets in de basis fout. Je wilt namelijk een script maken die twee dingen doet:
a) fileupload form met afhandeling
b) genereren en verzenden email
De fout die je maakt is dat je zevenmijlslaarzen aantrekt en van start in een stap naar de finish wilt. Dat doe je dus door een kant en klaar script te kopiëren en dan hoop je dat dit werkt.
Ik zou nu tegen je willen zeggen: ga eens terug naar start en begin met de file upload en haal die hele PHPMailer er eens uit. Zorg dat het perfect werkt en dat je begrijpt waarom het werkt. Hierbij dien je er voor te zorgen dat de afhandeling (het valideren en kopiëren van het bestand en opslaan van gegevens in de database) door een aparte functie of een groep van functies gebeurd. Vergeet daarnaast ook de beveiliging niet. een fileupload is in de basis een gapend gat in je firewall. Maak een whitelist van extensies die je accepteert maar vooral ook van de MIME-TYPES die je accepteert. Internet staan vol interessant leesvoer over dit onderwerp.
Waarom functies?
- Omdat je dan je code kunt scheiden.
- Omdat je code kunt hergebruiken in hetzelfde project maar ook in andere projecten
- Omdat je code veel beter leesbaar wordt
- Omdat je overlapping van variabelen uitsluit
Maak daarna een nieuw project die een functie aanroept en een email in elkaar zet en met PHPMailer verstuurd.
Pas daarna ga je de code samenvoegen.
Gewijzigd op 30/12/2014 15:39:05 door Frank Nietbelangrijk
alles werkt ik wil jullie graag bedanken voor alle moeite en tijd.
er zat ook een fout in me class.phpmailer
Dank u
of is "me" een of andere afkorting of begrip dat ik niet ken?
me => mijn
- SanThe - op 30/12/2014 14:34:28:
oeps...
Klopt, was de rest vergeten...