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