Avatar billede tweak Nybegynder
15. december 2007 - 09:56 Der er 25 kommentarer og
1 løsning

Sende videre

Hej,

Jeg mangler noget hjælp til at sende folk videre til en side hvis alt er udfyldt som det skal være, altså "Tak for din henvendelse. Jeg svarer så hurtigt som muligt"

  }
  if(@mail("bruger@domaene.dk", strip_tags($_POST['subject']),
  stripslashes(strip_tags($_POST['message'])), $headers)) {
    echo "<p><strong style='color:#99291d'>Tak for din henvendelse. Jeg svarer så hurtigt som muligt.</strong></p>";
  }
  else {
    echo "<p><strong style='color:#99291d'>E-mailen blev ikke sendt. Der skete en fejl. Prøv igen!</strong></p>";
  }
Avatar billede nielle Nybegynder
15. december 2007 - 10:07 #1
Kig på header:

http://dk2.php.net/header
Avatar billede tweak Nybegynder
15. december 2007 - 10:25 #2
Problemet er bare at header allerede er sendt og at jeg ikke har hjerne til det:

<?php
if (isset($_POST['submit'])) {
if($_SESSION['verify'] == strtoupper($_POST['auth'])) {
  if (!empty($_POST['name']) && !empty($_POST['subject']) &&
  !empty($_POST['email']) && !empty($_POST['message'])) {
  $headers="From: ".$_POST['name']."<".$_POST['email'].">";
  if (@$_POST['customer_copy']) {
    $headers .= "\r\nBcc: ".$_POST['email'];
  }
  if(@mail("bruger@domaene.dk", strip_tags($_POST['subject']),
  stripslashes(strip_tags($_POST['message'])), $headers)) {
    echo "<p><strong style='color:#99291d'>Tak for din henvendelse. Jeg svarer så hurtigt som muligt.</strong></p>";
  }
  else {
    echo "<p><strong style='color:#99291d'>E-mailen blev ikke sendt. Der skete en fejl. Prøv igen!</strong></p>";
  }
  }
  else {
  echo "<p><strong style='color:#99291d'>Alle felter skal udfyldes!</strong></p>";
  }
}
else {
  echo '<p><strong style="color:#99291d">Hovsa...<br /><br />Koden kunne ikke godkendes, forsøg venligst at skrive den igen.</strong>';
}
}
?>
Avatar billede nielle Nybegynder
15. december 2007 - 10:28 #3
Du må ikke udskrive noget som helst til siden før at du kalder header().

Men det er der jo heller ikke brug for - sådan noget som "...Tak for din henvendelse. Jeg svarer så hurtigt som muligt..." skal vel udskrives på den side du redirecter til. Elers har folkjo ingen mulighed for at nå at læse det.
Avatar billede tweak Nybegynder
15. december 2007 - 10:34 #4
Nej, men så ville jeg sætte det ind her:

<?php
if (isset($_POST['submit'])) {
if($_SESSION['verify'] == strtoupper($_POST['auth'])) {
  if (!empty($_POST['name']) && !empty($_POST['subject']) &&
  !empty($_POST['email']) && !empty($_POST['message'])) {
  $headers="From: ".$_POST['name']."<".$_POST['email'].">";
  if (@$_POST['customer_copy']) {
    $headers .= "\r\nBcc: ".$_POST['email'];
  }
  if(@mail("bruger@domaene.dk", strip_tags($_POST['subject']),
  stripslashes(strip_tags($_POST['message'])), $headers)) {
header('Location: http://www.domaene.dk/');
  }
  else {
    echo "<p><strong style='color:#99291d'>E-mailen blev ikke sendt. Der skete en fejl. Prøv igen!</strong></p>";
  }
  }
  else {
  echo "<p><strong style='color:#99291d'>Alle felter skal udfyldes!</strong></p>";
  }
}
else {
  echo '<p><strong style="color:#99291d">Hovsa...<br /><br />Koden kunne ikke godkendes, forsøg venligst at skrive den igen.</strong>';
}
}
?>
Avatar billede nielle Nybegynder
15. december 2007 - 13:49 #5
Du har to sider:

A) Den som seneder mailen.
B) Den som der skal redirigeres til efter at mailen er sendt.

