Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

PHP: Return falsem - lignende funktion ?

0 views
Skip to first unread message

Martin Ploug

unread,
Dec 15, 2009, 4:49:54 PM12/15/09
to
Hej

Er der i PHP en funktion mage til
JavaScrpts return false ?

Jeg er ved at lave en kontaktformular,
hvor action er
"<?php echo $_SERVER["PHP_SELF"]; ?>"> .

I formularen har jeg et antispam-tjekfelt,
hvor brugeren skal indtaste noget bestemt
for at formularindholdet bliver afsendt.
Indholdet tjekkes med PHP, og hvis det ind-
tastede ikke er korrekt ryddes alt indhold,
og indeholdet sendes ikke.

Kan jeg g�re noget for at undg� at hele for-
mularen bliver ryddet ved forkert indtastning
- formularen skal til geng�ld ryddes (som
normalt) hvis alle felter er udfyldt korrekt,
og der er klikket p� submit ?

Skal man der over i noget med session, eller
hvad g�r man der?
Alt sker i samme fil (bortset fra JavaScript
og CSS, der bliver hentet ind linket til eksternt).

P� forh�nd tak.

Mvh. Martin

Bertel Lund Hansen

unread,
Dec 16, 2009, 6:21:04 AM12/16/09
to
Martin Ploug skrev:

> Er der i PHP en funktion mage til
> JavaScrpts return false ?

Ja da. Det kan laves p� flere m�der afh�ngigt af hvad du har brug for:

return false;
return 0;
return '';
return NULL;

eller bare

return;

hvis du i virkeligheden slet ikke har brug for en returv�rdi.

> I formularen har jeg et antispam-tjekfelt,
> hvor brugeren skal indtaste noget bestemt
> for at formularindholdet bliver afsendt.
> Indholdet tjekkes med PHP, og hvis det ind-
> tastede ikke er korrekt ryddes alt indhold,
> og indeholdet sendes ikke.

> Kan jeg g�re noget for at undg� at hele for-
> mularen bliver ryddet ved forkert indtastning

Ja. Lad v�re med at rydde den, eller ryd kun udvalgte felter hvis det er det der �nskes. Jeg forst�r ikke problemet.

> - formularen skal til geng�ld ryddes (som
> normalt) hvis alle felter er udfyldt korrekt,
> og der er klikket p� submit ?

Det vil jeg frar�de. Jeg synes at det mest brugervenlige er at
lade indholdet st�. Ellers tror man at man er kommet til at
trykke slet eller p� anden m�de v�lge en slettefunktion.

> Skal man der over i noget med session, eller
> hvad g�r man der?

Bruger du ikke allerede session? Det er du da n�dt til hvis du
laver en formular der kalder sig selv, og det skal v�re brugervenlig.
Men det er m�ske det der er problemet?

En formular uden session bliver totalt t�mt n�r man genhenter siden.

N�r jeg laver en formular med selvhenter (!), s� er principopskriften denne

if (isset($_POST['send']) {
$_SESSION['navn]=$_POST['navn'];
}

// l�ngere nede inde i formularen (og inde i en PHP-echo-kommando):

<input type='text' size='40' name='navn' value='$_SESSION['navn]'>

Hvis den ikke st�r inden i en echo-stribe, m� man skrive:

<input type='text' size='40' name='navn' value='<?php echo $_SESSION['navn]; ?>'>

Den opskrift sikrer at det som brugeren har skrevet i feltet, bliver st�ende
lige til han �ndrer det eller lukker sin browser. Det �ndres ikke ved en
genhentning af siden.

--
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/

Jonathan Stein

unread,
Dec 17, 2009, 8:26:36 AM12/17/09
to
Martin Ploug skrev:

> Kan jeg g�re noget for at undg� at hele for-
> mularen bliver ryddet ved forkert indtastning
> - formularen skal til geng�ld ryddes (som
> normalt) hvis alle felter er udfyldt korrekt,
> og der er klikket p� submit ?

Den almindelige brugervenlige metode, n�r man p� serveren opdager, at
klienten har udfyldt noget forkert, er at udfylde felterne igen med det,
som brugeren har sendt.

F.eks. med et tekstfelt:

<input type="text" name="navn" value="<?php echo isset($_POST['navn']) ?
htmlspecialchars($_POST['navn']) : '' ?>" />

- evt. kan man ogs� fremh�ve feltet med en farve og/eller skrive en
advarsel.

M.v.h.

Jonathan

--
Er din email vigtig? Er du tr�t af, at din hjemmeside er nede?
Stabilt webhotel p� redundant setup med daglig backup.
POP3, IMAP, PHP, JSP, Java, Perl, Python, Telnet, SSH, Cron-jobs m.v.
http://www.jsp-hotel.dk/

Martin Ploug

unread,
Dec 17, 2009, 3:16:25 PM12/17/09
to
Hej begge

Mange tak for jeres kommentarer, l�sningsforslag
og henvisninger. Jeg m� have kigget grundigt p�
det I har skrevet, og efterf�lgende have rettet
min formluar.

Mvh. Martin

Jonathan Stein skrev:

0 new messages