Avatar billede sjat Nybegynder
10. november 2004 - 14:54 Der er 17 kommentarer

Problem med Formmail.

Jeg har det her script:

                            <?PHP
    if ($navn != "" && $telefon != "" && $email != "" && $besked != "") {
        $recipient = "dennis@sorthvid.com";
        $subject = "$navn";
        $message .= "$besked\n\n\n\n";
        $message .= "Med venlig hilsen:\n\n";
        $message .= "$navn\n";
        $message .= "Tlf: $telefon\n";
        $message .= "Email: $email\n";
        $headers .= "Email fra sorthvid formmail";
   
        mail($recipient, $subject, $message, $headers);
        print "Beskeden er sendt!";
    } else if ($firsttime=="true") {
        print "Du mangler at udfylde";
    }
        $firsttime="true";
    ?>


Det skal virke sådan at man skal udfylde alle felterne før man kan sende. Hvis man ikke har udfyldt alle felter skal den komme med en besked om at man skal udfylde alle felterne...

Dette script:
Den kan godt sende når alle felterne fyldt, men den kommer ikke med en meddelelse når man ikke har gjort det... Hvad er der galt
Avatar billede rhandersen Nybegynder
10. november 2004 - 14:56 #1
<?PHP
    if ($navn != "" && $telefon != "" && $email != "" && $besked != "") {
        $recipient = "dennis@sorthvid.com";
        $subject = "$navn";
        $message .= "$besked\n\n\n\n";
        $message .= "Med venlig hilsen:\n\n";
        $message .= "$navn\n";
        $message .= "Tlf: $telefon\n";
        $message .= "Email: $email\n";
        $headers .= "Email fra sorthvid formmail";
   
        mail($recipient, $subject, $message, $headers);
        print "Beskeden er sendt!";
    } elseif ($firsttime=="true") {
        print "Du mangler at udfylde";
    }
        $firsttime="true";
    ?>
Avatar billede rhandersen Nybegynder
10. november 2004 - 14:57 #2
tror bare det er det med mellemrum ved elseif
Avatar billede sjat Nybegynder
10. november 2004 - 15:09 #3
Det virker desværre stadig ikke.
Jerg mangler meddelelsen om at man ikke har udfyldt alle felter, når man ikke har gjort det.

det virker som om at firsttime variablen ikke virker.

Håber virkelig der er nogen der kan hjælpe mig.

/Louise
Avatar billede sjat Nybegynder
10. november 2004 - 15:11 #4
...som en lille sidebemærkning kan det nævnes at PHP scriptet ligger i samme dokument som form'en. Hvis det da har noget at sige.

/Louise
Avatar billede rhandersen Nybegynder
10. november 2004 - 15:12 #5
kan du ikke lige komme med din form også?
Avatar billede sjat Nybegynder
10. november 2004 - 15:18 #6
Her er hele php dokumentet.



<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<div align="center">
  <form action="" method="POST">
    <table width="374" border="0" cellspacing="0" cellpadding="0">
      <tr height="36">
        <td width="10" height="36"></td>
        <td height="36" class="brodtekst">
          <p>Name<br>
              <input name="navn" type="TEXT" class="class" id="navn">
        </p></td>
        <td width="10" height="36"></td>
      </tr>
      <tr height="36">
        <td height="36"></td>
        <td height="36" class="brodtekst">Phone<br>
            <input name="telefon" type="TEXT" class="class" id="telefon"></td>
        <td height="36"></td>
      </tr>
      <tr height="36">
        <td width="10" height="36"></td>
        <td height="36" class="brodtekst">
          <p>E-mail<br>
              <input class="class" type="TEXT" name="email">
        </p></td>
        <td width="10" height="36"></td>
      </tr>
      <tr height="120">
        <td width="10" height="120"></td>
        <td height="120" valign="top" class="brodtekst">
          <p>Message:<br>
              <textarea class="body" name="besked" rows="8" cols="66" tabindex="1" ></textarea>
              <br>
              <br>
              <input class="class" type=submit name="Input" value="Send">
              <?PHP
    if ($navn != "" && $telefon != "" && $email != "" && $besked != "") {
        $recipient = "dennis@sorthvid.com";
        $subject = "$navn";
        $message .= "$besked\n\n\n\n";
        $message .= "Med venlig hilsen:\n\n";
        $message .= "$navn\n";
        $message .= "Tlf: $telefon\n";
        $message .= "Email: $email\n";
        $headers .= "Email fra sorthvid formmail";
   
        mail($recipient, $subject, $message, $headers);
        print "Beskeden er sendt!";
    } elseif ($firsttime=="true") {
        print "Du mangler at udfylde";
    }
        $firsttime="true";
    ?>
        </p></td>
        <td width="10" height="120"></td>
      </tr>
    </table>
    <table border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td>
          <p></p></td>
      </tr>
    </table>
  </form>
</div>
</body>
</html>
Avatar billede rhandersen Nybegynder
10. november 2004 - 15:25 #7
Du har da også lavet det på den mest besværlige måde:D
Avatar billede sjat Nybegynder
10. november 2004 - 15:29 #8
Hvad ved jeg! Jeg er blond! :-D
Hmmm... det var ærgeligt! Har du (eller andre) et forslag til hvad der kunne gøres bedre?

/Louise
Avatar billede rhandersen Nybegynder
10. november 2004 - 15:33 #9
Prøv egentlig bare at sige sådan:
} elseif($navn == "" || $telefon == "" || $email == "") {
        print "Du mangler at udfylde et eller flere felter";
    }
Avatar billede rhandersen Nybegynder
10. november 2004 - 15:34 #10
nu gætter jeg men prøv alligevel
Avatar billede sjat Nybegynder
10. november 2004 - 15:36 #11
Det har jeg prøvet. Det virker ikke.
Den vil med det script starte med at sige: "Du mangler at udfylde et eller flere felter" før man har udfyldt nogen felter.

/Louise
Avatar billede Slettet bruger
10. november 2004 - 15:51 #12
Jeg har løsningen, men skal lige finde den
Avatar billede sjat Nybegynder
10. november 2004 - 15:52 #13
SUPER!
...venter i spænding! :-)
Avatar billede rhandersen Nybegynder
10. november 2004 - 16:12 #14
hmm jeg har måske også en løsning:D
Avatar billede Slettet bruger
10. november 2004 - 16:19 #15
Det ligner ikke helt dit, men du får hele mit layout så kan du selv rette det til, og evt. plukke og tilrette javascript.

Håber du kan bruge noget af det ?

............................
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
  <head>
      <title>tilmeld</title>

<meta name="Generator" content="Stone's WebWriter 4">
<script language="javascript" type="text/javascript">
function checkform(f){
    fail = false;
    message = "";
    s = document.getElementById('failures');
    s.style.visibility="hidden";

    if(!document.getElementById('tjekok').checked){
        fail = true;
        message += "Du skal acceptere aftalen !-)<br>"
        document.getElementById('tjekok').focus();
    }
    if(f.fnavn.value==""){
        if(!fail)f.fnavn.focus();
        fail=true;
        message += "Du har ikke angivet fornavn.<br>"
    }
    if(f.enavn.value==""){
        if(!fail)f.enavn.focus();
        fail=true;
        message += "Du har ikke angivet efternavn.<br>"
    }
    if(f.adr.value==""){
        if(!fail)f.adr.focus();
        fail=true;
        message += "Du har ikke angivet adresse.<br>"
    }
    if(f.pnr.value==""){
        if(!fail)f.pnr.focus();
        fail=true;
        message += "Du har ikke angivet postnummer.<br>"
    }
    if(f.by.value==""){
        if(!fail)f.by.focus();
        fail=true;
        message += "Du har ikke angivet by.<br>"
    }
    if(f.tlf.value==""){
        if(!fail)f.tlf.focus();
        fail=true;
        message += "Du har ikke angivet telefonnummer.<br>"
    }
    if(fail){
        s = document.getElementById('failures');
        s.style.visibility="visible";
        s.innerHTML=message;
        alert('Der er registreret fejl');
        return false;
    }
}
</script>
</head>
  <body bgcolor="#C0C0C0" text="#000000" link="#0000FF" vlink="#660066" alink="#FF0000">
      <h4><a name="top">R</a>egistreringsform<p>
            Jeg tilmelder nedenstående min have som besøgshave,<br> er myndig og bekræfter at have læst <a href="regler.htm">regler og privatpolitik</a><br> for visithaven og accepterer disse<p>
           
      <input type="checkbox" name="tjekok" id="tjekok"> Acceptér</h4>
      <span id="failures" style="visibility:hidden;color:red;font-weight:bold;"></span>
      <hr width="90%" style="border:dotted;">
     
