webForumDet fria alternativet

Problem att skicka ifyllt formulär som HTML-mail

4 svar · 736 visningar · startad av peroerik

peroerikMedlem sedan juni 200827 inlägg
#1

Jag letar förtvivlat efter ett sätt att skicka iväg ett fomulär som fyllts i av besökare på en sida. Jag ser att ifyllnad går bra. När man klickar post kommer man till min fortsättningssida som skickar ett mail med ett tomt formulär.
Inga data kommer in i formuläret. Hur löser jag detta?
Jag är ganska ny som användare av PHP men jag vill lära mig och nu kan jag inte få detta problem ur huvudet.
Hjälp mig någon snälla!

Bifogar koden i mina två inblandade filer:

Första sidan där användare fyller i data:
-------
<?php include "../include/Session_Ctrl.php"; ?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Language" content="sv">
<title>Anmälan OSE-aktivitet</title>

<link href="../css/layout.css" rel="stylesheet" type="text/css">
<meta name="author" content="Per-Ola Eriksson">
<title>OSE Anmälan</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="../css/layout.css" rel="stylesheet" type="text/css">
</head>
<body>

<! START SIDHUVUD >
<div id="sidhuvud"><?php include "../include/sidhuvud.php"; ?></div>
<! SLUT SIDHUVUD >

<div id="layout">

<div id="kolumncontainer">

<! START MENY >
<?php include "../include/meny.php"; ?>
<! SLUT MENY >

<! START KOLUMN 3 >
<div id="kolumn3">

<! Test av mail()! >
<FORM method="post" action="http://www.mindomain/senior/test/sida3/osemail.php">
<table>
<tr><td>Förnamn:</td><td>Efternamn:</td><td>e-post:</td><td>Telefon:</td></tr>
<tr><td><input type="Text" name="Förnamn" required="Yes" size="20" maxlength="20" tabindex="0"> </td>
<td><input type="Text" name="Efternamn" required="Yes" size="20" maxlength="20" tabindex="1"></td>
<td><input type="Text" name="e-post" required="Yes" size="30" tabindex="2"></td>
<td><input type="Text" name="Telefonnummer" validate="telephone" required="Yes" size="10" maxlength="10" tabindex="3"></td>
</table>

<table>
<tr><td>Adress:</td><td>Postnr:</td><td>Ort:</td></tr>
<tr><td><input type="Text" name="Adress" required="Yes" size="35" maxlength="35" tabindex="4"> </td>
<td><input type="Text" name="Postnummer" required="Yes" size="5" maxlength="5" tabindex="5"></td>
<td><input type="Text" name="Ort" required="Yes" size="20" tabindex="6"></td>
</table>

<br>
<h6><i>Ej medlem (make, maka, sambo)</i></h6><br>
<table>
<tr><td>Förnamn:</td><td>Efternamn:</td><td>e-post:</td></tr>
<tr><td><input type="Text" name="FörnamnE" required="Yes" size="20" maxlength="20" tabindex="7"> </td>
<td><input type="Text" name="EfternamnE" required="Yes" size="20" maxlength="20" tabindex="8"></td>
<td><input type="Text" name="e-postE" required="Yes" size="30" tabindex="9"></td>
</table>

<INPUT TYPE="Reset" VALUE="Rensa"><INPUT TYPE="Submit" VALUE="Skicka anmälan">
</form>

<hr>
<br><h2>Här ska komma anmälningstalonger till olika aktiviteter</h2><br>

</div>

</div>
</body>
</html>

---------

Och här filen som man länkas till vid Submit:

---------
<?php include "../include/Session_Ctrl.php";

$to="per-ola@fatburen.org";
$subject="OSE_Anmälan TEST";
$headers='MIME-Version: 1.0' . "\r\n";
$headers.='Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers.="From: ". $_POST['e-post'];

$html_content='
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" >
<html>
<head>
<meta http-equiv="Content-Language" content="sv">

<title>Anmälan OSE-aktivitet</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="../css/layout.css" rel="stylesheet" type="text/css">
</head>
<body>
<font face="Arial" size="5">Anmälan till OSE-aktivitet</font></p>
<hr>

<form action="" method="post" name="OSEanmform">
<table>
<tr><td>Förnamn:</td><td>Efternamn:</td><td>e-post:</td><td>Telefon:</td></tr>
<tr><td><input type="Text" name="Förnamn" value='$_REQUEST['Fornamn']' size="20" maxlength="20"></td>
<td><input type="Text" name="Efternamn" value='$_POST['Efternamn']' size="20" maxlength="20"></td>
<td><input type="Text" name="e-post" size="30" tabindex="2"></td>
<td><input type="Text" name="Telefonnummer" size="10" maxlength="10"></td>
</table>
</form>
</body>
</html>';

//$mail_som_ska_skickas=$headers.$html_content;
$sent = mail($to, $subject, $html_content, $headers) ;
if($sent)
{print "Anmälan skickad "; }
else
{print "Ett fel uppstod då ditt mail skulle sändas"; }

?>

PeddaMedlem sedan juni 20006 032 inlägg
#2

Välkommen till wF.

Har bara gjort en snabb koll, men när du ska skicka mailet så hämtar du datan med $_POST['Efternamn'].
Men i formuläret heter fältet EfternamnE. Alltså ska du hämta med $_POST['EfternamnE'].
Så kolla igenom så alla fältnamn stämmer.

Tips: Använd forumkod runt koden när du postar här så är det enklare för oss att läsa den.

peroerikMedlem sedan juni 200827 inlägg
#3

Både fält med namn Efternamn och EfternamnE finns i formuläret. Jag har dock strippat av koden lite i fil nr 2 tills jag hittat en lösning på hur jag får in info i formuläret som ska mailas.

peroerikMedlem sedan juni 200827 inlägg
#4

Lösning

Jag har nu med hjälp av min dotter löst grundproblemet. Det var två punkter som saknades.

Såhär ska det se ut i fil nr 2 för att testfälten ska visas ifyllda i mailet:

<tr><td><input type="Text" name="Fornamn" value="' . $_POST["FornamnE"] . '" size="20"></td>

Nu kvarstår bara problemet med hur man skriver för att checkboxes ska skrivas ut med en liten boc i sig om de är ifyllda och tomma om de inte markerats.

UrMeMedlem sedan apr. 2001762 inlägg
#5

Edit: Såg att det var löst här redan http://www.webforum.nu/showthread.php?p=1421239#post1421239

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)