Avatar billede janorakel Nybegynder
04. juni 2006 - 11:48 Der er 9 kommentarer og
1 løsning

Videresend fra denne side ved submit

Jeg har denne php-side, hvor man kan indtaste data som bliver sendt pr. e-mail. Scriptet virker udemærket hvis det står alene, men i denne sammenhæng har jeg sammensat de med et andet så det bliver trukket fra en database.
Kan der laves en header som videresender brugeren til hovedsiden.
Endvidere kan der måske laves en popup med en besked om at indtastede data er modtaget.
Her er den:

<?php


$besked = "Navn er: " . $_POST['navn'] . "\n";
$besked .= "Firmanavn: " . $_POST['Firmanavn'] . "\n";
$besked .= "Adressen er: " . $_POST['Adresse'] . "\n";
$besked .= "Postnr og by: " . $_POST['Postnrby'] . "\n";
$besked .= "Email er: " . $_POST['Email'] . "\n";
$besked .= "Telefon er: " . $_POST['tlf'] . "\n";
$besked .= "Beskeden er: " . $_POST['besked'] . "\n";

if(isset($_POST['navn'])){
    mail("jan@xxxxxx.dk", "Jeg vil gerne have materiale tilsendt", $besked, "From: $_POST[navn] <$_POST[mail]>");
    echo "<br><br><h5>Din forespørgsel er nu sendt</h5>";
}
?>
<style type="text/css">
<!--
.style3 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; }
.style4 {font-size: 10px}
-->
</style>
<form action="<?php echo $SERVER['PHP_SELF']; ?>" method="post">
  <table width="90%"  border="0">
    <tr>
      <td><span class="style3">Navn:</span></td>
      <td><input name="navn" class="form" type="text" size="50"></td>
    </tr>
    <tr>
      <td><span class="style3">Firmanavn:</span></td>
      <td><input name="Firmanavn" class="form" type="text" size="50"></td>
    </tr>
    <tr>
      <td><span class="style3">Adresse:</span></td>
      <td><input name="Adresse" class="form" type="text" size="50"></td>
    </tr>
    <tr>
      <td><span class="style3">Postnr og by:</span></td>
      <td><input name="Postnrby" class="form" type="text" size="50"></td>
    </tr>
    <tr>
      <td height="43" valign="bottom"><span class="style3">Email: </span></td>
      <td valign="bottom"><input name="Email" class="form" type="text" size="50"></td>
    </tr>
    <tr>
      <td><span class="style style1 style4">Tlf.:</span></td>
      <td><input name="tlf" class="form" type="text" id="tlf" size="12"></td>
    </tr>
    <tr>
      <td><span class="style4"></span></td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td valign="top"><span class="style3">Evt. en besked: </span></td>
      <td><textarea wrap="virtual" name="besked" class="form" rows="10" cols="45"></textarea></td>
    </tr>
    <tr>
      <td><span class="style4"></span></td>
      <td>&nbsp;</td>
    </tr>
    <tr>
      <td><span class="style4">
      </span></td>
      <td><span class="style4">
        <input name="submit" class="form" type="submit" value="Send">
      </span></td>
    </tr>
  </table>
</form>
Avatar billede leif Seniormester
04. juni 2006 - 11:53 #1
Den skriver jo pænt:
Din forespørgsel er nu sendt

Men du kan ændre:
echo "<br><br><h5>Din forespørgsel er nu sendt</h5>";
til
header("Location:http://domæne.dk/side.htm";


Så vil brugeren efter Submit sendes til denne side, men jeg synes da sådan som den er nu er da den smarteste.
Avatar billede leif Seniormester
04. juni 2006 - 11:53 #2
header("Location:http://domæne.dk/side.htm";

skulle være:


header("Location:http://domæne.dk/side.htm");
Avatar billede coderdk Praktikant
04. juni 2006 - 12:00 #3
if(isset($_POST['navn'])){
    mail("jan@xxxxxx.dk", "Jeg vil gerne have materiale tilsendt", $besked, "From: $_POST[navn] <$_POST[mail]>");
    echo "<br><br><h5>Din forespørgsel er nu sendt</h5>";
}

bør være:

if(isset($_POST['navn'])){
    mail("jan@xxxxxx.dk", "Jeg vil gerne have materiale tilsendt", $besked, "From: $_POST[navn] <$_POST[mail]>");
    header("location: en_anden_side.php");
    exit;
}

Altså: Husk exit() og at der ikke må komme noget output før du sender headeren!
Avatar billede leif Seniormester
04. juni 2006 - 13:02 #4
coderdk -> Hvorfor exit() efter header ? Har jeg aldrig gjort og har ingen problemer.
Avatar billede janorakel Nybegynder
04. juni 2006 - 15:47 #5
Var lige ude at spille lidt tennis i det gode vejr..
Ja, det er rigtigt at det nok er smartest fra starten, men det virker bare ikke når jeg har sat koden ind i et hjemmelavet cms. Så liger koden som et felt i databasen.

Hvad er forskellen i opfølgning 2?

Jeg kan ikke få noget af det til at virke, - jo, men kun når det er filer for sig selv.
Avatar billede leif Seniormester
04. juni 2006 - 15:53 #6
Det dit problem kan være er at du har et output før header() så fejler den.

Men hvad er det præcis der ikke virker når du sætter det sammen dit eget ?
Avatar billede janorakel Nybegynder
06. juni 2006 - 22:47 #7
Jo, hvis den bare ligger som enkeltfil virker den fint med at give en besked(output) når man har submittet. Men her hvor jeg trækker koden fra en database, hvor koden så ligger inden i en iframe melder den at siden ikke er fundet - ved submit.
Avatar billede janorakel Nybegynder
29. marts 2007 - 13:09 #8
smider I et svar?
Avatar billede janorakel Nybegynder
29. maj 2007 - 21:30 #9
tager dem selv så...
Tak for hjælpen!
Avatar billede janorakel Nybegynder
29. maj 2007 - 21:30 #10
.
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