PDA

Bekijk Volledige Versie : PHP(?) mailform.. HELP!!



Annette
02/07/03, 13:05
Hey,

Ok, misschien en domme vraag, maar ik ben ook nog maar een beginner op
php-gebied:
Ik ben bezig een website te bouwen, hierop moet ook een mogelijkheid komen
om je in te schrijven voor een nieuwsbrief. Een formuliertje heb ik wel
gemaakt, maar de gegevens worden nu via MS-outlook verzonden, compleet met
waarschuwingen enzo.
( <FORM METHOD=POST ACTION="mailto:xxxxx@xxxxx.xxx?subject=Aanmelding
nieuwsbrief" ENCTYPE="text/plain"> )
En dit is dus niet mijn bedoeling. Ik heb gezien dat dit op veel andere
websites met php wel lukt, maar ik kan de php-code niet zien, en dus niet
gebruiken. De inschrijfgegevens mogen zowel in de mailbox als in een
database belanden.
Dat HTML heb ik nou wel onder de knie, maar php schrijven is zo te zien een
heel ander verhaal, vandaar mijn vraag:
Heeft iemand misschien een scriptje liggen dat ik hiervoor zou kunnen
gebruiken?

Greetz, Annette

Maarten Wierda
02/07/03, 14:05
Annette wrote:

[formulieren in php]

> Ik heb gezien dat dit op veel andere
> websites met php wel lukt, maar ik kan de php-code niet zien,

Wat vrij logisch is.

> en dus niet
> gebruiken. De inschrijfgegevens mogen zowel in de mailbox als in een
> database belanden.

Mailen gaat als volgt:

<?php

if (isset($_POST["is_sent"]) && $_POST["is_sent"] == true)
{
mail(); // zie specificaties op php.net
}
else
{
?>

Je formulier:

<FORM METHOD=POST ACTION="<?= $PHP_SELF; ?>">
<INPUT type="hidden" name="is_sent" value="true">
</FORM>

<?php
}
?>

Succes.

--
Cheers, Maarten Wierda

"Music is first, lyrics are secondary."

Annette
02/07/03, 15:05
[...]
>
> Mailen gaat als volgt:
>
> <?php
>
> if (isset($_POST["is_sent"]) && $_POST["is_sent"] == true)
> {
> mail(); // zie specificaties op php.net
> }
> else
> {
> ?>
>
[...] Cheers, Maarten Wierda


--------------------

iig, bedank voor dit scriptje, ik ben al verder dan ik was :-)
Maar, hij geeft nou het volgende aan:
Parse error: parse error in /users/coolfreepage.com/vooreven/nieuwsbrief.php
on line 10
(regel 10 is ?>)

Maarten Wierda
02/07/03, 15:05
Annette wrote:

> > Mailen gaat als volgt:
> >
> > <?php
> >
> > if (isset($_POST["is_sent"]) && $_POST["is_sent"] == true)
> > {
> > mail(); // zie specificaties op php.net
> > }
> > else
> > {
> > ?>
>
> iig, bedank voor dit scriptje, ik ben al verder dan ik was :-)
> Maar, hij geeft nou het volgende aan:
> Parse error: parse error in /users/coolfreepage.com/vooreven/nieuwsbrief.php
> on line 10

Dat is waarschijnlijk de regel waar mail() staat, deze functie heeft nog
een aantal parameters nodig, vandaar die verwijzing naar php.net.

probeer eens:

mail("je-emailadres-hier", "onderwerp", "test bericht", "From:
Annette");

--
Cheers, Maarten Wierda

"Music is first, lyrics are secondary."

Annette
02/07/03, 15:35
[...]
>
> Dat is waarschijnlijk de regel waar mail() staat, deze functie heeft nog
> een aantal parameters nodig, vandaar die verwijzing naar php.net.
>
> probeer eens:
>
> mail("je-emailadres-hier", "onderwerp", "test bericht", "From:
> Annette");
>
> --
> Cheers, Maarten Wierda
>
> "Music is first, lyrics are secondary."

Ik heb nu het volgende: (zonder de regelnummers ervoor natuurlijk)

1 <?php
2
3 if (isset($_POST["is_sent"]) && $_POST["is_sent"] == true)
4 {
5 mail("karen_dg@msn.com", "Nieuwsbrief", "Line 1\nLine 2\nLine 3");
6 {
7 echo ("Het bericht is verstuurd\r\nHartelijk dank.");
8 }
9 else
10 {
11 echo ("Er is een fout opgetreden bij het versturen");
12 }
13 }
14 ?>

Er zit nu een parse error in r. 9, en ik zie echt niet wat daar fout aan zou
kunnen zijn. In regel 14 gaf hij er ook een, waar ook niets bijzonders in
staat. *zucht*

Greetz,

Rene Pijlman
02/07/03, 16:05
Annette:
>Heeft iemand misschien een scriptje liggen dat ik hiervoor zou kunnen
>gebruiken?

<?php
$success = true;

// Enable output buffering because of the conditional
redirect (location header).
ob_start();

// Input van formulier:
// $email: e-mail adres van de invuller
// $from: naam van de invuller
// $subject: onderwerp van het bericht
// $showurl: url van de bevestigpagina die getoond wordt
na succesvol versturen van de e-mail
// $body: inhoud van het bericht

$reply_to = trim($HTTP_POST_VARS["from"]);
$email = trim($HTTP_POST_VARS["email"]);
$subject = trim($HTTP_POST_VARS["subject"]);
$showurl = trim($HTTP_POST_VARS["showurl"]);
$body = trim($HTTP_POST_VARS["body"]);

$from = "vul.mij.in@aub.nl";
$to = "vul.mij.in@aub.nl";
$envelope_from = $from;

if ( $success && $subject == "" )
{
$success = false;
$message = "<p>Het formulier heeft geen subject
meegegeven.</p>";
}

if ( $success )
{


if ($showurl == "") $showurl =
"http://vul.mij.in/aub/danku.html";

$additional_headers = "X-Http-Remote-Host: " .
$_SERVER['REMOTE_ADDR'];
$additional_headers .= "\nFrom: $from";

if ($email != "")
{
$additional_headers .= "\nReply-to: $reply_to
<$email>";
}

reset ($HTTP_POST_VARS);
while (list($key, $value) = each($HTTP_POST_VARS)) {
if ( $key != "verstuur" &&
$key != "body" &&
$key != "subject" &&
$key != "showurl" ) {

$message .= "$key: " . stripslashes($value)
.. "\n";
}
}
if ($message != "") $message .= "\n";

$message .= stripslashes($body);

// Set the envelope from adress via a sendmail
command line parameter
$additional_parameters = "-f" . $envelope_from;

if (!mail($to, $subject, $message,
$additional_headers,
$additional_parameters))
{
$success = false;
$message = "<p><strong>Het verzenden van het
bericht is helaas mislukt.</strong></p>" .
"<p>Misschien heb je een verkeerd
e-mail adres ingevuld. Ga terug naar het " .
"formulier en probeer het
opnieuw.</p>";
}
}

if ($success)
{
header("Location: " . $showurl);
} else {
?>

<html>
<head><title>Mislukt!</title></head>
<body>
<h1>Mislukt!</h1>
<p><?php echo $message; ?></p>
</body>
</html>

<?php
}
ob_end_flush();
?>


--
René Pijlman

Wat wil jij leren? http://www.leren.nl

Maarten Wierda
02/07/03, 16:05
Annette wrote:

[...]

> Er zit nu een parse error in r. 9, en ik zie echt niet wat daar fout aan zou
> kunnen zijn. In regel 14 gaf hij er ook een, waar ook niets bijzonders in
> staat. *zucht*

Veranderen in:

if (isset($_POST["is_sent"]) && $_POST["is_sent"] == true)
{
// if toegevoegd en de puntkomma verwijderd
if(mail("karen_dg@msn.com", "Nieuwsbrief", "Line 1\nLine 2\nLine
3"))
{
echo ("Het bericht is verstuurd\r\nHartelijk dank.");
}
else
{
echo "niet verstuurd...";
}
}

--
Cheers, Maarten Wierda

"Music is first, lyrics are secondary."

Rene Pijlman
02/07/03, 16:05
Annette:
>1 <?php
>2
>3 if (isset($_POST["is_sent"]) && $_POST["is_sent"] == true)
>4 {
>5 mail("karen_dg@msn.com", "Nieuwsbrief", "Line 1\nLine 2\nLine 3");
>6 {
>7 echo ("Het bericht is verstuurd\r\nHartelijk dank.");
>8 }
^ Que?

>9 else
>10 {
>11 echo ("Er is een fout opgetreden bij het versturen");
>12 }
>13 }
^ Que?
>14 ?>

--
René Pijlman

Wat wil jij leren? http://www.leren.nl

Annette
03/07/03, 12:35
[...]

Okay, heel erg bedankt!! Ik krijg geen errors meer :-D
Nou nog iets op het scherm proberen te krijgen na het versturen van het
formulier, maar daar ga ik ook wel achter komen

Greetz,