Gå til innhold

Skjema svar til mail.


Anbefalte innlegg

Hvorfor skulle den bli avist? ..jeg bare spørr..

Det er jo altid samme e-post adressen som blir send til..

Når du har brukt pc en stund så vet du sikkert at den oppfører seg merkelig av og til - tenk deg da en server som har store programmer som er aktive hele døgnet 365 dager i året. Det skjer mye rart med servere og viktige ting som mail burde alltid sjekkes - ellers kan det hende noen har send deg en mail og venter på svar, så har den blitt aldri kommet frem grunnet en feil.

Lenke til kommentar
Videoannonse
Annonse

Ok.

Her er webside:

 

index.php

<html>
<head>
<title>Test v.01</title>
<style type="text/css" media="screen">@import "style.css";</style>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
 if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
   document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
 else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
//-->
</script>
</head>

<body>
<div id="center">
<div id="Layer1">
<br>
<br>
<br>
<br>
<br>
<br>
<?php include("linker.php") ?>
</div>
<div id="Layer2">
<?php        

/* Skjekker om superglobalen er satt */

   if (!isset ($_GET['id'])) {
//Hvis ikke satt, setter main.php til hoved
   $_GET['id'] = 'main';

}

   if (file_exists($_GET['id'].".php")) {

   include($_GET['id'].".php");

}

   else {

   echo ('404! Filen finnes ikke');

}
?>
</div>
<div id="Layer3"></div>
</div>
</body>
</html>

 

linker.php

<a href="index.php?id=main">Hjem</a> - <a href="index.php?id=jobb">Jobb</a> - <a href="index.php?id=produkter">Produkter</a> - <a href="index.php?id=skjema">Kontakt oss</a>

 

main.php

Lorem ipsum dolor sit amet, consectetuer adipiscing elit.

 

skjema.php

<form action="index.php?id=mail" method="POST"><br>

Skriv inn ditt fulle navn:<br>
<input type="text" name="navn" size="25" maxlength="45" /><br><br>

Skriv inn ditt telefon nummer<br>
hvor vi kan kontkte deg:<br>
<input type="text" name="nr" size="25" maxlength="45" /><br><br>

Skriv inn din e-post adresse:<br>
<input type="text" name="mail" size="25" maxlength="45" /><br><br>

Hvor gammel er du?<br>
<input type="text" name="alder" size="25" maxlength="45" /><br><br>

Når ønsker du å bli kontaktet?<br>
<input type="text" name="når" size="25" maxlength="45" /><br><br>

Hva er målet ditt?<br>
<textarea NAME="mål" ROWS="6" COLS="45" wrap="hard">
</textarea>
<br><br><br><br>

<input type="submit" value="Neste -->" />
</form>

 

mail.php

<div>
<form action="index.php?id=mail2" method="POST"><br>
<br>
<br>
Navn:<br>
<textarea NAME="navn" ROWS="2" COLS="45" wrap="hard">
<?php echo $_POST["navn"]; ?>
</textarea><br><br>

Telefon:<br>
<textarea NAME="nr" ROWS="2" COLS="45" wrap="hard">
<?php echo $_POST["nr"]; ?>
</textarea><br><br>

E-post:<br>
<textarea NAME="mail" ROWS="2" COLS="45" wrap="hard">
<?php echo $_POST["mail"]; ?>
</textarea><br><br>

Alder:<br>
<textarea NAME="alder" ROWS="2" COLS="45" wrap="hard">
<?php echo $_POST["alder"]; ?>
</textarea><br><br>

Ønsker å bli kontaktet:<br>
<textarea NAME="når" ROWS="2" COLS="45" wrap="hard">
<?php echo $_POST["når"]; ?>
</textarea><br><br>

Har dette som mål:<br>
<textarea NAME="mål" ROWS="6" COLS="45" wrap="hard">
<?php echo $_POST["mål"]; ?>
</textarea><br><br>
<strong>
Jeg ønsker å bli kontaktet på:
<br>
<INPUT TYPE="radio" NAME="tlf" value="telefon"> telefon.
<br>
<INPUT TYPE="radio" NAME="epost" value="epost"> e-post.<br>
<br></strong>
<input type="submit" value="Send skjema" />
</form>
</div>

 