Du kan bruge header() på A til at vidresende til B. Det kræver dog at du ikke udskriver noget på A, så den del af koden skal flyttes til B. Men det skulle den jo alligevel? ... for ellers kunne dine brugere ikke nå at læse det du skriver.
Avatar billede tweak Nybegynder
15. december 2007 - 13:54 #6
Men jeg udskriver de fejl der måtte være i en <div> på siden, hvis det så er som det skal være skal de sendes til "Tak for din henvendelse. Jeg svarer så hurtigt som muligt" siden
Avatar billede tweak Nybegynder
15. december 2007 - 13:55 #7
Så nej, den del som melder fejl skal ikke flyttes.
Avatar billede tweak Nybegynder
15. december 2007 - 13:57 #8
Avatar billede nielle Nybegynder
15. december 2007 - 14:13 #9
Virker koden fra 15/12-2007 10:34:20ikke?

Den ser da korrkt us, men der skal måske lige en exit på:

<?php
if (isset($_POST['submit'])) {
    if ($_SESSION['verify'] == strtoupper($_POST['auth'])) {
        if (!empty($_POST['name']) && !empty($_POST['subject']) && !empty($_POST['email']) && !empty($_POST['message'])) {
            $headers = "From: " . $_POST['name'] . "<" . $_POST['email'] . ">";

            if ($_POST['customer_copy']) {
                $headers .= "\r\nBcc: ".$_POST['email'];
            }

            if (@mail("bruger@domaene.dk", strip_tags($_POST['subject']), stripslashes(strip_tags($_POST['message'])), $headers)) {
                header('Location: http://www.domaene.dk/');
                exit();
            } else {
                echo "<p><strong style='color:#99291d'>E-mailen blev ikke sendt. Der skete en fejl. Prøv igen!</strong></p>";
            }
        } else {
            echo "<p><strong style='color:#99291d'>Alle felter skal udfyldes!</strong></p>";
        }
    } else {
        echo '<p><strong style="color:#99291d">Hovsa...<br /><br />Koden kunne ikke godkendes, forsøg venligst at skrive den igen.</strong>';
    }
}
?>
Avatar billede tweak Nybegynder
15. december 2007 - 14:20 #10
Nej, jeg får fejlen: Warning: Cannot modify header information - headers already sent
Avatar billede nielle Nybegynder
15. december 2007 - 14:38 #11
Så må du have noget mere på din side som du ikke viser her. Et blanktegn i toppen af siden er såmæn nok.
Avatar billede tweak Nybegynder
15. december 2007 - 14:44 #12
Ja undskyld:

<?php
session_start();
?>
Avatar billede tweak Nybegynder
15. december 2007 - 14:48 #13
Fjerner jeg denne del validere den ikke koden der skal skrives
Avatar billede nielle Nybegynder
15. december 2007 - 15:54 #14
Altså sådan?

<?php
session_start();
if (isset($_POST['submit'])) {
    if ($_SESSION['verify'] == strtoupper($_POST['auth'])) {
        if (!empty($_POST['name']) && !empty($_POST['subject']) && !empty($_POST['email']) && !empty($_POST['message'])) {
            $headers = "From: " . $_POST['name'] . "<" . $_POST['email'] . ">";

            if ($_POST['customer_copy']) {
                $headers .= "\r\nBcc: ".$_POST['email'];
            }

            if (@mail("bruger@domaene.dk", strip_tags($_POST['subject']), stripslashes(strip_tags($_POST['message'])), $headers)) {
                header('Location: http://www.domaene.dk/');
                exit();
            } else {
                echo "<p><strong style='color:#99291d'>E-mailen blev ikke sendt. Der skete en fejl. Prøv igen!</strong></p>";
            }
        } else {
            echo "<p><strong style='color:#99291d'>Alle felter skal udfyldes!</strong></p>";
        }
    } else {
        echo '<p><strong style="color:#99291d">Hovsa...<br /><br />Koden kunne ikke godkendes, forsøg venligst at skrive den igen.</strong>';
    }
}
?>
Avatar billede tweak Nybegynder
15. december 2007 - 16:07 #15
Nej læs 15/12-2007 14:44:34

15/12-2007 15:54:15 giver mig fejlen Warning: Cannot modify header information - headers already sent

sikkert fordi jeg har

<?php
session_start();
?>

i toppen ?
Avatar billede tweak Nybegynder
15. december 2007 - 16:13 #16
Ahh,

Når der trykkes på send henter den: verify.php som ser sådan ud:

<?php
session_start();

if(isset($_SESSION['verify'])) {
  unset($_SESSION['verify']);
}

$str = substr(strtoupper(md5(uniqid("w"))), 0, 5);

$_SESSION['verify'] = $str;

