/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
PHP: Return falsem - lignende funktion ?
Fra : Martin Ploug


Dato : 15-12-09 22:50

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 (16-12-2009)
Kommentar
Fra : Bertel Lund Hansen


Dato : 16-12-09 12:21

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 (17-12-2009)
Kommentar
Fra : Jonathan Stein


Dato : 17-12-09 14:27

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 (17-12-2009)
Kommentar
Fra : Martin Ploug


Dato : 17-12-09 21:16

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:
> 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
>

Søg
Reklame
Statistik
Spørgsmål : 177579
Tips : 31968
Nyheder : 719565
Indlæg : 6409075
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste