|
| Betingelse den ene eller den anden? Fra : Martin Ploug |
Dato : 22-05-05 11:14 |
|
Hej
Jeg sidder og arbejder med en formular, hvor jeg vil
have, at der skal komme fejlmeddelelser hvis nedenstående
betingelser ikke er opfyldt.
Der skal være indtastet et navn og enten et telefonnummer ELLER
et mobilnr. Dvs. betingelserne er opfyldt, hvis der er indtasatet et navn og
et
telefonnummer ELLER et navn og et mobilnr.
Jeg har indtil videre skrevet sådan:
if (!$navn)
{
echo "<table border='0' align='center'><tr><td>";
echo "<span class='brodtekst'>Indtast venligst dit navn.</span><br><a
href='#'>Tilbage</a></td></tr></table>";
exit;
}
if (!$telefon) // Her har jeg forsøgt at skrive if (!$telefon ||
!$mobil) men så kommer der fejl, hvis en af dem står tom, er det fordi jeg
skal skrive en anden operator?
{
echo "<table border='0' align='center'><tr><td>";
echo "<span class='brodtekst'>Indtast venligst telefonnumer.</span><br><a
href='#'>Tilbage</a></td></tr></table>";
exit;
}
På forhånd tak.
Med venlig hilsen
Martin
| |
Jacob Atzen (22-05-2005)
| Kommentar Fra : Jacob Atzen |
Dato : 22-05-05 12:42 |
|
On 2005-05-22, Martin Ploug <mploug@mail.tele.dk> wrote:
> Der skal være indtastet et navn og enten et telefonnummer ELLER et
> mobilnr. Dvs. betingelserne er opfyldt, hvis der er indtasatet et navn
> og et telefonnummer ELLER et navn og et mobilnr.
Det du søger kan findes på:
< http://dk.php.net/manual/en/language.operators.logical.php>
--
Med venlig hilsen
- Jacob Atzen
| |
Martin Ploug (22-05-2005)
| Kommentar Fra : Martin Ploug |
Dato : 22-05-05 13:50 |
|
> Det du søger kan findes på:
> < http://dk.php.net/manual/en/language.operators.logical.php>
Hej Jacob
Tak for det.
Nu tror jeg, at jeg fik det til at virke.
Det skal vist være && i stedet for ||
Nu ser det sådan ud:
if (!$navn)
{
echo "<table border='0' align='center'><tr><td>";
echo "<span class='brodtekst'>Indtast venligst dit navn.</span><br><a
class='underlink' href='#'>Tilbage</a></td></tr></table>";
exit;
}
if (!$telefon && !$mobil) // && i stedet for || og det er måske logisk nok,
når man tænker over det.
{
echo "<table border='0' align='center'><tr><td>";
echo "<span class='brodtekst'>Indtast venligst telefonnummer eller
mobilnr.</span><br><a class='underlink'
href='#'>Tilbage</a></td></tr></table>";
exit;
}
Hilsen Martin
| |
Thomas Lindgaard (22-05-2005)
| Kommentar Fra : Thomas Lindgaard |
Dato : 22-05-05 22:43 |
|
On Sun, 22 May 2005 14:50:29 +0200, Martin Ploug wrote:
> if (!$telefon && !$mobil)
Er det rigtigt?
Hvis du vil have ENTEN navn + telefonnummer ELLER navn + mobil, dvs. ikke
navn + telefonnummer + mobil, så sikrer ovenstående betingelse dig da
ikke mod, at brugeren udfylder både telefon og mobil...
Så vidt jeg kan se, skal du have fat i xor (exclusive or) - den sikrer
dig, at den ene MEN IKKE BEGGE er sande. Altså:
if ( $telefon xor $mobil )
{
// Enten er $telefon sand eller $mobil sand men ikke begge
}
Dvs. det du nok er interesseret i er nok det modsatte:
if ( !($telefon xor $mobil) )
{
// Fortæl brugeren at han skal udfylde een og kun een
// da han enten har udfyldt ingen eller begge
}
Håber at ovenstående er rigtigt :)
--
Mvh.
/Thomas (der vist skal til at bruge xor fremover - det er da smart)
PS.
Man kan forresten også skrive
if ( $telefon xor !$mobil )
og
if ( !$telefon xor $mobil )
Det giver samme resultater - der er nok en, der lige kan hoste op med de
korrekte regler for omskrivning af logikken.
| |
Martin Ploug (27-05-2005)
| Kommentar Fra : Martin Ploug |
Dato : 27-05-05 18:33 |
|
> if (!$telefon && !$mobil)
>Er det rigtigt?
>Hvis du vil have ENTEN navn + telefonnummer ELLER navn + mobil, dvs. ikke
>navn + telefonnummer + mobil, så sikrer ovenstående betingelse dig da
>ikke mod, at brugeren udfylder både telefon og mobil...
Ja, jeg har skrevet if (!$navn) før if (!$telefon && !$mobil) og det ser ud
til at virke
fint. Men tak for dit indlæg.
- Martin
| |
Thomas Lindgaard (30-05-2005)
| Kommentar Fra : Thomas Lindgaard |
Dato : 30-05-05 20:48 |
|
On Fri, 27 May 2005 19:33:09 +0200, Martin Ploug wrote:
> Ja, jeg har skrevet if (!$navn) før if (!$telefon && !$mobil) og det ser ud
> til at virke
> fint. Men tak for dit indlæg.
Hum... i min bog har du ikke sikret dig imod, at du får BÅDE mobil OG
telefon.
Du har med første if-sætning sikret dig, at du i hvert fald får et
navn, men din anden if-sætning sikrer dig _ikke_ mod, at brugeren
udfylder begge numre... den sikrer kun at begge ikke er tomme!
--
Mvh.
/Thomas
| |
|
|