/ 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
$HTTP_POST_VARS
Fra : Bjerrum


Dato : 20-04-04 14:38

Hej

Jeg har lavet en side på localhost og har nu lagt den op på et webhotel.
Her kommer der en fejl:
PHP Notice: Undefined index: pas in /index.php on line 2

<?php
$pass = $HTTP_POST_VARS['pass'];
?>

Hvordan undgår jeg denne fejl, som kommer når der ikke sendes noget via http
post?

Kan man indsætte kode så man undgår at den skriver fejlen ud i dokumentet?

Bjerrum



 
 
Henrik Stidsen (20-04-2004)
Kommentar
Fra : Henrik Stidsen


Dato : 20-04-04 16:08

"Bjerrum" <sb@[slet]plugworks.net> wrote in
news:408527b2$0$143$edfadb0f@dread11.news.tele.dk

> Jeg har lavet en side på localhost og har nu lagt den op på et
> webhotel. Her kommer der en fejl:
> PHP Notice: Undefined index: pas in /index.php on line 2

Du bør nok bede dit webhotel om at sætte fejl-rapportering til et
andet niveau, det er ikke smart at skrive notices ud på en
produktions-server.

> <?php
> $pass = $HTTP_POST_VARS['pass'];
> ?>
>
> Hvordan undgår jeg denne fejl, som kommer når der ikke sendes
> noget via http post?

<?php
   if(isset($_POST["pass"]))
       $pass = $_POST["pass"];
?>

Du bør nok bruge $_POST[] istedet for $HTTP_POST_VARS[].

> Kan man indsætte kode så man undgår at den skriver fejlen ud i
> dokumentet?

Den hurtige udgave hvor fejlbeskeden blot undetrykkes istedet for at
det spørges på om værdien er sat før den tildeles til en variabel:

$pass = @$HTTP_POST_VARS['pass'];



--
..: Henrik Stidsen - http://hs235.dk/blog/ ::...
'Veni, Vidi, Velcro' - I came, I saw, I stuck around.

Kasper Garnæs (20-04-2004)
Kommentar
Fra : Kasper Garnæs


Dato : 20-04-04 16:18

Bjerrum <sb@[slet]plugworks.net> wrote:
> Jeg har lavet en side på localhost og har nu lagt den op på et
> webhotel. Her kommer der en fejl:
> PHP Notice: Undefined index: pas in /index.php on line 2
>
> <?php
> $pass = $HTTP_POST_VARS['pass'];
>
>
> Hvordan undgår jeg denne fejl, som kommer når der ikke sendes noget
> via http post?
>
> Kan man indsætte kode så man undgår at den skriver fejlen ud i
> dokumentet?

Der er mange forskellige løsninger:

· Lave ordentlige checks
if (isset($_POST["pass"]) {
$pass = $_POST["pass"];
} else {
$pass = ""; //eller FALSE
}

Dette kunne jo indbygges i en funktion á la

$pass = getPost("pass"),

hvis du mener det er for mange linier kode at skrive for så lidt. Det er
efter min mening den bedste og pæneste løsning.

· Slå error reporting fra på det enkelte udtryk
$pass = @$_POST["pass"];

· Slå visning af notices fra
Sæt

error_reporting = E_ALL & ~E_NOTICE

i php.ini eller benyt funktionen

error_reporting (E_ALL ^ E_NOTICE);

Det ville jeg selv ikke gøre, da jeg det kan skjule man småfejl i koden, som
PHP "hjælper" dig med. Hjælpen er bare ikke altid hensigtsmæssig, og det kan
vise sig svært at debugge, hvis man ikke bliver gjort opmærksom på hvor PHP
har trådt til.

--
Med venlig hilsen / Regards
Kasper Garnæs
http://kasper.garnaes.dk



Bjerrum (20-04-2004)
Kommentar
Fra : Bjerrum


Dato : 20-04-04 20:26

Hej Kasper

Tak for dine 3 løsninger - det var jo lige det jeg manglede.

Jeg lavede det rigtigt:

> if (isset($_POST["pass"])) {
> $pass = $_POST["pass"];
> } else {
> $pass = ""; //eller FALSE
> }

Gemmer disse til en anden gang.

> $pass = @$_POST["pass"];

> error_reporting (E_ALL ^ E_NOTICE);

Og tak til Henrik også - sjov blog du har

Bjerrum




Henrik Stidsen (20-04-2004)
Kommentar
Fra : Henrik Stidsen


Dato : 20-04-04 20:35

"Bjerrum" <sb@[slet]plugworks.net> wrote in
newsehc.146526$jf4.7758079@news000.worldonline.dk

> sjov blog du har

Tak :)

--
..: Henrik Stidsen - http://hs235.dk/blog/ ::...
'Veni, Vidi, Velcro' - I came, I saw, I stuck around.

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

Månedens bedste
Årets bedste
Sidste års bedste