/ 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
Kontrollere input fra form
Fra : Susanne & Jesper Mik~


Dato : 22-12-07 21:23

Hej

Jeg er i gang med et af mine første forsøg med php. Jeg prøver på at lave en
købs/salgssektion, men jeg har svært ved at gennemskue, hvorfor jeg ikke kan
få mit php-script til at lave en korrekt kontrol af de indsatte værdier.

Selve siden kan ses på http://www.road-race.dk/test_marked/annonce.html

Koden, der i øjeblikket volder mig problemer, er som følger:

$action = $_POST['action'];
if ($_POST['action'] == "none")
{
die("Du har glemt at vælge, om du vil købe eller sælge");
}

Det virker, som om det bliver fuldstændig ignoreret. Hvad gør jeg galt?

--
Venlig hilsen
Susanne


 
 
Bertel Lund Hansen (22-12-2007)
Kommentar
Fra : Bertel Lund Hansen


Dato : 22-12-07 21:50

Susanne & Jesper Mikkelsen skrev:

> Koden, der i øjeblikket volder mig problemer, er som følger:

> $action = $_POST['action'];
> if ($_POST['action'] == "none")
> {
> die("Du har glemt at vælge, om du vil købe eller sælge");
> }

> Det virker, som om det bliver fuldstændig ignoreret. Hvad gør jeg galt?

Hvis $_POST['action']=="none", så er det tegn på at brugeren har
skrevet n o n e i formularfeltet - hvis det da ikke er en værdi
du selv tildeler den. I så fald mangler der meget kode før vi kan
gennemskue problemet.

Du kan tjekke en variabel med

   if (!isset($_POST['action'])) { skæld_ud(); }

Det tjekker om variablen overhovedet har fået en værdi. Det er
tilfældet hvis et formularfelt ikke er udfyldt.

Et råd:
"action" er en parameter der bruges til en form-erklæring. Jeg
har det princip ikke at bruge reserverede ord til variabler. Det
kan nemlig godt virke lidt forvirrende.

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

Philip Nunnegaard (22-12-2007)
Kommentar
Fra : Philip Nunnegaard


Dato : 22-12-07 22:30

"Bertel Lund Hansen" <unospamo@lundhansen.dk> skrev i meddelelsen
news:sqtqm3d0sg82p6phfrehodgcilo1h3fbmn@4ax.com...

> Hvis $_POST['action']=="none", så er det tegn på at brugeren har
> skrevet n o n e i formularfeltet - hvis det da ikke er en værdi
> du selv tildeler den. I så fald mangler der meget kode før vi kan
> gennemskue problemet.

Det er en select-boks med 3 mulige værdier: "none", "koebe" og "saelge"


> Et råd:
> "action" er en parameter der bruges til en form-erklæring. Jeg
> har det princip ikke at bruge reserverede ord til variabler. Det
> kan nemlig godt virke lidt forvirrende.

Det var også min første tanke, at det var "action", der _kunne_ give bøvl.
Men det var tilsyneladende alle $_POST-variabler, den ignorerede, så vidt
jeg kunne se.

Personligt bruger jeg som regel danske variabelnavne for at være sikker på
ikke at kollidere med reserverede ord (dog lige undtagen "by", som jeg enten
kalder "city" eller "bosted")
Så kan jeg også nemt skelne mellem variabler, jeg selv har defineret og
variabler/udtryk, der er en del af kode/programmeringssproget.


Philip Nunnegaard (22-12-2007)
Kommentar
Fra : Philip Nunnegaard


Dato : 22-12-07 22:17

"Susanne & Jesper Mikkelsen" <madcat@c.dk> skrev i meddelelsen
news:476d7228$0$15895$edfadb0f@dtext01.news.tele.dk...

> $action = $_POST['action'];
> if ($_POST['action'] == "none")
> {
> die("Du har glemt at vælge, om du vil købe eller sælge");
> }
>
> Det virker, som om det bliver fuldstændig ignoreret. Hvad gør jeg galt?

Jeg har lige leget lidt med det på min egen computer.
Den ignorerede det, indtil jeg ændrede i din <form>.

Du har skrevet:
[snip]
<form method="post" action="nyannonce.php" enctype="text/plain">
[/snip]

Fjern enctype og giv formularen et navn eller id.

<form id="koebsalg" method="post" action="nyannonce.php">

Så skulle det virke.


Susanne & Jesper Mik~ (22-12-2007)
Kommentar
Fra : Susanne & Jesper Mik~


Dato : 22-12-07 23:21


"Philip Nunnegaard" skrev
>
> Fjern enctype og giv formularen et navn eller id.
>
> <form id="koebsalg" method="post" action="nyannonce.php">
>
> Så skulle det virke.

Jep, nu virker det. Jeg skulle jo have spurgt her for længe siden

Har du nogen forklaring på, hvorfor det ikke virker med enctype? Jeg har
lavet nogle andre forms på en anden server, hvor der ikke var nogen
problemer, så jeg havde slet ikke tænkt i de baner.

Nogle gode links til, hvor jeg kan læse mere om forms og php (ikke for
generelt)?
--
Venlig hilsen
Susanne


Philip Nunnegaard (22-12-2007)
Kommentar
Fra : Philip Nunnegaard


Dato : 22-12-07 23:43

"Susanne & Jesper Mikkelsen" <madcat@c.dk> skrev i meddelelsen
news:476d8dc5$0$15872$edfadb0f@dtext01.news.tele.dk...

> Har du nogen forklaring på, hvorfor det ikke virker med enctype?

Desværre har jeg ingen idé om, hvorfor.
Jeg prøvede mig bare frem.


Peter Brodersen (23-12-2007)
Kommentar
Fra : Peter Brodersen


Dato : 23-12-07 00:26

On Sat, 22 Dec 2007 23:20:44 +0100, "Susanne & Jesper Mikkelsen"
<madcat@c.dk> wrote:

>Har du nogen forklaring på, hvorfor det ikke virker med enctype? Jeg har
>lavet nogle andre forms på en anden server, hvor der ikke var nogen
>problemer, så jeg havde slet ikke tænkt i de baner.

Standard encoding-type er "application/x-www-form-urlencoded". Her
sendes informationen url-encoded:
http://en.wikipedia.org/wiki/Percent-encoding

At sætte enctype="text/plain" er mest brugbart, hvis dataen skal
sendes til en person, fx til en e-mail-adresse. Så vil det blive sendt
som ren tekst, men ikke nødvendigvis maskinlæsbart.

--
- Peter Brodersen
Kendt fra Internet

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

Månedens bedste
Årets bedste
Sidste års bedste