Jeg forstår frustrationen i at du forventer en masse hjælp, og bliver affærdiget med et link. Det er ikke en konkret løsning til din udfordring. Men det kan være en løsning der hjælper dig til at finde en løsning på dit(!) udfordring.
Men der ingen grund til at ryge op i en spids. :o) På et forum som dette får ser vi dagligt spørgsmål der noget fra tidl. som allerede er blevet svaret. Derfor må du forstå at udviklere har tendens til at referere til en dokumentation de forventer du læser eller har læst, samt links til mulige løsninger du kan afprøve. Samtidig er login-systemer ikke en ny ting, så mange andre har haft samme problem som dig, og fundet en løsning ved bl.a. at søge på Google.
Hvis du går ind på tidligere link omkring session_start() og leder efter "warnings", vil du opdage at du ikke er den eneste der oplever dette. At få en warning med session_start() betyder at du bruger session_start() efter output. session_start() er en header baseret funktion, og alle headers skal sendes til browseren før output!
Et login system har stort behov for sessions. Det er pt. eneste måde man kan registrere om en bruger er logget ind på de beskyttede sider.
Så session_start() skal stå før ALT(!) output. Sådan set på aller første linje i din php-fil. Når det er gjort, har du adgang til $_SESSION variablen og de data der bliver lagret på tværs af requests.
Nedestående:
- // If result matched $myusername and $mypassword, table row must be 1 row
- if($count==1){
- $myusername
- // Register $myusername, $mypassword
- $_SESSION['myusername'] = 'username';
- $_SESSION['mypassword'] = 'password';
-
- if(!isset($_SESSION['username'])){
- // not logged in
- }
- echo "<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"0; URL=index.php?page=Forside\">";
- }
- else {
- echo "Wrong Username or Password";
- }
Vil jeg lave om til:
- // If result matched $myusername and $mypassword, table row must be 1 row
- if($count==1){
- $_SESSION['username'] = $myusername;
- header('Location: index.php?page=Forside');
- } else {
- die('Wrong username or password');
- }
Senere kan du så teste login med:
- if(isset($_SESSION['username']) && !empty($_SESSION['username'])) {
- // user is logged in.
- }
Ovenstående er selvsagtens ikke den mest sikre løsning, men det bringer dig i den rigtige retning.
Indlæg senest redigeret d. 19.03.2013 11:40 af Bruger #10216