$im = ImageCreateFromPNG("verify.png"); // Definer baggrundsgrafik
$sort = ImageColorAllocate($im,0,0,0);  // Definer tekstfarve - rgb-værdier
ImageTTFText ($im,11,0,10,14,$sort,"verdana.ttf",$str); // Definer fontfil -
    // Tallene i parentesen herover betyder:
    // 10 = fontstørrelse i px
    // 0 = rotation i grader
    // 6 = afstand i px fra venstre billedkant til tekst
    // 0 = afstand i px fra billedtop til tekstlinje
header("Content-type: image/png");
ImagePNG($im);
ImageDestroy($im);

?>
Avatar billede nielle Nybegynder
15. december 2007 - 16:17 #17
Hvad er sammenhængen mellem koden fra 15/12-2007 14:13:52 og den fra 15/12-2007 16:13:21?
Avatar billede tweak Nybegynder
15. december 2007 - 16:21 #18
Du skriver at: Så må du have noget mere på din side som du ikke viser her. Et blanktegn i toppen af siden er såmæn nok.

og jeg viser at jeg havde

<?php
session_start();
?>

i toppen.

15/12-2007 15:54:15 Giver mig fejlen: Warning: Cannot modify header information - headers already sent
Avatar billede nielle Nybegynder
15. december 2007 - 16:40 #19
Vis mig hele din kode - på en gang.
Avatar billede tweak Nybegynder
15. december 2007 - 16:46 #20
<?php
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
</head>
<BODY>

<div class="por" id="fejl">

<?php
if (isset($_POST['submit'])) {
if($_SESSION['verify'] == strtoupper($_POST['auth'])) {
  if (!empty($_POST['name']) && !empty($_POST['subject']) &&
  !empty($_POST['email']) && !empty($_POST['message'])) {
  $headers="From: ".$_POST['name']."<".$_POST['email'].">";
  if (@$_POST['customer_copy']) {
    $headers .= "\r\nBcc: ".$_POST['email'];
  }
  if(@mail("bruger@domaene.dk", strip_tags($_POST['subject']),
  stripslashes(strip_tags($_POST['message'])), $headers)) {
    echo "<p><strong style='color:#99291d'>Tak for din henvendelse. Jeg svarer så hurtigt som muligt.</strong></p>";
  }
  else {
    echo "<p><strong style='color:#99291d'>E-mailen blev ikke sendt. Der skete en fejl. Prøv igen!</strong></p>";
  }
  }
  else {
  echo "<p><strong style='color:#99291d'>Alle felter skal udfyldes!</strong></p>";
  }
}
else {
  echo '<p><strong style="color:#99291d">Hovsa...<br /><br />Koden kunne ikke godkendes, forsøg venligst at skrive den igen.</strong>';
}
}
?>

</div>

<form method="post" action="/kontakt/kontaktform.php">
<fieldset>
<legend>Husk at udfylde alle felter</legend>
<label>Navn:</label>
<input id="t1" type="text" name="name" value="<?php echo $_POST['name'] ?>">
<br>
<label>Email:</label>
<input id="t2" type="text" name="email" value="<?php echo $_POST['email'] ?>">
<br>
<label>Emne:</label>
<input id="t3" type="text" name="subject" value="<?php echo $_POST['subject'] ?>">
<br>
<label>Besked:</label>
<textarea id="t4" name="message" rows="10" cols="49"><?php echo $_POST['message']; ?></textarea>
<br>
<label>Kopi til dig?</label>
<input type="checkbox" id="cb" name="customer_copy" checked="checked">
<br>
<label>Indtast koden</label>
<input type="password" id="auth" name="auth">&nbsp;&nbsp;<img src="verify.php" id="ver" alt="Verifikation kode" class="img_top">
´<p>
Indtast kode for at sende mail!
<a class="tooltip" href="#">Hvorfor<b><em></em>
Dette er desværre nødvendigt
for at undgå unødvendige e-mails
fra personer som syntes det måtte
være sjovt at sidde og trykke på "send mail"
</b></a>
</p>
<input id="t6" type="submit" name="submit" value="Send mail">&nbsp; &nbsp;<input type="reset" id="t7" value="Slet alt">
</fieldset>
</form>
</div>
</div>
</body>
</html>

verify.php ser sådan ud:

<?php
session_start();

if(isset($_SESSION['verify'])) {
  unset($_SESSION['verify']);
}

$str = substr(strtoupper(md5(uniqid("w"))), 0, 5);

