Avatar billede amazon Nybegynder
29. september 2006 - 15:25 Der er 28 kommentarer og
1 løsning

hjælp søges til at finde en formularfejl

Jeg har, ved hjælp af koder fundet her på eksperten, fået lavet denne formular, men den del med at få vist at der er fejl i formularen virker ikke... Nu er jeg endnu ikke ret god til php og indtil videre må jeg forlade mig på at rette scripts til. Er der nogen, der kan spotte mit problem?

----------
<?php

    if($_POST[navn] && $_POST[adresse] && $_POST[postnr] && $_POST[postby] && $_POST[besked]) {
    $msg = "Mail fra:\t$_POST[navn]\r\n";
    $msg .= "Adresse:\t$_POST[adresse]\r\n";
    $msg .= "Postnr.:\t$_POST[postnr]\r\n";
    $msg .= "By:\t$_POST[postby]\r\n";
    $msg .= "E-Mail:\t$_POST[email]\r\n";
    $msg .= "telefon:\t$_POST[telefon]\r\n";
    $msg .= "Bruger har valgt:\t$_POST[r1]\r\n\r\n";
    $msg .= "besked:\t$_POST[besked]\r\n\r\n";
 

    $minemail = "MIN@EMAIL.dk";
    $emne = "Formmail-test";

    $mailheaders = "From: Formmail <> \r\n";
    $mailheaders .= "Reply-To: $_POST[email]\r\n";
    $mailheaders .= "Content-Type: text/plain; charset=utf-8 \r\n";
    $mailheaders .= "\r\n";
   
    mail($minemail, $emne, $msg, $mailheaders);

print "<center>Mailen er sendt til $minemail</center>";
} elseif ($send) {

print "Du skal huske at udfylde felterne Navn, Adresse, Postnr. og By";
}
?>



           
            <form method="post" action="<?php $php_self;?>">
    <div align="left">
        <span class="beskriv">Navn</span><input type="text" name="navn" /><br>
        <span class="beskriv">Adresse</span><input type="text" name="adresse" /><br>
        <span class="beskriv">Postnr.</span><input style="width:40px;" type="text" name="postnr" />
        &nbsp;&nbsp;By&nbsp;<input style="width:111px;" type="text" name="postby" /><br>
        <span class="beskriv">E-mail</span><input type="text" name="email" /><br>
        <span class="beskriv">Telefon</span><input type="text" name="telefon" /><br>
        &nbsp;<br>
       
        Jeg ønsker flg. abbonements-periode:<br>
        <span class="beskriv">Kvartals</span>
        <input style="width:auto;border:0px;background-color:#fff;" type="radio" name="r1" value="kvartal" checked><br>
        <span class="beskriv">Halvårligt</span>
        <input style="width:auto;border:0px;background-color:#fff;" type="radio" name="r1" value="halvår"><br>
        <span class="beskriv">Helt år</span>
        <input style="width:auto;border:0px;background-color:#fff;" type="radio" name="r1" value="helår"><br>
        &nbsp;<br>
        <span class="beskriv">Besked</span><textarea name="besked" rows="6" cols="30"></textarea>
        <p align="right"><input type="hidden" name="hiddenName" value="hiddenValue" />
        <button name="Reset" value="Nulstil" type="reset">Nulstil</button>&nbsp;&nbsp;&nbsp;<button name="s1" value="Send" type="submit">Send</button></p>
    </div>
</form>
Avatar billede jaw Nybegynder
29. september 2006 - 15:33 #1
Hvad sker der/sker der ikke? Nogen fejlmeddelelser?
Avatar billede amazon Nybegynder
29. september 2006 - 15:40 #2
Nej, den skriver bare ikke "Du skal huske at udfylde felterne Navn, Adresse, Postnr. og By"

