extra actie plaatsen achter upload button

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Tom Gerritse

Tom Gerritse

11/10/2007 15:15:00
Quote Anchor link
Hallo allemaal,

Ik ben sinds kort begonnen met php dus wees a.u.b. geduldig en duidelijk. Mijn niveau is leek/beginneling...

Ik heb het volgende: ik heb het onderstaand script geplaatst in een wachtwoord beveiligde map en uitgetest. Het alles werkt zoals het zou moeten werken (je kunt een xls of jpg vanaf de beveiligde webpagina uploaden naar een publieke map). Tot zo ver ben ik op eigen houtje gekomen (!)

Echter ik wil achter de upload button een extra actie hebben. Deze actie moet inhouden dat er naar een tiental mailadressen een mailtje wordt verstuurd met een klein stukje tekst (iets van: "De laatste programma update heeft plaatsgevonden. Ga naar www.voorbeeld.nl/map/voorbeeld.xls om deze te downloaden").

Probleem is dat ik niet weet hoe ik zo'n extra actie aan deze knop hang....

Er staat al een actie: action="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_SERVER['PHP_SELF']; ?>
"

Het lijkt mij dat ik hier een extra actie achter moet plakken ... maar hoe of wat noem ik deze actie en hoe verwerk ik hierin zo'n 10 emailadressen?

Mocht iemand het antwoord willen geven dan ben ik deze persoon zeer erkentelijk! Alvast bedankt.




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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1" />
<title>programma</title>
</head>

<?PHP
if(!empty($_POST)){
$locatie="voorbeels.nl/xxxx_html/test/"; //of een andere map, vergeet
niet de w-rechten
   if(is_uploaded_file($_FILES['afbeelding']['tmp_name']))
   {

        //controleer grootte
        if($_FILES['afbeelding']['size']>150000)
                   {
//bepaal zelf de max. grootte in bytes
                   echo "Het bestand is te groot";
                   exit;
                   }

 
        //controleer extensie, voeg maar andere toe
        if(!eregi("((.xls|.jpg)$)", $_FILES['afbeelding']['name']))
                   {

                   echo "het bestand is niet van het juiste type";
                   exit;
                   }

 

        if(!move_uploaded_file($_FILES['afbeelding']['tmp_name'],

$locatie.$_FILES['afbeelding']['name']))
 
                  {

                  echo" het bestand kan niet worden verplaatst";
                  exit;
                  }

 
                  echo "Uw bestand ".$_FILES['afbeelding']['name']."
is geupload"
;
   }

    
   else
   {
   echo "Het uploaden is mislukt";
   }
    
 
}

else{
?>

     <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"
enctype="multipart/form-data">
     <!--Bepaal zelf de maximale grootte in bytes -->
     <input type="file" name="afbeelding"><br>
     <input type="submit" name="submit" value="uploaden">
     </form>
<?php
     }
?>



<body>
</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door Tom Gerritse
 
PHP hulp

PHP hulp

16/03/2025 06:16:02
 
Gerben Jacobs

Gerben Jacobs

11/10/2007 15:35:00
Quote Anchor link
Je kan geen tweede action="" doen omdat a) De eerste dan vervalt en b) dit alleen HTML is.

Wat je moet doen is als het uploaden gelukt is een mail functie neer zetten.

Lees hier meer http://nl.php.net/mail
 
Onbekend Onbekend

Onbekend Onbekend

11/10/2007 15:35:00
Quote Anchor link
kijk naar de functie mail.. php.net

