Avatar billede egmose Novice
03. august 2011 - 08:50 Der er 8 kommentarer og
1 løsning

Php noob - hvordan får jeg info fra alle felterne med?

Hej
Jeg har flg.: php kode:

<?php
if(isset($_POST["send"]{
$firmanavn = $_POST['firmanavn'];   
$person = $_POST['person'];
$email = $_POST['email'];
$tlf = $_POST['tlf'];
$message = $_POST['message'];

mail ( "mickey@mickeyrasmussen.dk", "Henvendelse fra webjunglen.dk",
$message, "From: $email" );
header( "Location: abc.dk/thanks.php" );
}
?>

Jeg modtager mail adressen & beskeden, hvilket egentlig giver meget godt mening, men kan ikke helt finde ud af hvordan jeg får det med?

er der iøvrigt nogen der kender til en guide, hvordan jeg kan programmere "regler" for formlen?
Avatar billede komputerdk Mester
03. august 2011 - 09:21 #1
hvad er det helt præcist du vil?

hvis det er fordi du mangler en form (der hvor man skriver i) så skriv dette mellem } og ?>  - en form er html derfor er det i echo " ";  punktum er et tegn man kan bruge for at sætte ting sammen.
PHP_SELF er i stedet for at skrive filens navn (man kan vælge at sende en form til samme PHP fil, eller en anden (hvilket gør koden lidt nemmere)

OBS:

Din message indeholder ikke navn etc. .

så du skal nok lave en (OBS hvis du skriver $variabel i " " så vises variablens værdi - hvis det står i ' ' så står der $variabel. derfor skal man bruge "'.$varibael.'" 

$message = echo "firmanavn: $firmanavn <br>person: $person<br> email: $email<br>TLF: $tlf<br><br>besked: $message";



else
//hvis send er tom, vis formen
  {
  echo "<form method='post' action='".$_SERVER['PHP_SELF']."'>
  Firmanavn: <input name='firmanavn' type='text' /><br />
  Person: <input name='person' type='text' /><br />
  eMail: <input name='email' type='text' /><br />
  tlf:<input name='tlf' type='text' /><br />
  Message:<br />

  <textarea name='message' rows='15' cols='40'>
  </textarea><br />
  <input type='submit'name='send' />
  </form>";
  }


ellers tjek denne, den er god
http://www.w3schools.com/PHP/php_mail.asp
Avatar billede egmose Novice
03. august 2011 - 09:53 #2
Jeg har skam den nødvendige HTML kode:
<form method="post" action="sendmail.php">
<input type="text" value="Firmanavn" name="firmanavn">
<input type="text" value="Kontakperson navn" name="person">
<input type="text" value="E-mail" name="email">
<input type="text" value="Telefonnummer" name="tlf">

<textarea name="message" rows="6" cols="20">
Din besked
</textarea>
<input type="submit" name="send">



</form>
Problemet er at når jeg afårøver forumaleren i praksis får jeg godt nok en mail, med afsender mail og beskeden..
Men intet om tlf. nr. eller noget af det andet?
Det giver meget godt mening, for der står ikke rigtig noget om det i PHP koden, men kan ikke helt gennemskue, hvad & Hvor jeg skal skrive det..

Håber det giver lidt mere mening :)
Avatar billede nemlig Professor
03. august 2011 - 10:14 #3
Og så skal du tage stilling til, om mailen skal vises som html - altså med de formatteringer der er mulighed for indenfor HTML ELLER om det skal være Plain-text, som blot er rå tekst uden formatteringer.

Som din kode er lige nu, så er det Plain-text.
Avatar billede egmose Novice
03. august 2011 - 10:20 #4
Plain tekst er fint..
Avatar billede nemlig Professor
03. august 2011 - 10:34 #5
Jeg ville gøre det sådan her:

Ret denne linje:

$message = $_POST['message'];

Til:

$message =  $_POST['message'];
$message .= 'Firmanavn: '.$firmanavn."\n";
$message .= 'Person: '.$person."\n";

osv med det øvrige felter, du vil have med.
På denne måde sætter flere variabler sammen i variablen $message.
Avatar billede nemlig Professor
03. august 2011 - 10:38 #6
Og der skal nok også være et linjeskift efter beskeden, hvorfor du lige skal ændre den første linje til:

$message =  $_POST['message']."\n";
Avatar billede komputerdk Mester
03. august 2011 - 11:18 #7
Vupti

$message = echo "firmanavn: $firmanavn <br>person: $person<br> email: $email<br>TLF: $tlf<br><br>besked: $message";

vil nok ikke se så pænt ud i en plain text mail..

nemlig's måde at sætte variablerne sammen er nok bedre.


man kunne dog godt lave den lidt kortere ved:

<?php
if(isset($_POST["send"]{
$message = "firmanavn: $_POST['firmanavn'] \n"; 
$$message .= "Person: $_POST['person'] \n";
$message .= "email: $_POST['email'] \n";
$message .= "TLF : $_POST['tlf'] \n";
$message .= "Besked: $_POST['message'] \n";



grunden er at når du har en form med følgende

<input type="text" value="Firmanavn" name="firmanavn">

så tildeler PHP selv en variabel som hedder det samme som name - i det her tilfælde $firmanavn

I sendmail.php  før den følgende

if(isset($_POST["send"]{ 
//hvis send har en værdi (fordi den kommer fra formularen) så skal den fortsætte)

$firmanavn = $_POST['firmanavn']; 
$person = $_POST['person'];
$email = $_POST['email'];
$tlf = $_POST['tlf'];
$message = $_POST['message'];

//her modtager du de variabler som er postet fra den første php side, så bruges $_POST['variablnes navn']


mail ( "mickey@mickeyrasmussen.dk", "Henvendelse fra webjunglen.dk",$message, "From: $email" );
//$message er variablen der sættes ind som body i mailen

header( "Location: abc.dk/thanks.php" );
//viser hvad den skal gøre bagefter.



Men mail funktionen i PHP indeholder kun en variabel for beskeden i mailen (i dit tilfælde bruger du $message)
Avatar billede nemlig Professor
08. august 2011 - 10:18 #8
Jeg synes, der er blevet lidt stille i denne tråd. Har trådstarter fået løst sit problem?
Avatar billede egmose Novice
10. december 2011 - 11:16 #9
Ja, jeg beklager.. Må hellere lukke ..
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