Når jeg har sendt en rigtig formular skriver den ganske rigtigt "Mailen er sendt til MIN@EMAIL.dk"
Avatar billede amazon Nybegynder
29. september 2006 - 15:41 #3
Og den rydder de felter, der er udfyldt.
Avatar billede jaw Nybegynder
29. september 2006 - 15:44 #4
} elseif ($send) { <- hvor kommer $send fra?

Prøv at ændre den til:
} else {
Avatar billede amazon Nybegynder
29. september 2006 - 16:02 #5
Ja, nu er den der ... Så godt og vel!
- Den står der når jeg åbner min side med formularen. Og erstattes så af "Mailen er sendt osv." når en rigtig er sendt.
Avatar billede jaw Nybegynder
29. september 2006 - 16:06 #6
Så skal det nok være:

} elseif(isset($_POST['s1'])) {
Avatar billede amazon Nybegynder
29. september 2006 - 16:08 #7
Jeg har bl.a. brugt noget fra denne http://www.eksperten.dk/spm/236379
Avatar billede amazon Nybegynder
29. september 2006 - 16:10 #8
Ja, nu viser den den ønskede linje, men det er jo ikke særlig hensigtsmæssigt, at den rydder alt man har skrevet, så man skal starte forfra. Kan man ikke undgå det?
Avatar billede jaw Nybegynder
29. september 2006 - 17:39 #9
Kan det jo godt, så skal du bare have value='".$_POST['feltnavn']."' på dine inputfelter.
Avatar billede amazon Nybegynder
30. september 2006 - 17:38 #10
Det virker ikke, når jeg gør sådan her:
        <span class="beskriv">Navn</span><input type="text" name="navn" value="<?php .$_POST['feltnavn'].?>" /><br>

- Men det er måske også forkert placeret?
Avatar billede amazon Nybegynder
30. september 2006 - 17:43 #11
... og heller ikke når jeg gør sådan her:
<span class="beskriv">Navn</span><input type="text" name="navn" value="<?php .$_POST[navn].?>" /><br>
Avatar billede jaw Nybegynder
30. september 2006 - 17:57 #12
prøv: <?PHP echo $_POST['navn']; ?>
Avatar billede amazon Nybegynder
30. september 2006 - 20:59 #13
jo, det virker. Men er der ikke nogen nemmere måde at sige "lad være med at nulstille" for jeg har 10-15 formularer med en del inputs så det...
Avatar billede amazon Nybegynder
30. september 2006 - 21:01 #14
og mine radioknapper har jo en value i forvejen.
Avatar billede jaw Nybegynder
30. september 2006 - 21:08 #15
Nej, der er ikke "nulstil-ikke"-kommando. Der er flere måder at gøre det, hvor det her er én af dem, men de er alle lige bøvlede om man vil.

Dine radiobuttons value skal du ikke pille ved. Der skal du kun afgøre om de skal være "selected" eller ej.
Avatar billede amazon Nybegynder
30. september 2006 - 21:26 #16
hmmm. Så må jeg jo igang!
- Og jeg siger ihvertfald mange tak for hjælpen!
Læg et svar så skal du få dine points lige med det samme :-)
Avatar billede jaw Nybegynder
30. september 2006 - 21:32 #17
Selv mange tak :)

- er der noget, spørger du bare...
Avatar billede jaw Nybegynder
30. september 2006 - 21:32 #18
Hov, og en kommentar?!
Avatar billede amazon Nybegynder
30. september 2006 - 21:37 #19
Ja, der var faktisk en ting mere, nu jeg har dig! - Jeg skal i et par stykker af dem have mulighed for at de kan vedhæfte en fil. Det ser sådan her ud:

<span class="beskriv">Vedhæft fil</span><input type="file" name="vedhæftet" /><br>

Men hvad gør jeg i php-afdelingen?
Avatar billede amazon Nybegynder
30. september 2006 - 21:44 #20
hov, en ting mere: Det ser ikke helt rigtigt ud, når jeg forsøger at lave value til et textarea?
Avatar billede jaw Nybegynder
30. september 2006 - 21:56 #21
1. Textarea har ikke value, men skal klares med:
  <textarea name='noget'>værdi her</textarea>

2. Jeg tror ikke, at du kan få udfyldt en fil-formular (type='file'). I fald af at det kan lade sig gøre, ved jeg desværre ikke lige umiddelbart hvordan.
Avatar billede amazon Nybegynder
01. oktober 2006 - 00:21 #22
Jeg vil heller ikke have udfyldt noget i filformularen, jeg vidste bare ikke, at det ikke skulle omtales i php-delen at der også var en vedhæftet fil.

Nu ser det hele ud til at virke, dog ville jeg gerne have slettet indholdet i felterne eller helt have skjult min <form> så der kun står "Mailen er sendt til minemail"
Avatar billede jaw Nybegynder
01. oktober 2006 - 01:31 #23
Så vil det nemmeste løsning nok være, at lave en variabel der beskriver om din mail er sendt:

mail(...)
$sendt = 1;
print(...);


