Gå til innhold

Forhindre redirect etter submit


Anbefalte innlegg

Fersking på php her!

 

Jeg har laget en webside med en form og bruker php for å sende mail.

Istedet for at brukeren blir sendt til en blank side etter at en har trykket på submit-knappen, vil jeg heller at den samme siden skal få beholde "fokus" (... eller helst den samme siden men med alle felt blanket ut og en tekst under som sier at meldingen er sendt...). Hva slags elementær kode må jeg taste for å få det til?

Lenke til kommentar
Videoannonse
Annonse

Eventuelt kan du ha skjema å scriptet som sender i samme fil, så legger du til i toppen f.eks:

<?php
if(isset($_GET['mailtekst']))
{
//Kode som sender mail her
echo '<p>Mailen er sendt</p>;
}

//sendmailskjema her...
?>

 

Detteer ikke testet, bare skrevet her og nå, men jeg ser ikke hvorfor det ikke skal virke. Håper du ser poenget

Lenke til kommentar
Eventuelt kan du ha skjema å scriptet som sender i samme fil, så legger du til i toppen f.eks:

<?php
if(isset($_GET['mailtekst']))
{
//Kode som sender mail her
echo '<p>Mailen er sendt</p>;
}

//sendmailskjema her...
?>

 

Detteer ikke testet, bare skrevet her og nå, men jeg ser ikke hvorfor det ikke skal virke. Håper du ser poenget

 

Det skal funke ja.

Men ville nok hatt en mailvalidering i tillegg her, så du ikke får masse mailerdeamons hvis folk bare trykker på skjema..

 

//Sjekker om skjema er aktivert
if(isset($_POST['sendmail'])){
mail($to,$header,$content);
echo "Mailen er sendt!";
} else{
//hvis skjema ikke er aktivert 
?>
<form action="sammefil.php" method="post">
<input type="text" name="Fra"><br />
<input type="text" name="til"><br />
<input type="text" name="melding"><br />
<textarea cols="40" rows="6"></textarea><br />
<input type="submit" name="SendMail" value="Send Mail"><br />
</form>
<?
}

Tror jeg skal funke..

Endret av Atrius
Lenke til kommentar

Ville ikke hatt den else-en siden han ville at skjemaet skulle reloades etter at mailen er sendt...

 

//Sjekker om skjema er aktivert
if(isset($_POST['sendmail'])){
//deklarering av variabler ($to = $_POST['til'] o.lign.)
mail($to,$header,$content);
echo "Mailen er sendt!";}
?>
<form action="sammefil.php" method="post">
<input type="text" name="Fra"><br />
<input type="text" name="til"><br />
<input type="text" name="melding"><br />
<textarea cols="40" rows="6"></textarea><br />
<input type="submit" name="SendMail" value="Send Mail"><br />
</form>

Endret av obrestad
Lenke til kommentar
Ville ikke hatt den else-en siden han ville at skjemaet skulle reloades etter at mailen er sendt...

 

//Sjekker om skjema er aktivert
if(isset($_POST['sendmail'])){
//deklarering av variabler ($to = $_POST['til'] o.lign.)
mail($to,$header,$content);
echo "Mailen er sendt!";}
?>
<form action="sammefil.php" method="post">
<input type="text" name="Fra"><br />
<input type="text" name="til"><br />
<input type="text" name="melding"><br />
<textarea cols="40" rows="6"></textarea><br />
<input type="submit" name="SendMail" value="Send Mail"><br />
</form>

Det er sant.

Et annet tips, er at jeg ville brukt IMAP istedet for php mail funksjonen, men det er bare meg :p

Lenke til kommentar

if (isset($_POST['sendmail']))
{
//send mail... whatever

header('Location: '.$samme_url_som_du_er_paa_naa);
exit;
}

 

Alltid avslutte scriptet etter at du har sendt en Location header, ellers blir de fleste nettleserne forvirra dersom det kommer mere søppel i etterkant.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...