$_SESSION['verify'] = $str;

$im = ImageCreateFromPNG("verify.png"); // Definer baggrundsgrafik
$sort = ImageColorAllocate($im,0,0,0);  // Definer tekstfarve - rgb-værdier
ImageTTFText ($im,11,0,10,14,$sort,"verdana.ttf",$str); // Definer fontfil -
    // Tallene i parentesen herover betyder:
    // 10 = fontstørrelse i px
    // 0 = rotation i grader
    // 6 = afstand i px fra venstre billedkant til tekst
    // 0 = afstand i px fra billedtop til tekstlinje
header("Content-type: image/png");
ImagePNG($im);
ImageDestroy($im);

?>
Avatar billede nielle Nybegynder
15. december 2007 - 16:47 #21
Der må ikke udskrives noget som helst før at header() kaldes.

I dette tilføælde udskriver du altid denne del:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
</head>
<BODY>
...

og det er derfor at header() fejler på den måde den gør.
Avatar billede tweak Nybegynder
15. december 2007 - 16:52 #22
Så kan jeg jo ikke lave det som jeg gerne vil... jeg trykker på send og den henter verify.php hvorefter den så kalder header(http://ueue.dj) som er det den ikke må?
Avatar billede nielle Nybegynder
15. december 2007 - 16:55 #23
Så må du jo lave det på en anden måde. F.eks. sådan:

<?php
session_start();

$errMessage = "";
if (isset($_POST['submit'])) {
    if($_SESSION['verify'] == strtoupper($_POST['auth'])) {
        if (!empty($_POST['name']) && !empty($_POST['subject']) && !empty($_POST['email']) && !empty($_POST['message'])) {
            $headers = "From: ".$_POST['name']."<".$_POST['email'].">";

            if (@$_POST['customer_copy']) {
                $headers .= "\r\nBcc: ".$_POST['email'];
            }

            if (@mail("bruger@domaene.dk", strip_tags($_POST['subject']), stripslashes(strip_tags($_POST['message'])), $headers)) {
                header('Location: http://www.domaene.dk/');
                exit();
            } else {
                $errMessage = "<p><strong style='color:#99291d'>E-mailen blev ikke sendt. Der skete en fejl. Prøv igen!</strong></p>";
            }
        } else {
            $errMessage = "<p><strong style='color:#99291d'>Alle felter skal udfyldes!</strong></p>";
        }
    } else {
        $errMessage = '<p><strong style="color:#99291d">Hovsa...<br /><br />Koden kunne ikke godkendes, forsøg venligst at skrive den igen.</strong>';
    }
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
</head>
<BODY>

<div class="por" id="fejl">
<?php echo $errMessage: ?>
</div>

<form method="post" action="/kontakt/kontaktform.php">
<fieldset>
<legend>Husk at udfylde alle felter</legend>
<label>Navn:</label>
<input id="t1" type="text" name="name" value="<?php echo $_POST['name'] ?>">
<br>
<label>Email:</label>
<input id="t2" type="text" name="email" value="<?php echo $_POST['email'] ?>">
<br>
<label>Emne:</label>
<input id="t3" type="text" name="subject" value="<?php echo $_POST['subject'] ?>">
<br>
<label>Besked:</label>
<textarea id="t4" name="message" rows="10" cols="49"><?php echo $_POST['message']; ?></textarea>
<br>
<label>Kopi til dig?</label>
<input type="checkbox" id="cb" name="customer_copy" checked="checked">
<br>
<label>Indtast koden</label>
<input type="password" id="auth" name="auth">&nbsp;&nbsp;<img src="verify.php" id="ver" alt="Verifikation kode" class="img_top">
´<p>
Indtast kode for at sende mail!
<a class="tooltip" href="#">Hvorfor<b><em></em>
Dette er desværre nødvendigt
for at undgå unødvendige e-mails
fra personer som syntes det måtte
være sjovt at sidde og trykke på "send mail"
</b></a>
</p>
<input id="t6" type="submit" name="submit" value="Send mail">&nbsp; &nbsp;<input type="reset" id="t7" value="Slet alt">
</fieldset>
</form>
</div>
</div>
</body>
</html>
Avatar billede tweak Nybegynder
15. december 2007 - 17:05 #24
Et svar og 1000 tak!!
Avatar billede nielle Nybegynder
15. december 2007 - 17:07 #25
Svar :^)
Avatar billede tweak Nybegynder
15. december 2007 - 17:09 #26
Tak for det!
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