og så laver du:
<?PHP
if(!isset($sendt)) {
?>
-- alle dine forms her
<?PHP
}
?>
Avatar billede amazon Nybegynder
01. oktober 2006 - 01:50 #24
ÅÅÅh jeg er ved at være helt skeløjet af at kikke på det her! - hvor siger du det skal sættes ind og hvad symboliserer (...)
Avatar billede jaw Nybegynder
01. oktober 2006 - 03:05 #25
... symboliserer bare, det kode du har i dine paranteser. Jeg har kun tilføjet en lille smule, og det med f.eks. mail(...) er bare at jeg vil indsætte noget efter din mail()-funktion. Det var for ikke at skulle copy/paste det hele igen...
Avatar billede amazon Nybegynder
09. oktober 2006 - 13:13 #26
Nå, nu har jeg været lidt væk fra tingene (på ferie med familien Aaaaah) og nu er jeg klar med friske øjne!

Jeg har forsøgt at gøre som du beskriver, men nu vises intet ...

-------------------------------

    mail($minemail, $emne, $msg, $mailheaders);
$sendt = 1;
print "<center>Mailen er sendt til $minemail</center>";



<?PHP
if(!isset($sendt)) {
?>

<form method="post" action="<?php $php_self;?>">
...........................................
.                                        .
.      Hele min formular står her        .
.                                        .
...........................................
</form>

<?PHP
}

} elseif(isset($_POST['s1'])) {
print "Felter mærket med * skal udfyldes";
}

?>

Hvad mon jeg gør galt?
Avatar billede jaw Nybegynder
09. oktober 2006 - 14:24 #27
Umm, kan du ikke lige paste hele din kode som den er nu? Må ærligt indrømme, at jeg ikke helt kan huske hovede og hale i den her tråd.

Men velkommen hjem fra ferie da :)
Avatar billede amazon Nybegynder
09. oktober 2006 - 15:09 #28
Tak! og nej, det er også ved at være lidt broget! Og igen en gang: Tak for din gode tålmodighed!

Men det her er den der virker, og så ved jeg ikke helt hvordan jeg skal sætte "01/10-2006 01:31:27" ind...




<div id="formular">
<?php

    if($_POST[navn] && $_POST[adresse] && $_POST[postnr] && $_POST[postby]) {
    $msg = "Mail fra:\t$_POST[navn]\r\n";
    $msg .= "Adresse:\t$_POST[adresse]\r\n";
    $msg .= "Postnr.:\t$_POST[postnr]\r\n";
    $msg .= "By:\t$_POST[postby]\r\n";
    $msg .= "E-Mail:\t$_POST[email]\r\n";
    $msg .= "telefon:\t$_POST[telefon]\r\n";
    $msg .= "Bruger har valgt:\t$_POST[r1]\r\n\r\n";
    $msg .= "besked:\t$_POST[besked]\r\n\r\n";
 

    $minemail = "MIN@MAIL.dk";
    $emne = "fra MINSIDE.dk - abbonementsbestilling";

    $mailheaders = "From: Formmail <> \r\n";
    $mailheaders .= "Reply-To: $_POST[email]\r\n";
    $mailheaders .= "Content-Type: text/plain; charset=utf-8 \r\n";
    $mailheaders .= "\r\n";
   
    mail($minemail, $emne, $msg, $mailheaders);

print "<center>Mailen er sendt til $minemail</center>";

} elseif(isset($_POST['s1'])) {

print "Felter mærket med * skal udfyldes";
}
?>



           
            <form method="post" action="<?php $php_self;?>">
    <div align="left">
        <span class="beskriv">Navn *</span><input type="text" name="navn" value="<?PHP echo $_POST['navn']; ?>" /><br>
        <span class="beskriv">Adresse *</span><input type="text" name="adresse" value="<?PHP echo $_POST['adresse']; ?>" /><br>
        <span class="beskriv">Postnr. *</span><input style="width:40px;" type="text" name="postnr" value="<?PHP echo $_POST['postnr']; ?>" />
        &nbsp;&nbsp;By&nbsp;<input style="width: 99px !important; width:141px;" type="text" name="postby" value="<?PHP echo $_POST['postby']; ?>" /><br>
        <span class="beskriv">E-mail</span><input type="text" name="email" value="<?PHP echo $_POST['email']; ?>" /><br>
        <span class="beskriv">Telefon</span><input type="text" name="telefon" value="<?PHP echo $_POST['telefon']; ?>" /><br>
        &nbsp;<br>
       
        Jeg ønsker flg. abbonements-periode:<br>
        <span class="beskriv">Kvartals</span>
        <input class="choise" type="radio" name="r1" value="kvartal" checked><br>
        <span class="beskriv">Halvårligt</span>
        <input class="choise" type="radio" name="r1" value="halvår"><br>
        <span class="beskriv">Helt år</span>
        <input class="choise" type="radio" name="r1" value="helår"><br>
        &nbsp;<br>
       
        <span class="beskriv">Evt. besked</span><textarea name="besked" rows="6" cols="30"><?PHP echo $_POST['besked']; ?></textarea>
        <p align="right"><input type="hidden" name="hiddenName" value="hiddenValue" />
        <p>&nbsp;</p>
        <button name="Reset" value="Nulstil" type="reset">Nulstil</button>&nbsp;&nbsp;&nbsp;
        <button name="s1" value="Send" type="submit">Send</button></p>
        <p>&nbsp;</p>
        <p align="left">OBS: Felter mærket med * skal udfyldes</p>
    </div>
