extra actie plaatsen achter upload button
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=""
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)
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
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>
"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
Wat je moet doen is als het uploaden gelukt is een mail functie neer zetten.
Lees hier meer http://nl.php.net/mail
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.
http://php.net/mail staat genoeg..
mail werkt gewoon, headers, onderwerp en bericht en geadresseerd mee geven, is makkelijk, op Okee, als ik het goed begrijp moet ik een mail () plaatsen met diverse zaken. Dat zou dus in mijn geval kunnen worden:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$to = '[email protected]';
$to = '[email protected]';
$to = '[email protected]';
$to = '[email protected]';
$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: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
?>
$to = '[email protected]';
$to = '[email protected]';
$to = '[email protected]';
$to = '[email protected]';
$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: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\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?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
$to[0] = '[email protected]';
$to[1] = '[email protected]';
$to[2] = '[email protected]';
$to[3] = '[email protected]';
$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: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
?>
$to[0] = '[email protected]';
$to[1] = '[email protected]';
$to[2] = '[email protected]';
$to[3] = '[email protected]';
$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: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\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
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 ...
Code (php)
1
2
3
4
5
2
3
4
5
<?php
// multiple recipients
$to = '[email protected]' . ', '; // note the comma
$to .= '[email protected]';
?>
// multiple recipients
$to = '[email protected]' . ', '; // note the comma
$to .= '[email protected]';
?>
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
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.
Bedankt allemaal!
else{
// multiple recipients
$to = '[email protected]' . ', '; // note the comma
$to .= '[email protected]';
$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: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
?>
<form method="post" action="" 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>