Avatar billede heha2003 Nybegynder
26. april 2006 - 06:22 Der er 27 kommentarer

Session virker ikke i Internet Explore?

Jeg sidder og skal lave en hjemmeside, hvor man skal kunne logge ind, det har jeg så fået lavet, men så snart du trykker på noget i  menuen bliver man logget ud altså session_destroy bliver udført, hvis man bruger Internet Explore. Hvis jeg så bruger Firefox så bliver session_destroy ikke udført!
Er der nogle der har en god forklaring på det?
Avatar billede coderdk Praktikant
26. april 2006 - 10:06 #1
Hvordan kalder du det script med session_destroy() ?
Avatar billede heha2003 Nybegynder
26. april 2006 - 15:20 #2
Jeg kalder den funktioner.php
Avatar billede olebole Juniormester
26. april 2006 - 16:03 #3
<ole>

Prøv at vise din kode

/mvh
</bole>
Avatar billede heha2003 Nybegynder
26. april 2006 - 16:52 #4
Du ser koden her:
function login()
{
  $username = $_POST['uname'];
  $password = md5($_POST['upass']);
  $login = mysql_query("SELECT * FROM `medlemmer` WHERE `brugernavn`='$username' AND `password`='$password'");
  $adminl = mysql_query("SELECT * FROM `medlemmer` WHERE `brugernavn`='$username' AND `password`='$password' AND `status`='admin'");
  if(mysql_num_rows($login) == 1)
  {
    $_SESSION['login'] = 1;
  }

  if(mysql_num_rows($adminl) == 1)
  {
    $_SESSION['adminl'] = 1;
  }
  if($_SESSION['login'] != 1)
  {
  echo '<form method="post" action=""><b>Brugernavn:</b><br /><input type="text" name="uname"><br /><b>Password:</b><br /><input type="password" name="upass"><br /><input type="submit" value="Login">';
  }
  else
  {
    echo '<b>Velkommen til dit CP</b><br /><br />';
    if($_SESSION['adminl'] == 1)
    {
      echo '<a href="#"><b>Admin CP</b></a><br />';
    }
    echo '<b>Forum</b><br /><a href="#">Logud</a>';
  }
}

Men så snart du trykker dig rundt på siden bliver session afbrudt.
Avatar billede duejensen Nybegynder
26. april 2006 - 17:52 #5
Der mangler vist en session_start()
Avatar billede heha2003 Nybegynder
26. april 2006 - 17:56 #6
Hehe ups:P Den er startede i mit script, men ikke under function login(), men lige efter <?php er startet.
Det kan være den skal være startet under function login()?
Avatar billede duejensen Nybegynder
26. april 2006 - 18:01 #7
du skal have kaldt session_start inden du begynder at sætte session-variable ($_SESSION), så den skal være kaldt inden du kalder login().
Avatar billede heha2003 Nybegynder
26. april 2006 - 18:04 #8
Det har jeg også, og den logger også ind, men så snart du trykker dig rund på siden via. menuen, så er det som om at session bliver brudt.
Avatar billede heha2003 Nybegynder
26. april 2006 - 18:05 #9
Men det er kun i IE af session bliver brudt.
Avatar billede duejensen Nybegynder
26. april 2006 - 18:13 #10
Jeg ved ikke om det hjælper, men kald af session_write_close() kan måske være en vej fremad
Avatar billede heha2003 Nybegynder
26. april 2006 - 18:17 #11
Hmm den har jeg ikke hørt om før. Skal den så sættes ind i stedet for session_destroy?
Avatar billede duejensen Nybegynder
26. april 2006 - 18:25 #12
øhh, fik lige læst dit oprindelige spørgsmål igennem lidt grundigere.
Hvad er problemet, at session_destroy bliver udført i IE,
eller at session_destroy ikke bliver udført i Firefox

Eller er det begge dele ? :-)
Avatar billede heha2003 Nybegynder
26. april 2006 - 18:27 #13
Hehe, det er at IE udføre session_destroy når jeg trykker på et punkt i menuen:-)
Avatar billede duejensen Nybegynder
26. april 2006 - 18:37 #14
Og hvornår kalder du session_destroy fra koden ?
Avatar billede heha2003 Nybegynder
26. april 2006 - 18:51 #15
Det gør jeg når man trykker på et link på siden der hedder logout, og derefter går den ehn til en anden side som så udføre session_destroy.
Avatar billede olebole Juniormester
27. april 2006 - 01:30 #16
Vil det sige, at du går til session_destroy-dokumentet, når du trykker på menu-punktet?

Hvis ikke, kunne man så forestille sig, din IE ikke tager imod cookies - og serveren er sat op til at bruge session-cookies?
Avatar billede heha2003 Nybegynder
27. april 2006 - 06:23 #17
Hvis du trykker på noget i menuen skulle session_destory ikke udføres, men det er så der jeg er på fornemmelsen af den gør det alligevel.

Men IE er da sat til at bruge cookies som standart, så kan da ikke forstå hvis den ikke gør det.
Avatar billede duejensen Nybegynder
27. april 2006 - 06:35 #18
Problemet må jo være enten
a) At du får udført session_destroy, hvor du ikke tror du gør det
eller
b) At dine sessions ikke bliver sat korrekt op

For nu at være sikker på at det ikke er a), kunne du indsætte en
echo "Session Destroy";
i koden lige inden du kalder session_destroy, og så lige kontrollere resultatet.
Avatar billede heha2003 Nybegynder
27. april 2006 - 06:45 #19
Det her jeg lige gjort, og når jeg trykker i menuen viser den det ikke. Så det er ikke a).
Avatar billede olebole Juniormester
27. april 2006 - 16:03 #20
Problemet kan jo ligeså godt være:
c) Din session sættes aldrig
Avatar billede heha2003 Nybegynder
27. april 2006 - 16:05 #21
Den sættes til at starte med i mit dokument som bliver læst på alle sider:)
Avatar billede coderdk Praktikant
27. april 2006 - 16:10 #22
Hvis du f.eks. har et enkelt mellerum før du starter din session, bliver sessionvariable nok ikke sat (og hvis du har error reporting slået fra, får du ikke en "headers already sent" advarsel)
Avatar billede duejensen Nybegynder
27. april 2006 - 16:17 #23
Da det jo tilsyneladende virker fint i firefox, mente jeg ikke at c) var en mulighed.

Er der noget javascript kode involveret ?
Avatar billede olebole Juniormester
27. april 2006 - 16:22 #24
Ved du positivt, at din session bliver overført fra side til side i IE?
Avatar billede heha2003 Nybegynder
27. april 2006 - 16:25 #25
Ja, det virker fint i firefox.

Der er ikke noget javascript involveret.

Ja, det var positivt ment af den startede på hver side.
Avatar billede olebole Juniormester
27. april 2006 - 16:30 #26
Jeg prøver igen:
Når du har logget dig ind og du derefter klikker videre til en anden side - ved du så med 100% sikkerhed, at din session bliver overført til den side? Har du testet det?

- og vi taler kun IE  :)
Avatar billede heha2003 Nybegynder
27. april 2006 - 16:40 #27
Den bliver ikke kørt, men har fundet fejlen nu.
Fejlen var at jeg kørte med et subdomain, og subdomainet plejer at destruere session, endelig træls jeg ikke har tænkt på det noget før.
Men i får alle sammen tak for hjælpen:)
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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



IT-JOB

KMD A/S

.NET Developer

Unik System Design A/S

Udviklingschef

Danske Commodities A/S

Data technician trainee

PensionDanmark

ML Engineer