Krijg me phpmailer niet aan de gang ?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Jordy R

Jordy R

29/12/2014 07:50:27
Quote Anchor link
Krijg iedere keer de "Failed to move file to /tmp/3ed3186da55a7462dffaeaec5f1449ac0227e16500mHVo "

Ik Neem aan dat me directory niet goed is waar ik het bestand tijdelijke wil opslaan.
Maar het is toch een temp file ?

Alvast bedankt voor de hulp.

Dit zijn de codes standaard PHPmailer scripts.


PHPMailerAutoload.php
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
<?php
/**
 * PHPMailer SPL autoloader.
 * PHP Version 5
 * @package PHPMailer
 * @link https://github.com/PHPMailer/PHPMailer/ The PHPMailer GitHub project
 * @author Marcus Bointon (Synchro/coolbru) <[email protected]>
 * @author Jim Jagielski (jimjag) <[email protected]>
 * @author Andy Prevost (codeworxtech) <[email protected]>
 * @author Brent R. Matzelle (original founder)
 * @copyright 2012 - 2014 Marcus Bointon
 * @copyright 2010 - 2012 Jim Jagielski
 * @copyright 2004 - 2009 Andy Prevost
 * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
 * @note This program is distributed in the hope that it will be useful - WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.
 */

/**
 * PHPMailer SPL autoloader.
 * @param string $classname The name of the class to load
 */

function PHPMailerAutoload($classname)
{

    //Can't use __DIR__ as it's only in PHP 5.3+
    $filename = dirname(__FILE__).DIRECTORY_SEPARATOR.'class.'.strtolower($classname).'.php';
    if (is_readable($filename)) {
        require $filename;
    }
}


if (version_compare(PHP_VERSION, '5.1.2', '>=')) {
    //SPL autoloading was introduced in PHP 5.1.2
    if (version_compare(PHP_VERSION, '5.3.0', '>=')) {
        spl_autoload_register('PHPMailerAutoload', true, true);
    }
else {
        spl_autoload_register('PHPMailerAutoload');
    }
}
else {
    /**
     * Fall back to traditional autoload for old PHP versions
     * @param string $classname The name of the class to load
     */

    function __autoload($classname)
    {

        PHPMailerAutoload($classname);
    }
}


?>


En me mailpagina.
<?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 = tempnam(sys_get_temp_dir(), sha1($_FILES['userfile']['name']));
    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 '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;
    }
}

?>

<!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;
}
?>

</body>
</html>


Toevoeging op 29/12/2014 07:52:53:

p.s wat zijn de code Tags om html in vensters te weergeven op dit form ?

- Aar -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 30/12/2014 13:51:40 door - Ariën -
 
PHP hulp

PHP hulp

19/12/2024 11:40:54
 
- Ariën  -
Beheerder

- Ariën -

29/12/2014 07:56:47
Quote Anchor link
[code] en [/code]

Ik vermoed dat je geen rechten hebt om in de /tmp te schrijven. Heb je de server in eigen beheer?
 
Frank Nietbelangrijk

Frank Nietbelangrijk

29/12/2014 09:18:46
Quote Anchor link
Heeft denk ik niets met PHPMailer te maken maar met de functie move_uploaded_file().
Op regel tien gaat het niet helemaal goed als je het mij vraagt. in $uploadfile zou een volledig path moeten komen naar een directory met voldoende schrijfrechten.

Stel dat de documentroot van je website dit is:

/var/www/html

en je maakt daarin een directory uploads met voldoende schrijfrechten

dan zou er in $uploadfile moeten komen:

/var/www/html/uploads/3ed3186da55a7462dffaeaec5f1449ac0227e16500mHVo

Plaats dus ook even een echo $uploadfile; zodat je kan zien hoe het path er uit ziet.
 
Jordy R

Jordy R

29/12/2014 12:31:43
Quote Anchor link
Ik heb een cpanel account
Ik kan hand matig wel een map aanmaken in /tmp.

Hoe moet ik dit formuleren ben niet bekend met de functies hier onder
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$uploadfile = tempnam(sys_get_temp_dir(/var/www/html/uploads/), sha1($_FILES['userfile']['name']));
 
- Ariën  -
Beheerder

- Ariën -

29/12/2014 12:39:27
Quote Anchor link
Probeer eens dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo $uploadfile;
?>
 
Jordy R

Jordy R

29/12/2014 13:03:10
Quote Anchor link
/tmp/3ed3186da55a7462dffaeaec5f1449ac0227e16500mHVo "
Krijg ik dit te zien
 
- SanThe -

- SanThe -