<form action="mailto:visithaven@mail.dk" method="post" onsubmit="return checkform(this);">         
        <h2>Bruger Information</h2>
        <table>
        <tr><td>
    Fornavn:*</td><td><input type="text" size="30" maxlength="30" name="fnavn"></td></tr>
        <tr><td>
  Efternavn:*</td><td><input type="text" size="30" maxlength="30" name="enavn"></td></tr>
        <tr><td>
    Adresse:*</td><td><input type="text" size="30" maxlength="30" name="adr"></td></tr>
        <tr><td>
    Postnr :*</td><td><input type="text" size="30" maxlength="4" name="pnr"></td></tr>
        <tr><td>
        By:*</td><td><input type="text" size="30" maxlength="30" name="by"></td></tr>
        <tr><td>
    Telefon:*</td><td><input type="text" size="30" maxlength="8" name="tlf"></td></tr>
        <tr><td>
    E-mail:</td><td><input type="text" size="30" maxlength="40" name="mail"></td></tr>
        <tr><td>
    www/URL:</td><td><input type="text" size="30" maxlength="40" name="URL"></td></tr>
        </table>
      <hr width="90%" style="border:dotted;">
        <h2><font face="Verdana, Arial, Helvetica" size="2">Tilhørsforhold</font></h2>
        <p>
            <font face="Verdana, Arial, Helvetica" size="2">Vælg den landsdel du vil optages under:</font>
        </p>
        <dl>
            <dd>
            <font face="Verdana, Arial, Helvetica" size="2">
                 
            <select name="menu">
            <option value="0" selected> Vælg landsdel (amt) her !
            <option value="nordjylland">Nordjylland</option>
            <option value="viborg">Viborg</option>
            <option value="ringkobing">Ringkøbing</option>
            <option value="aarhus ">Århus</option>
            <option value="vejle">Vejle</option>
            <option value="ribe">Ribe</option>
            <option value="sonderjylland">Sønderjylland</option>
            <option value="fyn">Fyn</option>
            <option value="vestsjaland">Vestsjælland</option>
            <option value="frederiksborg">Frederiksborg</option>
            <option value="roskilde">Roskilde</option>
            <option value="storstrom">Storstrøm</option>
            <option value="københavn">København</option>
            <option value="bornholm">Bornholm</option>
            </select></font>
            </dd>
        </dl>
        <p>         
      <hr width="90%" style="border:dotted;">
        <textarea name=Kommentar cols=60 rows=12 wrap=Virtual>Din beskrivelse af din have:
</textarea>
<br><p>
        <font face="Verdana"><input type="submit" value="Indsend formular"> <input type="reset" value="Nulstil felter"></font>
        </p>
      </form>
  </body>
</html>
Avatar billede soccerdad Nybegynder
10. november 2004 - 16:36 #16
For lige at vende tilbage til udgangspunktet, så mener jeg at fejlen ligger i din initialisering af $firsttime. Hver gang du kalder dokumentet, bliver $firsttime skabt på ny, så den når aldrig at få værdien true før du tester.
Avatar billede johnstigers Seniormester
18. juni 2006 - 10:29 #17
Lukketid
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