mail2.php (gir mulighet for å redigere skjemaet som er fylt ut.)

<?php
header('Location: http://www.housemaadiah.com/aog/hl/index.php');
mail($til, $topic, $melding,'');
exit;
?>

<?php

$til = "[email protected]";

$topic = "Produkter/Jobb";

$melding = "Navn:
$navn\n\n\n";

$melding .= "Telefon:
$nr\n\n\n";

$melding .= "E-post:
$mail\n\n\n";

$melding .= "Alder:
$alder\n\n\n";

$melding .= "Ønsker å bli kontaktet:
$når\n\n\n";

$melding .= "Har dette som mål:
$mål\n\n\n";

$melding .= "Kontakt meg på:
$tlf $epost\n\n\n";

?>

<div>

Takk for at du fylte ut dette skjemaet.<br>
Vi skal prøve å ta kontakt når det passer best for deg.<br>
<br>
Du vil nå bli sendt til startsiden.
<br>
<br>
<strong>Navn:</strong><br>
<?php echo $_POST["navn"]; ?> <br><br>

<strong>Telefon:</strong><br>
<?php echo $_POST["nr"]; ?> <br><br>

<strong>E-post:</strong><br>
<?php echo $_POST["mail"]; ?> <br><br>

<strong>Alder:</strong><br>
<?php echo $_POST["alder"]; ?> <br><br>

<strong>Ønsker å bli kontaktet:</strong><br>
<?php echo $_POST["når"]; ?> <br><br>

<strong>Har dette som mål:</strong><br>
<?php echo $_POST["mål"]; ?> <br><br>

Kontakt meg på
<?php echo $_POST["tlf"]; ?> <?php echo $_POST["epost"]; ?> <br><br>

</div>

 

Saken er at når mail2.php lastes, så skal siden gå til <a href="index.php?id=main">Hjem</a> helst så fort som mulig, i tilegg til at skjemaet skal sendes til mail.

 

Kan noen forklare hva som er galt, og fortelle meg hva jeg skal endre?

Jeg får ikke dette til.

Lenke til kommentar

Oki.

Nå har jeg prøvd mye rart for å få dette til.

 

Det jeg lurte på, er om det er mulig å lagen en knapp som har 2 funksjoner.

 

eks:

 

onClick: <?php mail( $til, $topic, $melding,''); ?>

onReleas: <a href="index.php?id=main></a>

 

Går det ann?

Lenke til kommentar

aog: onclick er javascript, alt som skal kjøres i php må f.eks submites til en server eller komme iform av at man trykker på en link...

 

javascript defineres av html, php lager html. hvis du først lager den html'en du vil ha, kan du siden se hvordan php må se ut for å produsere den htmlen

Lenke til kommentar

Det jeg ville gjort var å lage et ekstra dokument sånn her:

 

skjema.php:

... <form method="post" action="mail.php"> ...

 

mail.php:

<?php
// Evt. registrere superglobals som variabler her
mail( $til, $topic, $melding,'');
header("Location: index.php?id=main");
?>

 

Som gjør nøyaktig samme nytten uten bruk av javascript.

Lenke til kommentar

lokaltog :

Jeg tror jeg har prøvd alle verdens måter å bruke header("Location: ") på. Det går bare ikke.

Jeg tror det kommer av at alle sidene mine blir includert inn i index siden min, og derfor inneholder bare indexsiden <head>, <body>, osv.

Løsningen min ble slik:

 

<INPUT TYPE="button" value="Rediger" onClick="history.back(-1)"> <INPUT TYPE="button" value="Send skjema" onClick="<?php mail( $til, $topic, $melding,''); ?>"
onMouseUp="parent.location='http://www.server.com/aog/hl/'">
</FORM>

 

Dette virker utmerket.

Har ikke oppdaget noen form for bugger eller lignened med dette.

 

 

 

Litt morsomt:

 

Når jeg satt her å prøvde allverdens ting, så komm jeg opp med en løsning trodde jeg. Det som skulle skje var at mailen skulle sendes, og index siden skulle vises.

Da jeg teste så begynte siden å laste. Jeg gav den litt tid. (ca 30sec) Så stoppet jeg den siden det ikke skjedde noe. Da jeg sjekket e-posten min, lå det over 2500 mailer som ville inn. :whistle:

