Probleempje met toevoegen bijlage.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Cmug

cmug

03/01/2008 15:24:00
Quote Anchor link
Hallo, ik probeer een bijlage te koppelen aan een formulier dat ik al heb , maar wil maar niet lukken. Ben al lang aan het zoeken.
Ik ga uit van het script dat hier staat:

http://zainal.wordpress.com/2007/01/10/sending-email-attachments-in-php-using-phpmailer-class/#comments

Bovenstaande script werkt OK. Als ik de code "invlecht" in mijn eigen formulier , werkt alles, maar.... er komt geen bijlage! Wel een foutmelding
Warning: array_push() [function.array-push]: First argument should be an array in etc on line 83
Maar met die foutmelding kom ik niet verder, (krijg hem der niet uit) vraag me ook af of dat 'het" wel is .
Wie ziet wat ik niet Zie ??
alvast bedankt voor mee denken.
hieronder mijn het belangrijkste uit 'mijn' code
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
<?php
//DEEL UIT CODE  (regel 16 foutcode rond "array_push")
//////////////////////////////////////// Upload file functie  ////////////////////////////////////////

function uploadFile($dir="",$filename="") {
//Variables Declaration
$dir = "upload_files/$filename";
$attachments = array();    

    global $attachments;
    while(list($key,$value) = each($_FILES["bijlage"]["name"]))
                {

                    
                    if(!empty($value))
                    {

                            $filename = $value;
                            array_push($attachments, $filename); /// snap niet wat hier doet dus zet maar uit zetten?(= foutmelding weg)
                            $dir = "upload_files/$filename";
                            $success = copy($_FILES["bijlage"]["tmp_name"][$key], $dir);
                    }
                }

                               if ($success) {
                                echo "<p><br><b>Files Uploaded Successfully<BR></b></p>";
                                SendIt();
                                    }
else {
                                            exit("<p><br><b>Sorry the server was unable to upload the files...</b></p>");
                                        }
}

//////////////////////////////////////// EINDE Upload file functie  ////////////////////////////////////////

//////////////////////////////////////// EINDE PHP Mailer With Attachment Func ////////////////////////////////////////

*/
function SendIt($name="",$email="",$onderwerp="",$bestemd_voor="",$message="",$filename="") {
    
$name                     =     stripslashes($_POST["name"]);
$email                     =     stripslashes($_POST["email"]);
$onderwerp            =     stripslashes($_POST["onderwerp"]);
$bestemd_voor     =     stripslashes($_POST["bestemd_voor"]);
$message             = stripslashes($_POST["message"]);    
$dir = "upload_files/$filename";
$attachments = array("");    

        require("class.phpmailer.php");
        //global $name,$email,$onderwerp,$bestemd_voor,$message,$attachments; /// MIJ onduidelijk wat dit is, en nut (google geft ook geen info)
        
        $mail = new PHPMailer();
        
        $mail->IsSMTP();                                        // send via SMTP
        $mail->Host     = "localhost";                     // SMTP servers
        $mail->SMTPAuth = false;                         // turn on/off SMTP authentication
        
        $mail->From     = "$email";
        $mail->FromName = "$name";
        $mail->AddAddress("[email protected]", "mijzelf"); // Eerste geadresseerde
        
        $mail->WordWrap = 50;// set word wrap

            foreach($attachments as $key => $value) {  //loop the Attachments to be added ...
            echo "<p><br><b>dit is een test 1</b></p>";
            $mail->AddAttachment("upload_files"."/".$value);
            }

        
        $mail->Subject = "$onderwerp";
        $mail->Body = "$message";
    
        if(!$mail->Send())
        {

           echo "<p><br><b>Er ging iets mis, je bericht is niet verstuurd, reden: </b></p>";
           echo "Mailer Error: " . $mail->ErrorInfo;
           exit;
        }

        
        echo "<p><br><b>De mail is verstuurd</b></p>";
        after mail is sent with attachments , delete the images on server ...
        foreach($attachments as $key => $value) {//remove the uploaded files ..
                echo "<p><br>dit is een test 2 (twee dus)</p>";
                unlink("upload_files"."/".$value);
            }        
        }


//////////////////// Hier het formulier ////////////////////
//(slechts stukje eruit)

function showForm($name="", $email="", $subject="", $message="",$valid="", $bestemd_voor="",$bijlage="") {
 ?>

<form action="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_SERVER['PHP_SELF']; ?>
" enctype="multipart/form-data" method="POST" >
<tr>
<td class=" Free_Form" align="left">Een bijlage toevoegen</td>
<td class=" Free_Form" align="left" colspan="2">
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
        $max_no_bijlagen
=1; // Maximum number of images value to be set here
        for($i=1; $i<=$max_no_bijlagen; $i++){
        echo "<input type=\"file\" name=\"bijlage[]\">";}
        ?>

</td>
</tr>
<tr>
<td class=" Free_Form" align="left" width="125"><input type="submit" name="submit" value="Verzenden"class='inputsmall'></td>
</td>
</form>
?>
 
PHP hulp

PHP hulp

25/04/2024 22:23:03
 
Cmug

cmug

03/01/2008 23:59:00
Quote Anchor link
De foutmelding heb ik er inmiddels al uit . Maar heeft verder weinig nut gehad. Is mij duidelijk dat de fout zit bij het niet juist invoegen van de bijlage in de "SendIt" function. Voorlopig heb ik het anders maar opgelost. Hele meervoudige bijlage idee geschrapt en alle array gedoe in dit verband uit het script geschreven. Nu werkt het wel goed. Maar is beperkt tot 1 bijlage.
 



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.