Avatar billede maddoggy Nybegynder
05. maj 2007 - 18:47 Der er 3 kommentarer og
1 løsning

Mail Form som ikke tager de definerede ting med.

Hejsa,

Jeg sidder og programmere lidt i PHP (læs nybegynder) og er rendt ind i et lille problem for jer men et mega stort for mig, som jeg ikke selv kan løse.

Har en Mail form hvor jeg sender en tak til indtaster med diverse infomation og en til mig selv, det virker men i den til mig selv ville jeg gerne ha' at alle indtastede oplysninger kom med i mailen, såsom navn(den virker), Barnets navn, adreses, postnummer, by, telefon nummer men når jeg definere dem, bliver de ikke taget med over i mailen til mig udover før nævnte navn.

Selve scriptet ser således ud.

<?php
/* Minisport tilmelding's Formular */

// ------- three variables you MUST change below  -------------------------------------------------------
$valid_ref1="http://192.168.1.3/contact_bruges.html";// chamge "Your--domain" to your domain
$valid_ref2="http://192.168.1.3/contact_bruges.html";// chamge "Your--domain" to your domain
$replyemail="min@mail.dk";//change to your email address
// ------------------------------------------------------------

//clean input in case of header injection attempts!
function clean_input_4email($value, $check_all_patterns = true)
{
$patterns[0] = '/content-type:/';
$patterns[1] = '/to:/';
$patterns[2] = '/cc:/';
$patterns[3] = '/bcc:/';
if ($check_all_patterns)
{
  $patterns[4] = '/\r/';
  $patterns[5] = '/\n/';
  $patterns[6] = '/%0a/';
  $patterns[7] = '/%0d/';
}
//NOTE: can use str_ireplace as this is case insensitive but only available on PHP version 5.0.
return preg_replace($patterns, "", strtolower($value));
}

$name = clean_input_4email($_POST["name"]);
$barn = clean_input_4email($_POST["barn"]); // denne tages ikke med i mail ???
$email = clean_input_4email($_POST["email"]);
// $by = clean_input_4email($_POST["by"]);
//når ovenstående er defineret, og indsættes i mail delen nederst så er det stadigvæk kun $navn som
//kommer med ?

$error_msg='Fejl - Din tilmelding er ikke gået godt, tjek om noget står forkert. Prøv igen.';

$success_sent_msg='<p align="center"><strong>&nbsp;</strong></p>
                  <p align="center"><strong>Din tilmelding er afsendt<br>
                  </strong> vi takker for tilmeldingen.</p>
                  <p align="center">En bekræftigelse er afsendt til dig.</p>
                  <p align="center">Vi ses i hallen når sæsonen starter.</p>';

$replymessage = "Hej $name

Tak for din tilmelding til Minisport.

Du vil modtage en mail Ca. 3 uger før sæsonen går igang,
med oplysninger om betaling af kontingent, samt det endelige programmet,
medsendes som en PDF fil, selve programmet vil også være at finde på hjemmesiden.

Program for de små http://www.xxx.dk/minisport/program_små

Program for de store http://www.xxx.dk/minisport/program_store

Venligst lad være med at besvare denne mail da den ikke læses.

Fremsend i stedet en mail til min@mail.dk el. benyt formularen
på hjemmesiden http://www.xxx.dk/minisport/kontakt


De bedste hilsner fra bestyrrelsen i Minisport";

// email variable not set - load $valid_ref1 page
if (!isset($_POST['email']))
{
echo "<script language=\"JavaScript\"><!--\n ";
echo "top.location.href = \"$valid_ref1\"; \n// --></script>";
exit;
}

$ref_page=$_SERVER["HTTP_REFERER"];
$valid_referrer=0;
if($ref_page==$valid_ref1) $valid_referrer=1;
elseif($ref_page==$valid_ref2) $valid_referrer=1;
if(!$valid_referrer)
{
echo "<script language=\"JavaScript\"><!--\n alert(\"$error_msg\");\n";
echo "top.location.href = \"$valid_ref1\"; \n// --></script>";
exit;
}
$name = "name: $name ";
// Denne vil jeg gerne have med i både mail til mig samt indtaster
$barn = "barn: $barn ";
//samt en masse andre indtastede oplysninger såsom adresse, post nummer, by, telefon nummer
//Forstår ikke hvorfor jeg ikke bare kan definere $by = "name: $by" og sætte den ind i mail dele
//som så medsendes til mig og den der indtaster

mail("$replyemail",
    "Tilmelding - Minisport",
    "$name",
    "$barn", //den tager ikke denne med i mail til mig, samt alle de andre jeg gerne vil ha' med
    "From: $email\nReply-To: $email");
   
mail("$email",
    "Tilmelding til minisport",
    "$replymessage",
    "From: $replyemail\nReply-To: $replyemail");
    //Hvis jeg sætter $barn ind i mail til indtaster kommer den med men nederst på siden, men andre kan
    //den ikke tage med over??? feks. $by
echo $success_sent_msg;
/*Tak for din tilmelding til minisport*/
?>

Et udpluk fra html filen så man kan se at navnet osv er at hente derfra.

<tr>
      <td align="right" width="159"><small>Forældre Navn:</small></td>
      <td width="349"><font face="Arial"><input class="inputc" size="29" name="name"></font></td>
    </tr>
    <tr>
      <td align="right" width="159"><small>Barnets Navn:</small></td>
      <td width="349"><font face="Arial"><input class="inputc" size="29" name="barn"></font></td>
    </tr>

Håber at der er en som kan give mig lidt hjælp til dette.

På forhånd tak.
Avatar billede gizp Nybegynder
05. maj 2007 - 22:02 #1
Det er fordi du skal samle alle de informationer du vil have tilsendt dig selv i en variabel.

Altså
$informationJegVilHave = "Navn: ".$navn."/n
barn: ".$barn."/n
osv.";

Og så:
mail("$replyemail",
    "Tilmelding - Minisport",
    $informationJegVilHave,
    "From: $email\nReply-To: $email");
Avatar billede gizp Nybegynder
05. maj 2007 - 22:03 #2
Det er fordi syntaxen på funktionen mail() er
mail(hvem den er til, emnet, indhold i mail, og andre Headers) .. ;)
Avatar billede maddoggy Nybegynder
05. maj 2007 - 22:27 #3
ja, selvfølgelig... ET STORT TAK herfra... har kæmpet med dette... og så er det så åbentlyst at man ikke tænker på at det var det... TAK TAK...
Avatar billede gizp Nybegynder
05. maj 2007 - 22:36 #4
Så lidt :)
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