Action in formulier

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marc rc is as

Marc rc is as

06/09/2010 12:02:26
Quote Anchor link
Na wat gestoeid te hebben met Swiftmailer, wat niet lukte, ben ik phpmailer gaan checken.

Dat had ik snel voor elkaar. Het werkt in ieder geval! Wat nu de beste is vind ik niet de discusie, daarvoor heb ik er te weinig verstand van.

Nu ben ik wat verder en heb een pagina gemaakt om mededelingen toe te voegen op een website. De mededeling moet worden opgeslagen in de database en er moet een bericht worden verstuurd aan de leden. Voorheen deed ik dat met de mail functie. Omdat het verstandiger is om de phpmailer te gebruiken heb ik die mail functie weggehaald. phpmailer wil echter in de action "phpmailer-fe.php" hebben. Maar voor het script is dit nodig: echo $_SERVER['PHP_SELF'];. Een dubbele action plaatsen zal niet werken neem ik aan. Hoe kan ik er toch voor zorgen dat dit toch gaat werken?

Onderstaand het script met de mailfunctie:

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
<?php
if(!isset($_REQUEST['verzenden'])){
?>

<fieldset><legend>Mededeling toevoegen</legend>
<form id="form" name="form" method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
      <table width="505" border="0">
          <tr>
               <td width="175">Geplaatst door:</td>
            <td width="330"><input type="text" name="Naam" id="Naam" /></td>
             </tr>
      <tr>
               <td width="175">Onderwerp:</td>
            <td width="330"><input type="text" name="Onderwerp" id="Onderwerp" /></td>
             </tr>
      <tr>
               <td width="175">Mededeling:</td>
            <td width="330"><textarea name="Mededeling" id="Mededeling" cols="40" rows="6"></textarea></td>
      </tr>
          
          <tr>
            <td width="175"><input name="verzenden" type="submit" class="bigbutton" id="verzenden" value="Mededeling toevoegen" /></td>
               <td width="330"> <input name="Annuleren" type="reset" class="button" id="Annuleren" value="Reset" /></td>
          </tr>
        </table>    
</form></fieldset>
<?php
}else{     // hier komt de verwerking van het formulier.
    $datum_vandaag = date('Y-m-d');
    $geplaatst_door = $_REQUEST['Naam'];
    $onderwerp = $_REQUEST['Onderwerp'];
    $mededeling = $_REQUEST['Mededeling'];
    
    
    ini_set("sendmail_from","info@*******.nl");

    $mail_van = 'Mij';
    

$bericht = "
Beste Leden,

$geplaatst_door heeft een bericht geplaatst op de website met als onderwerp: \"$onderwerp\". Ga naar de ledeninlog om het bericht te lezen.

http://www.*********.nl/login.php

"
;

$sql = "SELECT Lid_Mail
            FROM leden
            WHERE Status_ID='1'"
;
            
$resultaat = mysql_query($sql);

while($rij = mysql_fetch_assoc($resultaat)){
$mail_aan = $rij['Lid_Mail'];

if
(mail("$mail_aan","$onderwerp","$bericht","From: info@*******.nl"))
{
echo ' ';
}


else{
    echo 'Uw e-mail is niet correct verstuurd' . '<br />';
}
}
    
    $sql = "INSERT INTO mededeling (Mededeling_ID, Mededeling_Datum, Mededeling_Naam, Mededeling_Onderwerp, Mededeling_Bericht) VALUE ('', '$datum_vandaag', '$geplaatst_door', '$onderwerp', '$mededeling')";


    if(!mysql_query($sql)){
        echo '<p class="red">De mededeling werd niet geplaatst.</p>';
    }
else{
        echo '<p>De mededeling werd correct toegevoegd en een bericht werd verzonden aan de (actieve) leden.</p> <br />';
        echo '<a href="mededeling_toevoegen.php" class="normal">Nog meer berichten toevoegen</a>';
    }

    mysql_close($db);
    }

?>
 
Er zijn nog geen reacties op dit bericht.



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.