Avatar billede zorg_86 Nybegynder
01. april 2003 - 14:22 Der er 6 kommentarer og
1 løsning

Har problemer med en if/else sætning..

Hej

Fejlen er at selv om man har skrevet i alle 3 felter så skriver den "Du skal udfylde alle felterne" hvor den skulle skriv "Din mail er sendt"

Er der ikke en der kan rette denne lille fejl?

Kode:

<?php
if($action == "send") {
    if (($_POST[navn] == False) || ($_POST[besked] == False) or ($_POST[modtager] == False))  { echo 'Du skal udfylde alle felterne';
} else {
    $msg = 'Hej Med Dig';
    $recipient = $modtager;
    $subject = 'Hej';
   
    mail($recipient, $subject, $msg);
    echo 'Din mail er sendt';   
}} else {
?>

<form method="post" action="<?=$PHP_SELF ?>" onsubmit="return checkfields()">
<input type="hidden" name="action" value="send">
<p align="center">Dit Navn<br>
<input type="text" name="navn" size="20"><br>
Din Email:<br>
<input type="text" name="mail" size="20"><br>
Send til:<br>
<input type="text" name="modtager" size="20"><br>
<input type="submit" value="Send" name="send"></p>
</form>
<?php 
}
?>
Avatar billede xyborx Nybegynder
01. april 2003 - 14:39 #1
Prøv med
if($_POST[action] == "send") {
Avatar billede xyborx Nybegynder
01. april 2003 - 14:41 #2
Og dog.. Der skal lige laves lidt mere.. brb.. ;)
Avatar billede xyborx Nybegynder
01. april 2003 - 14:50 #3
Sådan.. Nu burde den virke.. Nu er den [register_globals=off]- og [short_open_tag=off]-sikret, lavede lidt flere checks på bruger-input, lavede lidt små optimeringer rundt omkring.. Værsgo ;)
----
<?php
if($_POST['action'] == 'send')
{
    if
    (
        !isset($_POST['navn']) || !isset($_POST['besked']) || !isset($_POST['modtager'])
        ||
        !strlen($_POST['navn']) || !strlen($_POST['besked']) || !strlen($_POST['modtager'])
    )
    {
        echo 'Du skal udfylde alle felterne';
    }
    else
    {
        $msg = 'Hej Med Dig';
        $recipient = $_POST['modtager'];
        $subject = 'Hej';

        mail($recipient, $subject, $msg);
        echo 'Din mail er sendt';
    }
}
else
{
?>

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" onsubmit="return checkfields()">
<input type="hidden" name="action" value="send">
<p align="center">Dit Navn<br>
<input type="text" name="navn" size="20"><br>
Din Email:<br>
<input type="text" name="mail" size="20"><br>
Send til:<br>
<input type="text" name="modtager" size="20"><br>
<input type="submit" value="Send" name="send"></p>
</form>
<?php
}
?>
Avatar billede zorg_86 Nybegynder
01. april 2003 - 14:53 #4
Hmm dur ikke skriver det samme som før, selv om man har udfyldt alle felterne så skriver den "Du skal udfylde alle felterne"
Avatar billede xyborx Nybegynder
01. april 2003 - 14:57 #5
Ah.. Du mangler at lave et besked-felt:
<input type="text" name="besked" size="20">
..eller..
<textarea name="besked"></textarea>
Avatar billede zorg_86 Nybegynder
01. april 2003 - 14:58 #6
Har fået den til at virke tak..
Avatar billede xyborx Nybegynder
01. april 2003 - 14:59 #7
Og så skal
  $msg = 'Hej Med Dig';
sandsynligvis rettes til
  $msg = $_POST['besked'];
for at den angivne besked bliver sendt.
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