|
| 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!"
| |
|
|