Måtte slette den mail-kontoen ja :tease:

Lenke til kommentar

Det finnes mange grunner til at du ikke skal benytte javascript - der i blandt er det viktig å merke seg at nærmere 10% av alle webbrukere ikke har javascript - så da vil ikke de kunne benytte den løsningen.

 

Hva er det store problemet?

Ta en kikke på denne:

 

side1.php

<?php

// skipper validering av mailsendingen

mail(...);

header("Location: side2.php"); // bruk helst full path

?>

 

side2.php

<?php

echo "takk for din mail!";

?>

Lenke til kommentar
ahhh.. nå ser jeg.

 

hmmm......

 

 

da får jeg tenke litt mer.. Jeg gir meg ikke. :D

aog: merk at all phpkode er allerede kjørt når du sitter med siden "i fanget", om du har phpkode i onClick, er den allerede utført når du får siden.

 

det er dette som skiller server-side mot client-side programmering. serverside er allerede ferdig når du får siden. client-side kjører når du trykker på knappet etc.. uten at noe sendes til server. som onClick og javascript gjør.

Lenke til kommentar
Det finnes mange grunner til at du ikke skal benytte javascript - der i blandt er det viktig å merke seg at nærmere 10% av alle webbrukere ikke har javascript - så da vil ikke de kunne benytte den løsningen.

 

Hva er det store problemet?

Ta en kikke på denne:

 

side1.php

<?php

// skipper validering av mailsendingen

mail(...);

header("Location: side2.php"); // bruk helst full path

?>

 

side2.php

<?php

echo "takk for din mail!";

?>

Som jeg har sagt før, så virker av en eller annen grunn ikke

header("Location: side2.php"); // bruk helst full path

 

Jeg vet ikke hvorfor, men det bare er sån.. Har prøvd utallige ulike varianter på det.

Lenke til kommentar

det virker fordi du har echo'et html *før* du kjører header funksjonen. tror det er sagt et par dusin ganger nå.

 

hvorfor må du gå via index.php?id=whatnot for å sende mailen? hvis det er det du gjør? hvorfor gå gjennom includeoppsettet hvis du bare skal sende en mail og sende brukeren videre. han får jo ikke sett layouten du rasjonaliserer likevel.

Lenke til kommentar

Jo. Han får sett det.

 

 

Slik skal det bli:

 

1. Du fyller ut skjemaet.

2. Du trykker neste.

3. Du ser hva du har skrevet

4. Du går tilbake for å redigere, eller du sender.

5. Siden går til index samtidig som den blir sendt.

 

 

Slik er det:

 

1. Du fyller ut skjemaet.

2. Du trykker neste.

3. Du ser hva du har skrevet og mailen blir sendt.

4. Du går tilbake for å redigere, eller du "sender". (Det står iallefal at du sender :-p )

5. Siden går til index samtidig som den blir "sendt".

 

 

Jeg gir meg uansett ikke før jeg får dette til :D

Lenke til kommentar

oki..

 

Hvis jeg kunne lagret form output på serveren, da kunne jeg vel senere hentet det ut for så å sende det til mail?

 

Da trenger no ikke brukeren se det, så da kan jeg jo bruke header("Location: side.php"); // bruk helst full path

Endret av aog
Lenke til kommentar

argh... les nøye det jeg skriver nå :)

 

1: skjema.php lar du stå som den står

 

2: i mail.php setter du action="mail2.php", og IKKE index.php?id=mail2

 

3: i mail2.php har du phpkoden som sender mailen og som sender en location header, eksempel slik:

<?php

#
# en eller annen phpkode som lager variablene: $til, $topic, $melding
#

# når variablene så er satt:
mail($til, $topic, $melding,'');
header("Location: index.php?id=takkformail");
exit;
?>

 

4: lag deg siden takkformail.php:

<?php
<div>

Takk for at du fylte ut dette skjemaet.<br>
Vi skal prøve å ta kontakt når det passer best for deg.<br>
<br>
?>

 

I den siste fila kan du evt. lage en meta refresh eller en javascript sak som dessuten sender brukeren til framsiden etter en stund. Merk at kombinasjonen "vise tilbakemelding" og "bruke location header" ikke lar seg kombinere.

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å
×
×
  • Opprett ny...