Gå til innhold

[Løst] Feil med mailform som sender til e-post


Anbefalte innlegg

Jeg har lite problem med mitt kontaktskjema og mailform.php script. Alt fungerer greit, men mailen som sendes til meg inneholder ikke annet enn subject, ingen annen informasjon, som navn og e-post. Jeg er helt ny med PHP, og ser nok derfor ikke den forhåpentligvis innlysende feilen.

 

PHP-koden er som følger:

 

<?php 
if($_POST['submit']) 
{  
   if($_POST['firma'] && $_POST['navn'] && $_POST['telefon'] && $_POST['epost']) 
   {  
       $firma;     // inneholder navnet på firmaet 
       $navn;     // inneholder navnet på avsender  
       $telefon;  // inneholder avsenders telefonnr  
       $epost;    // inneholder avsenders epost-adresse  
       $mottaker = '[email protected]';  
       $emne = 'Kontaktskjema fra hjemmesiden';  
       $fra = 'Fra: ' . $navn .  '<' . $epost . '>';
             
       if(mail($mottaker,$emne,$melding,$fra)){  
           echo 'Mailen ble sendt.';  
       }  
       else 
       { 
           echo 'Det skjedde en feil, mailen ble ikke sendt'; 
        
       } 
        
   } else {  
       echo 'Mailen kan ikke sendes fordi du lot noen felter stå tomme.';  
   }  
} 
else 
{  
   echo 'Denne siden inneholder et mail-script. Du har kommet hit uten å fylle ut mail-skjema.';  
}  
echo '<a href="index.php?side=kontakt">Tilbake</a>';  
?> 

 

Noen som har forslag til hva som er feil?

 

 

edit: så at firma var skrevet feil en plass :)

Endret av Gammon
Lenke til kommentar
Videoannonse
Annonse

Her er selve skjemaet:

 

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

<p> 
<label for="firma">Firma:</label><br>
<input type="text" id="firma" name="firma" /> 
</p>  

<p> 
<label for="navn">Navn:</label><br>
<input type="text" id="navn" name="navn" /> 
</p>  

<p> 
<label for="telefon">Telefon:</label><br>
<input type="text" id="telefon" name="telefon" /> 
</p>  

<p><label for="epost">E-post:</label><br>
<input type="text" id="epost" name="epost" /> 
</p>  

<p><input type="submit" name="submit" value="Send" /><input type="reset" value="Nullstill" /></p>  
</form> 

 

 

Til informasjon, det jeg får opp i e-posten min er rett og slett:

 

Fra: <>

Endret av Gammon
Lenke til kommentar

Prøv å ha koden sånn her da:

 

<?php 
if($_POST['submit']) 
{  
  if($_POST['firma'] && $_POST['navn'] && $_POST['telefon'] && $_POST['epost']) 
  {  
      $firma;     // inneholder navnet på firmaet 
      $navn;     // inneholder navnet på avsender  
      $telefon;  // inneholder avsenders telefonnr  
      $epost;    // inneholder avsenders epost-adresse  
      $mottaker = '[email protected]';  
      $emne = 'Kontaktskjema fra hjemmesiden';  
      $fra = 'Fra: $navn - $epost';
            
      if(mail("$mottaker", "$emne", "$melding", "$fra")){  
          echo 'Mailen ble sendt.';  
      }  
      else 
      { 
          echo 'Det skjedde en feil, mailen ble ikke sendt'; 
       
      } 
       
  } else {  
      echo 'Mailen kan ikke sendes fordi du lot noen felter stå tomme.';  
  }  
} 
else 
{  
  echo 'Denne siden inneholder et mail-script. Du har kommet hit uten å fylle ut mail-skjema.';  
}  
echo '<a href="index.php?side=kontakt">Tilbake</a>';  
?>

Endret av YaNkEs
Lenke til kommentar
Prøv å ha koden sånn her da:

 