gerben was me voor :(
Gewijzigd op 01/01/1970 01:00:00 door Onbekend Onbekend
 
Erik Rijk

Erik Rijk

11/10/2007 15:37:00
Quote Anchor link
echo "Uw bestand ".$_FILES['afbeelding']['name']."
is geupload";

Na bovenstaande regel kan je dmv een for() lus een x aantal mailtjes sturen.
Je zal de email adressen dan wel in een array moeten zetten en uitlezen en dat is niet het simpelste klusje voor waar je zelf zegt ( een beginner ).

Zoiezo een mail script maken niet, maar je zou dan gebruik kunnen maken van bijvoorbeeld de php mailer class.
 
Onbekend Onbekend

Onbekend Onbekend

11/10/2007 15:40:00
Quote Anchor link
mail werkt gewoon, headers, onderwerp en bericht en geadresseerd mee geven, is makkelijk, op http://php.net/mail staat genoeg..
 
Tom Gerritse

Tom Gerritse

11/10/2007 16:13:00
Quote Anchor link
Bedankt voor de vlotte reacties!

Okee, als ik het goed begrijp moet ik een mail () plaatsen met diverse zaken. Dat zou dus in mijn geval kunnen worden:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$to
      = 'nobody1@example.com';
$to      = 'nobody2@example.com';
$to      = 'nobody3@example.com';
$to      = 'nobody4@example.com';
$subject = 'programma van de vereniging';
$message = 'De laatste programma update heeft plaatsgevonden. Ga naar www.voorbeeld.nl/map/voorbeeld.xls om deze te downloaden';
$headers = 'From: eenmailadres@example.com' . "\r\n" .
    'Reply-To: eenmailadres@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
?>


Deze actie moet dus gedaan worden als alles is gecontroleerd en goed is bevonden. Als ik mij dan niet vergis moet ik dus bovenstaande achter het { plakken van regel 51 ... ?

P.S. werkt php een beetje vergelijkbaar als een plc ladderdiagram? Het "als dit - dan dat - anders dat" idee?
 
Onbekend Onbekend

Onbekend Onbekend

11/10/2007 16:16:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$to
[0]      = 'nobody1@example.com';
$to[1]      = 'nobody2@example.com';
$to[2]      = 'nobody3@example.com';
$to[3]      = 'nobody4@example.com';
$subject = 'programma van de vereniging';
$message = 'De laatste programma update heeft plaatsgevonden. Ga naar www.voorbeeld.nl/map/voorbeeld.xls om deze te downloaden';
$headers = 'From: eenmailadres@example.com' . "\r\n" .
    'Reply-To: eenmailadres@example.com' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
?>

en dan een for om de mail functie..

edit: ja, kijk op php.net en dan if zoeken.., je hebt ook else en elseif php.net daar kun je alles leren
Gewijzigd op 01/01/1970 01:00:00 door Onbekend Onbekend
 
Tom Gerritse

Tom Gerritse

11/10/2007 16:59:00
Quote Anchor link
Opnieuw bedankt!

Een for om de mailfunctie? Ik lees dat het om het gebeuren "for loops" gaat... Het taalgebruik bij de uitleg op php.net is echter een niveautje te hoog. Ik begrijp (?) dat deze loop dus een stappenprogramma afgaat om iets te realiseren. Dat zal dan in mijn geval zijn het verzenden van de mail.

php.net:

for (expr1; expr2; expr3) statement

Bij de uitleg hiervan raak ik even het spoor bijster: expr1 wordt 1 keer uitgevoerd. Dan moet expr2 true worden... als er geen expr2 is dan wordt aangenomen dat deze true is. Wat bedoelt men precies met expressie? Is dit in de gedachten van "voorbeeld"? Als het laatste het geval is dan moet ik dus "domweg" het volgende doen:

for (mail($to, $subject, $message, $headers);) statement

Er zal dan een loop moeten worden gestart die de mail verzend. Alleen waarom is deze loop dan precies nodig?

php.net is idd wel handig om alle commando's te kunnen bekijken! Alleen zouden ze bij sommige zaken een "dummie" knop moeten plaatsen ...
 
Gerben Jacobs

Gerben Jacobs

11/10/2007 17:01:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
// multiple recipients
$to  = 'aidan@example.com' . ', '; // note the comma
$to .= 'wez@example.com';
?>


Dit staat gewoon op de pagina voor de mail functie
http://nl3.php.net/manual/en/function.mail.php
Gewijzigd op 01/01/1970 01:00:00 door Gerben Jacobs
 
Onbekend Onbekend

Onbekend Onbekend

11/10/2007 17:03:00
Quote Anchor link
uhm, je gebruikt voor de meerdere email adressen een zogenoemde array, dat is een var met meerdere waarden, om voor iedere waarde een nieuwe mail te sturen moet je telkens het hele mail proces herhalen (mail($to ect..) een for doet dat.
 
Onbekend Onbekend

Onbekend Onbekend

11/10/2007 17:07:00
Quote Anchor link
een for is leuker, bovendien kunnen andere geadresseerden ook jouw email adres zien, das niet goed (denk ik) in de meeste gevallen

*** dubbel post, srry
Gewijzigd op 01/01/1970 01:00:00 door Onbekend Onbekend
 
Tom Gerritse

Tom Gerritse

11/10/2007 17:26:00
Quote Anchor link
Pfff, volgens mij is het gelukt! Ik krijg op twee mailadressen de melding binnen dus volgens mij klopt het allemaal. Nu nog onderzoeken hoe ik nog meer mailadressen toe moet voegen ... Volgens mij gewoon steeds . ', '; achter het voorgaande mailadres plakken ...

Bedankt allemaal!

else{
// multiple recipients
$to = 'aaa@xxx.nl' . ', '; // note the comma
$to .= 'bbb@xxx.nl';
$subject = 'programma van de vereniging';
$message = 'De laatste programma update heeft plaatsgevonden. Ga naar www.voorbeeld.nl/map/voorbeeld.xls om deze te downloaden';
$headers = 'From: xxx@xxx.nl' . "\r\n" .
'Reply-To: xxx@xxx.nl' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);

?>
<form method="post" action="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $_SERVER['PHP_SELF']; ?>
" enctype="multipart/form-data">
<!--Bepaal zelf de maximale grootte in bytes -->
<input type="file" name="afbeelding"><br>
<input type="submit" name="submit" value="uploaden">
</form>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
     }
?>
 



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.