/ 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
location problemer
Fra : Anders


Dato : 11-01-05 11:03

Hej!
Jeg har prøver at lave et login system med kun en bruger. Til det har
jeg lavet nedenstående kode.

<?php
if(is_array($HTTP_POST_VARS)) {
$usr = $HTTP_POST_VARS['usr'];
$pass = $HTTP_POST_VARS['pass'];
} elseif (is_array($_POST)) {
$usr = $_POST['usr'];
$pass = $_POST['pass'];
}
?>
<?
if ($usr == a and $pass == b){
session_start();
$_session["real"]= "1";   
header("location: gb/index.php");
exit;
} else {
echo "<h3>Kender dig ikke</h3>";
exit;   
}
?>

Og for det får jeg følgende fejmeddelelser:

Notice: Use of undefined constant a - assumed 'a' in
\Sikkerhed\password.php on line 11

Notice: Use of undefined constant b - assumed 'b' in
\Sikkerhed\password.php on line 11

Warning: session_start(): Cannot send session cookie - headers already
sent by (output started at \Sikkerhed\password.php:10) in
\Sikkerhed\password.php on line 12

Warning: session_start(): Cannot send session cache limiter - headers
already sent (output started at \Sikkerhed\password.php:10) in
\Sikkerhed\password.php on line 12

Warning: Cannot modify header information - headers already sent by
(output started at \Sikkerhed\password.php:10) in
\Sikkerhed\password.php on line 14

er der nogen der kan sige hvad jeg skal gøre?

Anders
odgaard@bluebottle.com

 
 
Peter Brodersen (11-01-2005)
Kommentar
Fra : Peter Brodersen


Dato : 11-01-05 12:59

On Tue, 11 Jan 2005 11:02:56 +0100, Anders <andersodgaard@yahoo.dk>
wrote:

>if ($usr == a and $pass == b){

Hvis det er strengene "a" og "b", du mener, så skal du sætte gåseøjne
om dem. Fx:

if ($usr == "a" and $pass == "b"){

Ellers vil det som udgangspunkt blive betragtet som konstanter.

>Notice: Use of undefined constant a - assumed 'a' in
>\Sikkerhed\password.php on line 11

Dette skyldes, at din PHP er sat op til at rapportere helt ned til
notices. Mange PHP-installationer i produktion er sat op til ikke at
rapportere notices, men kun warnings og "opefter".

>Warning: session_start(): Cannot send session cookie - headers already
>sent by (output started at \Sikkerhed\password.php:10) in
>\Sikkerhed\password.php on line 12

Dette skyldes så, at idet du rapporterer notices, får du output. Efter
outputtet kan der ikke sendes HTTP-headers.

I første omgang kan du nøjes med at sætte quotes rundt om dine
strenge.

--
- Peter Brodersen

Mads Sülau Jørgensen (11-01-2005)
Kommentar
Fra : Mads Sülau Jørgensen


Dato : 11-01-05 16:25

Anders wrote:

> if ($usr == a and $pass == b){

Jeg ville nok skrive det som så:
if ($usr == "a" && $pass == "b"){

Da && har højere precedence end and. En mindre detailje.

> $_session["real"]= "1";

Foruden det Peter skriver skal du være opæmrksom på at der ikke er noget
der hedder $_session, det hedder $_SESSION. Det gælder desuden for alle
de superglobale arrays, $_SERVER, $_GET osv.

--
Mads Sülau Jørgensen
"All glory to the hypno toad!"

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

Månedens bedste
Årets bedste
Sidste års bedste