<?php 
if($_POST['submit']) 
{  
  if($_POST['firma'] && $_POST['navn'] && $_POST['telefon'] && $_POST['epost']) 
  {  
      $firma;     // inneholder navnet på firmaet 
      $navn;     // inneholder navnet på avsender  
      $telefon;  // inneholder avsenders telefonnr  
      $epost;    // inneholder avsenders epost-adresse  
      $mottaker = '[email protected]';  
      $emne = 'Kontaktskjema fra hjemmesiden';  
      $fra = 'Fra: $navn - $epost';
            
      if(mail("$mottaker", "$emne", "$melding", "$fra")){  
          echo 'Mailen ble sendt.';  
      }  
      else 
      { 
          echo 'Det skjedde en feil, mailen ble ikke sendt'; 
       
      } 
       
  } else {  
      echo 'Mailen kan ikke sendes fordi du lot noen felter stå tomme.';  
  }  
} 
else 
{  
  echo 'Denne siden inneholder et mail-script. Du har kommet hit uten å fylle ut mail-skjema.';  
}  
echo '<a href="index.php?side=kontakt">Tilbake</a>';  
?>

Dessverre, funket heller ikke, nå kom "Fra:" heller ikke med. Er det noe i skjemaet mitt som er feil da?

Lenke til kommentar
Hm.. Har du satt stringen $melding noen plass? Mulig den ligger i scriptet men jeg ser den hvertfall ikke.. Så det kan jo være derfor du ikke får meldingen....

Nei, tror ikke jeg har satt den, hvor skal den stå og hva skal det stå? :)

Lenke til kommentar

Kommer ann på hva du skal ha i den:) Men det er det samme hvor du setter den.. Eks.:

$melding="Sendt fra: ".$navn." Email: ".$email." Telefon: " .$telefon." Firma :".$firma;

 

Elns.. Du setter det selv opp slik du vil ha det...:)

Lenke til kommentar
Kommer ann på hva du skal ha i den:) Men det er det samme hvor du setter den.. Eks.:

$melding="Sendt fra: ".$navn."  Email: ".$email." Telefon: " .$telefon."  Firma  :".$firma;

 

Elns.. Du setter det selv opp slik du vil ha det...:)

hehe, det var nesten det fungerte nå, men det som kommer opp i mailen til meg nå er:

 

Sendt fra: Email: Telefon: Firma :

 

 

Hvorfor klarer den ikke å hente ut dataen som er fylt inn i skjemaet, er det noe med serveren som scriptet kjører på?

 

Takk for hjelpen, forresten :)

Lenke til kommentar

Du gir ikke variblene noen verdi:

      $firma;     // inneholder navnet på firmaet
      $navn;     // inneholder navnet på avsender  
      $telefon;  // inneholder avsenders telefonnr  
      $epost;    // inneholder avsenders epost-adresse

Du må sette dem lik det som er skrevet inn i hvert felt i formen (hint: $_POST[])

Lenke til kommentar
Du gir ikke variblene noen verdi:

      $firma;     // inneholder navnet på firmaet
      $navn;     // inneholder navnet på avsender  
      $telefon;  // inneholder avsenders telefonnr  
      $epost;    // inneholder avsenders epost-adresse

Du må sette dem lik det som er skrevet inn i hvert felt i formen (hint: $_POST[])

hmm, du satte meg fast der :) Kan du hjelpe meg litt lenger på veien? Som sagt, jeg er nybegynner.

Lenke til kommentar

For å få tak i verdien til feltet med navnet firma i formen, så må du bruke

$firma = $_POST["firma"];
osv...

Du har brukt disse i if setningen din sett hver av variablene ($firma, $navn.. osv) lik den respektive $_POST ($_POST["firma"], osv...)

 

Bare spør igjen, dersom dette ble uklart...

Lenke til kommentar

i mail() funksjonen så kan du gjøre sånn her da:

 

mail("[email protected]", "Kontaktskjemaet fra hjemmesiden", "
Navn: 
$navn

Firma:
$firma

Telefon:
$telefon

Epost:
$epost ", "Fra $mail")

 

Så kan du stryke disse her fra koden din:

      $mottaker = '[email protected]';  
     $emne = 'Kontaktskjema fra hjemmesiden';  
     $fra = 'Fra: $navn - $epost';

 

Da tror jeg det skal funke fint!

Endret av YaNkEs
Lenke til kommentar

Sånn, tilbake på jobb etter et par dager fri; har derfor ikke fått prøvd forslagene fra dere før nå.

 

Nå fungerer alt utmerket, mange takk til alle som hjalp til med forslag, og spesielt til Kakkle, som satte fingeren på akkurat det som var problemet :)

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...