</form>
</div>
Avatar billede jaw Nybegynder
09. oktober 2006 - 17:37 #29
Prøvet sådan her:

<div id="formular">
<?php

    if($_POST[navn] && $_POST[adresse] && $_POST[postnr] && $_POST[postby]) {
    $msg = "Mail fra:\t$_POST[navn]\r\n";
    $msg .= "Adresse:\t$_POST[adresse]\r\n";
    $msg .= "Postnr.:\t$_POST[postnr]\r\n";
    $msg .= "By:\t$_POST[postby]\r\n";
    $msg .= "E-Mail:\t$_POST[email]\r\n";
    $msg .= "telefon:\t$_POST[telefon]\r\n";
    $msg .= "Bruger har valgt:\t$_POST[r1]\r\n\r\n";
    $msg .= "besked:\t$_POST[besked]\r\n\r\n";
 

    $minemail = "MIN@MAIL.dk";
    $emne = "fra MINSIDE.dk - abbonementsbestilling";

    $mailheaders = "From: Formmail <> \r\n";
    $mailheaders .= "Reply-To: $_POST[email]\r\n";
    $mailheaders .= "Content-Type: text/plain; charset=utf-8 \r\n";
    $mailheaders .= "\r\n";
   
    //mail($minemail, $emne, $msg, $mailheaders);
        $sendt = 1;
print "<center>Mailen er sendt til $minemail</center>";

} elseif(isset($_POST['s1'])) {

print "Felter mærket med * skal udfyldes";
}
?>



<?PHP
if(!isset($sendt)) {
?>           
            <form method="post" action="<?php $php_self;?>">
    <div align="left">
        <span class="beskriv">Navn *</span><input type="text" name="navn" value="<?PHP echo $_POST['navn']; ?>" /><br>
        <span class="beskriv">Adresse *</span><input type="text" name="adresse" value="<?PHP echo $_POST['adresse']; ?>" /><br>
        <span class="beskriv">Postnr. *</span><input style="width:40px;" type="text" name="postnr" value="<?PHP echo $_POST['postnr']; ?>" />
        &nbsp;&nbsp;By&nbsp;<input style="width: 99px !important; width:141px;" type="text" name="postby" value="<?PHP echo $_POST['postby']; ?>" /><br>
        <span class="beskriv">E-mail</span><input type="text" name="email" value="<?PHP echo $_POST['email']; ?>" /><br>
        <span class="beskriv">Telefon</span><input type="text" name="telefon" value="<?PHP echo $_POST['telefon']; ?>" /><br>
        &nbsp;<br>
       
        Jeg ønsker flg. abbonements-periode:<br>
        <span class="beskriv">Kvartals</span>
        <input class="choise" type="radio" name="r1" value="kvartal" checked><br>
        <span class="beskriv">Halvårligt</span>
        <input class="choise" type="radio" name="r1" value="halvår"><br>
        <span class="beskriv">Helt år</span>
        <input class="choise" type="radio" name="r1" value="helår"><br>
        &nbsp;<br>
       
        <span class="beskriv">Evt. besked</span><textarea name="besked" rows="6" cols="30"><?PHP echo $_POST['besked']; ?></textarea>
        <p align="right"><input type="hidden" name="hiddenName" value="hiddenValue" />
        <p>&nbsp;</p>
        <button name="Reset" value="Nulstil" type="reset">Nulstil</button>&nbsp;&nbsp;&nbsp;
        <button name="s1" value="Send" type="submit">Send</button></p>
        <p>&nbsp;</p>
        <p align="left">OBS: Felter mærket med * skal udfyldes</p>
    </div>
</form>
<?PHP
}
?>
</div>

?
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