Avatar billede morten Nybegynder
30. august 2001 - 21:16 Der er 7 kommentarer og
1 løsning

Hvorfor virker mit login-script ikke for alle browsere ??

Hej Alle

Jeg har arbejdet en 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 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: http://www.laererstuderende.dk/t/test9/profil/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;
        }
}
------------------------------------------------------
Avatar billede milo Nybegynder
30. august 2001 - 21:21 #1
det burde virke i alle da det jo blir afviklet på serveren? Det er ikke browseren der bestemmer noget, den udskriver bare resultaterne serveren har udregnet?
Avatar billede morten Nybegynder
30. august 2001 - 21:23 #2
>> Milo

Korrekt, men ikke desto mindre virker det ikke for alle brugere, hvilket er afhængig af deres browser. (og ja.. accept af Cookie er sat)

/Morten
Avatar billede milo Nybegynder
30. august 2001 - 21:26 #3
det må være noget andet end browser? men ved ikke hvad
Avatar billede milo Nybegynder
30. august 2001 - 21:26 #4
lyder meget mystisk
Avatar billede morten Nybegynder
30. august 2001 - 21:44 #5
Jeg lader lige spørgsmålet stå i et par dage for at se om der er andre der har input.

Samme spørgsmål er også stillet på usenet:
dk.edb.internet.webdesign.serverside.php

/Morten
Avatar billede coderdk Praktikant
31. august 2001 - 00:18 #6
De brugere som det ikke virker for, har ikke cookies enablet.

Hvis du ikke tror på mig ;) så smid dette script op:

<?

session_start();
session_register(\"sesreload\");
if ($reload)
  echo \"<h1>Du har \" . ($sesreload ? \"\" : \"IKKE\") . \" enablet cookies!\";
else
{
  $sesreload = 1;
  header(\"location: $PHP_SELF?reload=1\");
  exit;
}

?>

Der vil stå \"Du har IKKE enablet cookies!\"

;)

Avatar billede morten Nybegynder
31. august 2001 - 00:25 #7
>> coderdk

Tak for script

Jeg tjekker .. undersøger .. og vender tilbage

/Morten
Avatar billede morten Nybegynder
04. september 2001 - 23:24 #8
Jeg har nu fået brugeren som ikke kunne logge på med sin MSIE 5.x på en Mac.

Og ganske korrekt. Cookies er ikke enablet, skriver den.

Meen... en undersøgelse af indstillingerne på denne Mac (sket over telefon) er cookies slået til.

På en \"alm.\" windows MSIE 5.x har jeg lagt mærke til at der står \"cookies under session\" og denne er aktiv, så virker det.
Dog findes denne lille markering ikke på den omtalte Mac.

Så jeg ved ikke om jeg egentlig er blevet klogere, men jeg vil nu lade pointene falde til dig coderdk.

En ting er jeg i hvertfald glad for, det er at der ikke er noget i vejen med min kode.

/morten
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



Seneste spørgsmål Seneste aktivitet
I går 20:46 opkaldside Af hagbartm i Mobiltelefoner
I går 16:05 win 10 vil ikke boote Af bb69 i Windows
I går 11:20 Lenovo x390 Af tobberjas i PC
I går 10:14 Alder i Excel Af Nanarsi i Excel
I går 09:00 Flere linier på faneblad Af Peder Lund Nielsen i Excel