Krijg me phpmailer niet aan de gang ?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

- Ariën  -
Beheerder

- Ariën -

30/12/2014 14:06:45
Quote Anchor link
Probeer eens met $_SERVER['DOCUMENT_ROOT'] erbij?


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
<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.
Gewijzigd op 30/12/2014 14:07:22 door - Ariën -
 
PHP hulp

PHP hulp

25/04/2024 19:54:12
 
- SanThe -

- SanThe -

30/12/2014 14:07:10
Quote Anchor link
Dan is het path niet goed of de rechten zijn niet goed.
Staat de map contracten in dezelfde map als het php-bestand?
 
Jordy R

Jordy R

30/12/2014 14:16:07
Quote Anchor link
Allemaal maar met Aar script krijg ik dit

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
 
- SanThe -

- SanThe -

30/12/2014 14:19:32
Quote Anchor link
Klopt, dus die zet je er even bij.

$uploadfile = $_SERVER['DOCUMENT_ROOT']."/contracten/".$_FILES['userfile']['name'];

Toevoeging op 30/12/2014 14:20:21:

Werkt het nou opeens?
Wat heb je aangepast?
 
Jordy R

Jordy R

30/12/2014 14:20:55
Quote Anchor link
Ik heb er een map tussen gezet en nu wekt hij wel maar waarom snap ik echt niet ?

Upload locatie:/home/reclam2q/public_html/data/contracten/Verkoopfactuur1.pdf
 
- Ariën  -
Beheerder

- Ariën -

30/12/2014 14:22:20
Quote Anchor link
Ik heb het op Windows uitgetest, blijkbaar zet die er een trailing slash achter.
Blijft nog steeds de vraag: Waarom zou hij falen.

Kan je eens heel de array van $_FILES laten zien?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo "<pre>".$_FILES."</pre>";
?>


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?
 
Jordy R

Jordy R

30/12/2014 14:31:51
Quote Anchor link
Geeft array als waarde
 
- SanThe -

- SanThe -

30/12/2014 14:34:28
Quote Anchor link
Aar bedoelt dit waarschijnlijk:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo "<pre>".print_r($_FILES, true)."</pre>";
?>
 
Jordy R

Jordy R

30/12/2014 14:46:07
Quote Anchor link
Geeft voor versturen Array () en na versturen niks

Upload werkt maar mail script weer niet "Doe ik nu zulke rare dingen"

Hier nogmaals me script tot nu toe
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
<?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>
Gewijzigd op 30/12/2014 14:53:44 door Jordy R
 
Ivo P

Ivo P

30/12/2014 15:00:51
Quote Anchor link
dus de file staat uiteindelijk wel op de plek waar je hem neer wilt zetten, (dat is regel 12)

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
ini_set('display_errors', 1);
error_reporing(E_ALL);
?>



Krijg je dan nog geen foutmeling, dan zet je in het blok na regel 13 een paar keer:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo 'regel : '. __LINE__ . '<br> ';
?>


om te zien waar je script strandt.
Gewijzigd op 30/12/2014 15:02:28 door Ivo P
 
Frank Nietbelangrijk

Frank Nietbelangrijk

30/12/2014 15:31:48
Quote Anchor link
Beste Jordy,

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
 
Jordy R

Jordy R

30/12/2014 17:10:22
Quote Anchor link
nog wat gepuzzeld en
alles werkt ik wil jullie graag bedanken voor alle moeite en tijd.

er zat ook een fout in me class.phpmailer

Dank u
 
Ivo P

Ivo P

30/12/2014 18:04:50
Quote Anchor link
wat is toch die "me"? is het niet php wat je gebruikt?

of is "me" een of andere afkorting of begrip dat ik niet ken?
 
- SanThe -

- SanThe -

30/12/2014 18:06:44
Quote Anchor link
me => mijn
 
- Ariën  -
Beheerder

- Ariën -

30/12/2014 21:08:33
Quote Anchor link
- SanThe - op 30/12/2014 14:34:28:
Aar bedoelt dit waarschijnlijk:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo "<pre>".print_r($_FILES, true)."</pre>";
?>

oeps...
Klopt, was de rest vergeten...
 

Pagina: « vorige 1 2



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.