29/12/2014 13:29:28
Quote Anchor link
Dus je wilt de temp-file naar zichzelf verplaatsen.
Dat gaat niet.

Geef een ander/goed path in.
 
Jordy R

Jordy R

29/12/2014 13:53:41
Quote Anchor link
Waar moet ik dat pad ingeven en waar schrijf ik dat?
Zeg dat mijn pad /upload is waar komt dat te staan en is dit dat een permanente of tmp file
 
- SanThe -

- SanThe -

29/12/2014 13:57:12
Quote Anchor link
$uploadfile = '/upload/naam.ext';
 
- Ariën  -
Beheerder

- Ariën -

29/12/2014 13:57:21
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$uploadfile
= "/uploads/".sha1($_FILES['userfile']['name'];
?>


Dan moet je zelf even een map in je webroot aanmaken die 'uploads' heet, en die eventueel schrijfrechten geven (755 of anders 777)
Gewijzigd op 29/12/2014 13:57:36 door - Ariën -
 
- SanThe -

- SanThe -

29/12/2014 13:58:10
Quote Anchor link
Jordy R op 29/12/2014 13:53:41:
is dit dat een permanente of tmp file


Permanent.
 
Jordy R

Jordy R

30/12/2014 11:37:18
Quote Anchor link
Krijg het script na uren puzzelen nog niet aan de praat denk ook niet dat het aan de directory ligt.

Ziet iemand de oplossing of weet er iemand een ander (goed) script die het mogelijk maakt een bestand up te Loaden en te versturen per email.

Alvast bedankt voor alle hulp.
 
- Ariën  -
Beheerder

- Ariën -

30/12/2014 12:13:39
Quote Anchor link
Waarom een ander script, terwijl je niet eens vertelt wat er nou niet lukt? Je gebruikt nu de PHP-functie om bestanden mee te uploaden, een ander script zou dus hetzelfde resultaat als nu opleveren.

Dus kom eens met meer duidelijkheid aan...
Gewijzigd op 30/12/2014 12:14:27 door - Ariën -
 
Jordy R

Jordy R

30/12/2014 12:18:02
Quote Anchor link
Hij blijft "Failed to move file" gegeven ongeacht in welke directory ik upload
 
- SanThe -

- SanThe -

30/12/2014 12:33:01
Quote Anchor link
Laat die enkele regels eens zien.

Bestaat de map?
Juiste rechten op de map?
 
Jordy R

Jordy R

30/12/2014 12:37:31
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$uploadfile = "/contracten/".$_FILES['userfile']['name'];
    if (move_uploaded_file($_FILES['userfile']['name'], $uploadfile)) {
        // Upload handled successfully


Map bestaat en heeft 777 rechten
 
- Ariën  -
Beheerder

- Ariën -

30/12/2014 12:40:25
Quote Anchor link
En wat zegt $uploadfile als je die echo'ed? En meldt $_FILES['userfile']['error'] ook nog wat nadat je de upload uit probeert te voeren?

Uit veiligheidsoverwegingen raad ik aan om de naam niet hetzelfde te houden als het bestand wat je uploadt.
Gewijzigd op 30/12/2014 12:41:18 door - Ariën -
 
- SanThe -

- SanThe -

30/12/2014 13:20:29
Quote Anchor link
Nu heb je de eerste parameter weer veranderd.
Dat moet tmp_name zijn i.p.v. name.
 
Jordy R

Jordy R

30/12/2014 13:26:52
Quote Anchor link
/contracten/test.pdf echoed $uploadfile
En error echoed 0

Toevoeging op 30/12/2014 13:35:15:

Was een beetje aan het proberen san hij staat nu weer op tmp_name maar resultaten van echo zijn het zelfde
Werkt het script bij jullie wel ?

Toevoeging op 30/12/2014 13:48:48:

hebben jullie hier iets aan ?



Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
echo'uploadfile '. $uploadfile.'<br><br>';
echo'error ' .$_FILES['userfile']['error'].'<br><br>';
echo'tmp ' .$_FILES['userfile']['tmp_name'].'<br><br>';
echo'name ' .$_FILES['userfile']['name'].'<br><br>';


/contracten/test.pdf

0

/tmp/phpATmSFc

test.pdf
 
- SanThe -

- SanThe -

30/12/2014 13:58:13
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$uploadfile
= "/contracten/".$_FILES['userfile']['name'];
if(!is_writable($uploadfile)) echo 'Kan niet schrijven';
if(move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
?>
Gewijzigd op 30/12/2014 13:58:28 door - SanThe -
 
Jordy R

Jordy R

30/12/2014 14:04:02
Quote Anchor link
Kan niet schrijven echo hij
 

Pagina: 1 2 volgende »



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.