Avatar billede showbakkwn Nybegynder
19. maj 2011 - 12:13 Der er 12 kommentarer og
1 løsning

PHP - Automatisk tilbage efter at have sendt en mail

Hejsa
Jeg har lavet en php side hvor man kan sende en mail fra browseren til ejeren af hjemmesiden. det er lavet sådan at når mailen er sendt kommer den ind på en ny side hvor der står "din mail er sendt" men kunne godt tænke mig den efter 5 sek hopper tilbage til siden den kom fra eller at man kunne smide en tilbage knap ind på siden. problemet er bare når jeg prøver at smide en tilbage link ind siger DW der er fejl i koden.
Avatar billede Authiel Nybegynder
19. maj 2011 - 12:30 #1
Jeg går udfra at det er den samme side de kommer fra alle sammen når de har sendt en besked. En mulighed kunne være at indsætte denne kode lige efter at din mail er sendt.

<?php

//Koden til din mail funktion

sleep(10);
header("Location:" + din_side.php);

?>
Avatar billede Authiel Nybegynder
19. maj 2011 - 12:30 #2
Og så skift 10 ud med 5.. :P
Avatar billede showbakkwn Nybegynder
19. maj 2011 - 12:47 #3
Ja det kommer fra samme side..

skal koden så se sådan her ud eller?

echo "Din mail er blevet afsendt! sleep(10);
header("Location:" + kontakt_mig.php)";
Avatar billede michael_stim Ekspert
19. maj 2011 - 12:51 #4
echo "Din mail er blevet afsendt!";
sleep(5);
header("Location: kontakt_mig.php");


Nok mere sådan ;o)
Avatar billede Authiel Nybegynder
19. maj 2011 - 12:52 #5
nej, sådan her:

echo "Din mail er blevet afsendt!";
sleep(5);
header("Location:" + kontakt_mig.php);
Avatar billede michael_stim Ekspert
19. maj 2011 - 12:52 #6
Men så får du formodentlig en fejl. Du må vist ikke udskrive noget til skærmen før en header.
Avatar billede Authiel Nybegynder
19. maj 2011 - 12:53 #7
Kan godt være at den der header som Michael har lavet er den rigtige, har ikke rodet med header i ret lang tid efterhånden :P
Avatar billede michael_stim Ekspert
19. maj 2011 - 12:57 #8
+ er vist noget javascript halløj ;o)
Avatar billede michael_stim Ekspert
19. maj 2011 - 13:00 #9
Men jeg ville nok vente med at udskrive min tekst til jeg kommer tilbage ;o)

sleep(5);
header("Location: kontakt_mig.php?mail_kon=Din mail er blevet afsendt!");

Og så hente med en $_GET på din side.
Avatar billede showbakkwn Nybegynder
19. maj 2011 - 13:22 #10
Ej puha (undskyld) nu vil mit hovede ikke være med mere :S tror jeg fatter minus lige nu :(
Avatar billede repox Seniormester
19. maj 2011 - 14:05 #11
Typisk ville man gøre det at man brugte et META refresh på den modtagende side til at videresende en person til en anden side (eller i dit tilfælde tilbage til kontakt siden):
<meta http-equiv="refresh" content="5;url=kontakt_mig.php">


Jeg antager du ved hvad META tags er.

Personligt ville jeg nok bare sende dig tilbage med en session (noget flashdata agtigt, hvis vi skal lyde tekniske).

Så når du vil sende og rammer den side der skal sende mailen, gør du noget ala:
<?php
  session_start(); //for at starte sessions.

  //det der sender din mail.
  //så ingen HTML eller andet lir - kun PHP

  $_SESSION["mail_sent"] = true;
  header("Location: kontakt_mig.php");
?>


Når du så kommer tilbage til din kontakt side igen, skal du igen i starten af din php side skrive session_start().

Og der hvor du nu vil have en besked der siger tak, skriver du bare noget ala:
<?php if isset($_SESSION["mail_sent"]))
{
  unset($_SESSION["mail_sent"]);
  echo "Tak for din mail";
}
Avatar billede showbakkwn Nybegynder
19. maj 2011 - 14:36 #12
hej repox
Nu virker det sq :D tusind tak for hjælpen :)

Hvis du vil ha point for det så skriv lige en besked så jeg kan give dig det ;)
Avatar billede repox Seniormester
19. maj 2011 - 14:40 #13
Du fik et svar her.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester