Avatar billede tidemann Nybegynder
26. april 2007 - 16:01 Der er 23 kommentarer og
1 løsning

videresend efter 5 sek?

Kan jeg på nogen måde sende brugeren videre til en anden side, efter at han har modtaget besked om
at mailen er sendt?

Se her: http://www.mettemia.dk/bestillingsformular.php

Det skal vel flettes ind, men jeg aner ikke hvordan.
Jeg kan ikke sætte det i headeren, for hvis den nu ikke er udfyldt korrekt, er det jo ikke smart at
sende til f.eks. index.shtml

Er der en rar sjæl der kan hjælpe mig? Jeg har ikke forstand på php! :o)

Min mailsender ser sådan ud(kun noget af koden):)

if(array_key_exists($make,$mailTo))
        mail(implode(",",$mailTo[$make]),$emne,$besked,$header);
else
    echo "Ingen mailadresser fundet...";{
    echo "<p>Tak for din henvendelse  $navn. Jeg svarer så hurtigt som muligt.</p>";
  }
  }
  else {
    echo "<p>E-mailen blev ikke sendt. Der skete en fejl. Prøv igen!</p>";
  }
  }
  else {
  echo "<p>Alle felter skal udfyldes!</p>";
  }
}
else {
  echo '<p>Desværre, verifikationskoden kunne ikke godkendes!</p>';
}
}
>

Marianne
Avatar billede zurekk Nybegynder
26. april 2007 - 16:14 #1
<script>
function delayer(){
    window.location = "../javascriptredirect.php"
}
setTimeout('delayer()', 5000);
</script>

prøv den
Avatar billede masik7 Nybegynder
26. april 2007 - 20:25 #2
Nu er kategorien jo php, så jeg ville nok gøre:
header("Location: http://www.mettemia.dk/bestillingsformular.php");
Avatar billede coderdk Praktikant
26. april 2007 - 20:37 #3
masik7, Efter 5 sek? ;)

header( "Refresh: 5; URL=http://www.mettemia.dk/andenside.php" );

Bemærk at dette *skal* være det før alt andet der bliver skrevet ud på siden ;)
Avatar billede tidemann Nybegynder
26. april 2007 - 21:08 #4
Masik7 og coderik

Det duer jo ikke, som jeg skriver!!
Det er fint nok _hvis_ mailen er udfyldt korrekt, her kan jeg sende dem videre

{
    echo "<p>Tak for din henvendelse  $navn. Jeg svarer så hurtigt som muligt.</p>";
  }

Her kan jeg jo ikke sende dem til forsiden.................

}
  else {
  echo "<p>Alle felter skal udfyldes!</p>";
  }
}

Og ej heller her.................

else {
  echo '<p>Desværre, verifikationskoden kunne ikke godkendes!</p>';
}
}

der skal de jo gå tilbage til formularen og udfylde resten.
Avatar billede coderdk Praktikant
26. april 2007 - 21:16 #5
Så kan du jo bare checke om felterne er udfyldt, og sende personen videre til den side der er relevant. Du kan evt. gemme hans indtastninger i en sessionvariabel, og teste om sessionvariablen eksisterer på indtastningssiden, og forudfylde formularen hvis den eksisterer.

{
    unset( $_SESSION['form'] );
    $msg = "<p>Tak for din henvendelse  $navn. Jeg svarer så hurtigt som muligt.</p>";
    $target = "index.shtml";
  }

og

}
  else {
  $_SESSION['form'] = $_POST;
  $msg = "<p>Alle felter skal udfyldes!</p>";
  $target = "bestillingsformular.php";
  }
}

så er det bare:

header( "Refresh: 5; URL=$target" );
echo $msg;

Samt at checke om $_SESSION['form'] er sat på formularsiden...
Avatar billede tidemann Nybegynder
26. april 2007 - 22:16 #6
Her er hele min sender.php, kan du sætte det ind for mig??

<?php
    if (isset($_POST['submit'])){
        if($_SESSION['verify'] == strtoupper($_POST['auth'])){
            if (!empty($_POST['navn'])
            && !empty($_POST['email'])
            && !empty($_POST['tlf'])
            && !empty($_POST['date'])
            && !empty($_POST['make'])
            && !empty($_POST['sted'])
            && !empty($_POST['tid'])){
             
            $headers="From: ".$_POST['name']
                ."<".$_POST['email'].">";   
            if (@$_POST['customer_copy']){
          $headers .= "\r\nBcc: ".$_POST['email'];
         
            $modtager='tidemann@tdcadsl.dk';
            $mailTo = array (
            "Århus" => array("tidemann@tdcadsl.dk","tidemann@tdcadsl.dk")
            ,"Esbjerg" => array("tidemann@tdcadsl.dk","tidemann@tdcadsl.dk")
            ,"København" => array("tidemann@tdcadsl.dk","tidemann@tdcadsl.dk")
          );           
          $emne = "Mail fra en bruger";
            $besked = "Du har modtaget en bestilling fra: \n 
                Navn: " . $_POST['navn']. "\n
                Email: " . $_POST['email']. "\n
                Tlf: " . $_POST['tlf']. "\n
                Ønsket dato: " . $_POST['date']. "\n
                Behandlingssted: " . $_POST['make']. "\n
                Behandlingsform: " . $_POST['sted']. "\n
                Ønsket tid: " . $_POST['tid']. "\n
                Yderligere oplysninger: " . $_POST['besked']. "\n
                Ring mig op: " . $_POST['call_me'];               
                                       
                    if(array_key_exists($make,$mailTo))
                    mail(implode(",",$mailTo[$make]),$emne,$besked,$header);
    else
    echo "Ingen mailadresser fundet...";{
    echo "<p>Tak for din henvendelse  $navn. Jeg svarer så hurtigt som muligt.</p>";
  }
  }
  else {
    echo "<p>E-mailen blev ikke sendt. Der skete en fejl. Prøv igen!</p>";
  }
  }
  else {
  echo "<p>Alle felter skal udfyldes!</p>";
  }
}
else {
  echo "<p>Desværre, verifikationskoden kunne ikke godkendes!</p>";
}
}                 
?>

Hvor skal det være??
Samt at checke om $_SESSION['form'] er sat på formularsiden...
Avatar billede coderdk Praktikant
26. april 2007 - 22:42 #7
<?php
    session_start();
    if (isset($_POST['submit'])){
        if($_SESSION['verify'] == strtoupper($_POST['auth'])){
            if (!empty($_POST['navn'])
            && !empty($_POST['email'])
            && !empty($_POST['tlf'])
            && !empty($_POST['date'])
            && !empty($_POST['make'])
            && !empty($_POST['sted'])
            && !empty($_POST['tid'])){
           
            $headers="From: ".$_POST['name']
                ."<".$_POST['email'].">"; 
            if (@$_POST['customer_copy']){
          $headers .= "\r\nBcc: ".$_POST['email'];
       
            $modtager='tidemann@tdcadsl.dk';
            $mailTo = array (
            "Århus" => array("tidemann@tdcadsl.dk","tidemann@tdcadsl.dk")
            ,"Esbjerg" => array("tidemann@tdcadsl.dk","tidemann@tdcadsl.dk")
            ,"København" => array("tidemann@tdcadsl.dk","tidemann@tdcadsl.dk")
          );         
          $emne = "Mail fra en bruger";
            $besked = "Du har modtaget en bestilling fra: \n
                Navn: " . $_POST['navn']. "\n
                Email: " . $_POST['email']. "\n
                Tlf: " . $_POST['tlf']. "\n
                Ønsket dato: " . $_POST['date']. "\n
                Behandlingssted: " . $_POST['make']. "\n
                Behandlingsform: " . $_POST['sted']. "\n
                Ønsket tid: " . $_POST['tid']. "\n
                Yderligere oplysninger: " . $_POST['besked']. "\n
                Ring mig op: " . $_POST['call_me'];             
                                     
                    if(array_key_exists($make,$mailTo))
                    mail(implode(",",$mailTo[$make]),$emne,$besked,$header);
    else
    $msg = "Ingen mailadresser fundet...";{
    $msg .= "<p>Tak for din henvendelse  $navn. Jeg svarer så hurtigt som muligt.</p>";
  }
    $target = "index.shtml";
  }
  else {
    $_SESSION['form'] = $_POST;
    $msg = "<p>E-mailen blev ikke sendt. Der skete en fejl. Prøv igen!</p>";
    $target = "bestillingsformular.php";
  }
  }
  else {
    $_SESSION['form'] = $_POST;
  $msg = "<p>Alle felter skal udfyldes!</p>";
    $target = "bestillingsformular.php";
  }
}
else {
    $_SESSION['form'] = $_POST;
  $msg = "<p>Desværre, verifikationskoden kunne ikke godkendes!</p>";
    $target = "bestillingsformular.php";
}
}
header( "Refresh: 5; URL=$target" );
echo $msg;       
?>

Din indtastningsformular starter du med:

session_start();

if ( isset( $_SESSION['form'] ) )
{
    $p = $_SESSION['form'];
    $navn = !empty( $p['navn'] ) ? ' value="' . $p['navn'] . '"' : '';
    $navn = !empty( $p['email'] ) ? ' value="' . $p['email'] . '"' : '';
    // OSV... udfyld selv resten
}

og der hvor du har form-felterne skal du bare indsætte:

<input type="text" name="navn"<?php echo $navn; ?>>

osv... Det er ikke så svært ;)
Avatar billede coderdk Praktikant
26. april 2007 - 22:43 #8
Hmm lige efter:

$target = "index.shtml";

kunne det måske være en idé at lave:

unset( $_SESSION['form'] );
Avatar billede tidemann Nybegynder
26. april 2007 - 23:38 #9
Det vil den altså ikke være med til

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/www/html/bestilling.php:8) in /var/www/html/bestilling.php on line 35

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/bestilling.php:8) in /var/www/html/bestilling.php on line 96
Avatar billede sj.netomia Nybegynder
27. april 2007 - 00:38 #10
sæt dette ind i stedet det er nemmere.
print ("<meta http-equiv=\"refresh\" content=\"5; url=http://www.blabla.dk\">");
Avatar billede tidemann Nybegynder
27. april 2007 - 01:04 #11
Jamen den skal jo være i head-delen ikke??

Og det duer jo stadig ikke, hvis mailen ikke er udfyldt korrekt.
Avatar billede tidemann Nybegynder
27. april 2007 - 01:18 #12
Altså!
Selve mailformularen består af 3 (4) sider.
bestillingsformular.php der henter
formular.php (selve formularen som også henter verify.php)og som sender med
bestilling.php  (sender.php)

Originaludgaven er hentet her og tilrettet: http://hjemmesideskolen.dk/scripts/phpmailc.php
Avatar billede tidemann Nybegynder
27. april 2007 - 01:31 #13
Jeg har spurgt i en newsgruppe også og
der var en der skrev:

Her ville jeg (med echo ?) lægge et javascript, der tæller ned og derefter viderestiller til ønsket side.

Så måske er det et Javascript-spørgsmål istedet?

Marianne
Avatar billede coderdk Praktikant
27. april 2007 - 04:09 #14
"Cannot send session cache limiter - headers already sent"

får du fordi du har noget output før session_start() - det må man ikke. Ikke engang et mellemrum.
Avatar billede tidemann Nybegynder
27. april 2007 - 10:34 #15
Det du skriver, $msg, er det ikke noget der bruges til ASP sider?
Avatar billede tidemann Nybegynder
27. april 2007 - 10:41 #16
Hele koden ser sådan ud, og jeg skal ha´ session_start i toppen af siden, ellers sender den ikke noget:

<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da">
<head>

<title>Sendt bestilling</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="description" content="Clairvoyant" />
<meta name="keywords" content="clairvoyance, clairvoyant, healing, reiki, kursus, mettemia" />
<meta name="author" content="Mettemia Bonding" />
<meta name="Copyright" content="Marianne Tidemann - Copyright 2007 - © all rights reserved" />
<meta name="Generator" content="Microsoft FrontPage 6.0" />
<link rel="stylesheet" type="text/css" media="all" href="css/mettemia.css" />
<link rel="stylesheet" type="text/css" media="print" href="css/print.css" />
<script type="text/javascript" src="script/banner.js"></script>
</head>


<body onload="roter()">
<div id="page">
<div id="banner">
<a href="#"><b><img border="0" src="bannere/dame.jpg" name="Banner" width="996" height="109" alt="bannerbillede" /></b></a>
<div id="navbar">
        <?php include("css/mettemia-menu.inc"); ?>
</div>
</div>


<div id="left">
&nbsp;
</div>

<div id="indhold">

<?php
    if (isset($_POST['submit'])){
        if($_SESSION['verify'] == strtoupper($_POST['auth'])){
            if (!empty($_POST['navn'])
            && !empty($_POST['email'])
            && !empty($_POST['tlf'])
            && !empty($_POST['date'])
            && !empty($_POST['make'])
            && !empty($_POST['sted'])
            && !empty($_POST['tid'])){
           
            $headers="From: ".$_POST['name']
                ."<".$_POST['email'].">"; 
            if (@$_POST['customer_copy']){
          $headers .= "\r\nBcc: ".$_POST['email'];
       
            $modtager='tidemann@tdcadsl.dk';
            $mailTo = array (
            "Århus" => array("tidemann@tdcadsl.dk","tidemann@tdcadsl.dk")
            ,"Esbjerg" => array("tidemann@tdcadsl.dk","tidemann@tdcadsl.dk")
            ,"København" => array("tidemann@tdcadsl.dk","tidemann@tdcadsl.dk")
          );         
          $emne = "Mail fra en bruger";
            $besked = "Du har modtaget en bestilling fra: \n
                Navn: " . $_POST['navn']. "\n
                Email: " . $_POST['email']. "\n
                Tlf: " . $_POST['tlf']. "\n
                Ønsket dato: " . $_POST['date']. "\n
                Behandlingssted: " . $_POST['make']. "\n
                Behandlingsform: " . $_POST['sted']. "\n
                Ønsket tid: " . $_POST['tid']. "\n
                Yderligere oplysninger: " . $_POST['besked']. "\n
                Ring mig op: " . $_POST['call_me'];             
                                     
                    if(array_key_exists($make,$mailTo))
                    mail(implode(",",$mailTo[$make]),$emne,$besked,$header);
    else
    $msg = "Ingen mailadresser fundet...";{
    $msg .= "<p>Tak for din henvendelse  $navn. Jeg svarer så hurtigt som muligt.</p>";
  }
    $target = "index.shtml";
  }
  else {
    $_SESSION['form'] = $_POST;
    $msg = "<p>E-mailen blev ikke sendt. Der skete en fejl. Prøv igen!</p>";
    $target = "bestillingsformular.php";
  }
  }
  else {
    $_SESSION['form'] = $_POST;
  $msg = "<p>Alle felter skal udfyldes!</p>";
    $target = "bestillingsformular.php";
  }
}
else {
    $_SESSION['form'] = $_POST;
  $msg = "<p>Desværre, verifikationskoden kunne ikke godkendes!</p>";
    $target = "gode-raad.shtml";
  }
}
header( "Refresh: 2; URL=$target" );
echo $msg;       
?>

<br />
</div>
<div class="footer">
<?php include("css/footer.inc"); ?>
</div>
</div>
<h4><a class="a" href="#">Layout by Marianne Tidemann - Copyright 2007 - © all rights reserved</a></h4>
</body>
</html>
Avatar billede tidemann Nybegynder
27. april 2007 - 10:44 #17
Og det giver:
Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/bestilling.php:11) in /var/www/html/bestilling.php on line 97

Desværre, verifikationskoden kunne ikke godkendes!

og linie 97 er denne:
header( "Refresh: 2; URL=$target" );
echo $msg;
Avatar billede coderdk Praktikant
27. april 2007 - 17:55 #18
Jeg gentager lige mig selv: Du må *ikke* skrive noget ud før header() - Hvis det ikke kan lade sig gøre, så redirect med javascript i stedet:

<script type="text/javascript">
  function gogo()
  {
    window.location.href="andenside.php";
  }
  window.onload = function() {
    setTimeout( "gogo()", 5000 );
  }
</script>

$msg har intet med asp at gøre...
Avatar billede tidemann Nybegynder
28. april 2007 - 10:50 #19
Det virker  :)
Tusind tak for det...............

Marianne
Avatar billede tidemann Nybegynder
28. april 2007 - 10:51 #20
Smider du lige et svar?
Avatar billede tidemann Nybegynder
28. april 2007 - 11:07 #21
Lige et lille spørgsmål mere :)

Kan den
<script type="text/javascript">
  function gogo()
  {
    window.location.href="andenside.php";
  }
  window.onload = function() {
    setTimeout( "gogo()", 5000 );
  }
</script>

fixes sådan at man ved de andre, altså hvis felterne ikke er udfyldt, bliver sendt tilbage uden refresh, for så bliver formularen tømt.

Lige som history.go -1, for så sletter den ikke det man har skrevet?
Avatar billede coderdk Praktikant
28. april 2007 - 13:05 #22
Ja, du kan vel bygge noget PHP-logik ind i den:

<script type="text/javascript">
  function gogo()
  {
<?php

  if ( $FELTER_IKKE_UDFYLDT )
  {
    echo 'history.go(-1);';
  }
  else
  {
    echo 'window.location.href="andenside.php";';
  }

?>
  }
  window.onload = function() {
    setTimeout( "gogo()", 5000 );
  }
</script>
Avatar billede coderdk Praktikant
28. april 2007 - 13:06 #23
(Ja, du skal så erstatte $FELTER_IKKE_UDFYLDT med noget der giver mening ;-D)
Avatar billede tidemann Nybegynder
30. april 2007 - 17:58 #24
Det vil den ikke være med til, så jeg holde mig til dette.

    else
    echo "Ingen mailadresser fundet...";{
    echo "<p>Tak for din henvendelse $navn. Jeg svarer så hurtigt som muligt.</p>";
    echo '<script type="text/javascript">
    function gogo()
  {
    window.location.href="mariannes/index.shtml";
  }
  window.onload = function() {
    setTimeout( "gogo()", 2000 );
  }
</script>';
  }
  }
  else {
    echo "<p>E-mailen blev ikke sendt. Der skete en fejl. Prøv igen!</p>";
    echo '<a href="#" onclick="history.go(-1); return false">Tilbage til formularen</a>';
  }
  }
  else {
  echo "<p>Alle felter skal udfyldes!</p>";
  echo '<a href="#" onclick="history.go(-1); return false">Tilbage til formularen</a>';
  }
}
else {
  echo "<p>Desværre, verifikationskoden kunne ikke godkendes!</p>";
  echo '<a href="#" onclick="history.go(-1); return false">Tilbage til formularen</a>';
}
}                 
?>


Det virker :)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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