Hallo ik heb een probleempje met een mail script.
Ik heb een pagia waar een forumulier in staat en als ik die verstuur
gaat hij naar een andere pagina en verstuurd dan gewoon de e-mail. En dat werkt gewoon.

Alleen als ik nu de pagina refresh verstuurd hij weer dezelfde e-mail.
Ik heb in het formulier de velden voornaam, achternaam, e-mail en de het berichtje.
Deze worden doorgestuurd naar mail_contact.php

ik heb dit stukje in de code staan van mail_contact.php

$email = "Voornaam:\t$FirstName\nAchternaam:\t$SecondName\nE-Mail:\t$Email\nBericht:\t$Comments\nIP:\t$REMOTE_ADDR\n\n";
$to = "[email protected]";
$subject = "Reactie via contactformulier";

dan komt er wat html gewoon de pagina en daarna staat er

<? mail ($to,$subject,$email)?>

Nu is mijn vraag kan ik op een of andere manier zorgen dat $email, $to en $subject worden geleegd zodra hij verstuurd is?
Of met ik met sessie/cookies werken en zo ja ik weet niet zo gek veel van php af en weet niet goed hoe ik die dan moet invoegen.

Alvast bedankt.
unset($to);
unset($subject);
unset($email);

Dat was het volgens mij, maar zodra er dan weer op f5 gedrukt wordt, dan word het formulier opnieuw verstuurd, dan moet je denk ik met sessies werken.
Ik heb net dit net geprobeerd.

<?
unset($to);
unset($subject);
unset($email);
?>

Maar hij verstuurd alles weer als ik op F5 druk. Dus moet ik gaan kijken hoe het werkt met sessies
verzonden.php:

<?
session_start();
if(isset($_SESSION['gepost']))
{
echo 'U kunt het bericht niet zo vaak versturen!';
}
else
{
if(!isset($_POST))
{
echo "U heeft niks gepost!";
}
else
{
$email = "Voornaam:\t".$_POST['FirstName']."\nAchternaam:\t".$_POST['SecondName']."\nE-Mail:\t".$_POST['Email']."\nBericht:\t".$_POST['Comments']."\nIP:\t".$_SERVER['REMOTE_ADDR']."\n\n";
$to = "[email protected]";
$subject = "Reactie via contactformulier";
mail ($to,$subject,$email);
$_SESSION['gepost'] == 1;
}
}
?>
Ik heb nu mijn stukjes php vervangen door het gene wat hier boven staat. Nu verstuurd hij wel gewoon de e-mail alleen ik krijg deze ook.

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /var/www/html/test/mail_contact.php:12) in /var/www/html/test/mail_contact.php on line 59

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/www/html/test/mail_contact.php:12) in /var/www/html/test/mail_contact.php on line 59

maar als ik het goed heb word er bedoeld dat op regel 12 van mail_contact.php de error begint maar daar staat alleen dit.

<td><img src="images/i_05.jpg"></td>



... on line 59


Ik zou regel 59 proberen...
En hier staat :
<? session_start(); ?>
Right?
Wel, dit gedeelte moet helemaal vanboven van je hele document, of je krijgt errors...
<?
session_start();
if(isset($_SESSION['gepost']))
{
echo 'U kunt het bericht niet zo vaak versturen!';
}
else
{
if(!isset($_POST))
{
echo "U heeft niks gepost!";
}
else
{
$_SESSION['gepost'] == 1;
mail ($to,$subject,$email);
$email = "Voornaam:\t".$_POST['FirstName']."\nAchternaam:\t".$_POST['SecondName']."\nE-Mail:\t".$_POST['Email']."\nBericht:\t".$_POST['Comments']."\nIP:\t".$_SERVER['REMOTE_ADDR']."\n\n";
$to = "[email protected]";
$subject = "Reactie via contactformulier";
}
}
?>

session_start(); moet trouwens wel HELEMAAl bovenaan de pagina staan.

// Edit: Rafael was net eerder..
Ik heb <? session_start(); nu helemaal boven aan staan en ik krijg geen foutmeldingen en de e-mail word gewoon verstuurd..

Alleen als ik dan weer op F5 druk krijg ik hem weer.

moet ik onderaan de pagina de sessie laten eindigen ofzoiets?

Reageren