Hej Alle
CC:
http://www.eksperten.dk/spm/104197
Jeg har arbejdet nogle år med php+mysql, men er løbet ind i et problem som jeg ikke kan gennemskue og derfor søger jeg
lidt hjælp.
Det drejer sig om et brugersystem, hvor jeg vil registere brugeren med en session.
De fleste browsere kan godt logge ind, mens nogle enkelte få browsere ikke kan - næsten uanset hvordan jeg vender og
drejer scriptet.
Jeg har market i scriptet hvor brugeren som ikke kan logge på kommer til, men der sker ikke nogen registering af session
(det er hvad jeg mener).
Se script i action:
http://www.laererstuderende.dk/t/test9/profil/
Scriptet:
------------------------------------------------------
<?
session_start();
/*--------------------------------------
Vi begynder på validering af brugeren...
--------------------------------------*/
if(!$bruger)
{ // Bruger ikke logget på. Godt så kan vi undersøge om der er indtastet de korrekte oplysninger.
if( ( isset ( $brugernavn )) && ( isset ( $kode )) )
{ // Brugeren har udfyldt formularen.
$return= $sqllogin->login ( $brugernavn, $kode ); //Slår op i DB. Retur med array.
if ( ( $return[adgang] == false ) AND ( $return[brugernavn_findes_ikke] == $brugernavn ) )
{ //Brugernavnet findes ikke
header("Location:
index.php?goto=fejl&ejfundetbrugernavn=$return[brugernavn_findes_ikke]");//brugernavn IKKE fundet.
exit;
}
elseif ( $return[adgang] == false )
{
header("Location: index.php?goto=fejl"); //Sender bruger til ny login. Korrekt brugernavn, men
forkert kode
exit;
}
elseif ( $return[adgang] == true )
{
-->>> Det er her brugeren kommer til... men brugeren bliver ikke sendt med headeren til enten $go eller
index.php?goto=profil (som er det som normalt sker)
$bruger = $return[ID];
session_register("bruger");
if ( isset ( $go ) )
{ // $go er en redirect-variabel, som sættes, hvis brugeren har requestet en side, men
ikke logget på.
header("Location: $go");
unset($go);
exit;
}
else
{
header ("Location: index.php?goto=profil");
exit;
}
}
else
{ // Ups.. We got a problem Houston....
header ( "Location: index.php?goto=dbfejl");
}
} else
{
header("Location: index.php"); // Brugeren har ikke angivet brugernavn eller kode, og derfor henvises til
hovedside
exit;
}
}
else
{ //Brugeren er logget på korrekt.
if ( isset ( $go ) )
{ // $go er en redirect-variabel, som sættes, hvis brugeren har requestet en side, men ikke logget på.
header("Location: $go");
unset($go);
exit;
}
else
{
header("Location: index.php?goto=profil");
exit;
}
}
?>
------------------------------------------------------