webForumDet fria alternativet

Inloggning

54 svar · 2 080 visningar · startad av B22 · sida 3 av 3

B22Medlem sedan mars 2004256 inlägg
#41

Det funkar nu :-)

B22Medlem sedan mars 2004256 inlägg
#42

Nu har jag fått ett litet problem när det gäller utloggningen...

  1. Det är nämligen så att filen databas.php visas i en iframe, när man loggar ut så har jag i header skrivit index.php (det kvittar vilken adress jag skriver där) vilket visas då i iframen, hur gör jag för att undvika detta?
    Man ser alltså sidan i en annan sida, vilket inte är meningen

Jag vet inte om jag har förklara så bra nu...

  1. Hur kan jag kontrollera att utlogningen verkligen fungerar?
    Jag får inget felmeddelande och jag förs till sidan jag har angett efter att sessionen förstörs, men ska jag verkligen lita på det?
B22Medlem sedan mars 2004256 inlägg
#43

Får jag inget svar? :(

MatteMedlem sedan aug. 20002 975 inlägg
#44

Personligen förstod jag inte din fråga med beskrivning.

B22Medlem sedan mars 2004256 inlägg
#45

Ok. det kanske är lättare om jag visar koden för sidan så ni vet hur sidan ser ut ungefär.
Som ni ser så innehåller den en iframe, och när jag klickar på logga ut så dyker den nya sidan upp i den iframen.
Men min startsida i webbplatsen har också en iframe så man kommer att se samma sida två gånger inuti varandra..

<?php
session_start();

if (isset($_GET['logout']))
{
  session_unset();
  session_destroy();
  header("Location: index.php");

  exit;

}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html>
<head>
<title>Lägg in nytt data</title>
<link href="ukf.css" rel="stylesheet" type="text/css"></link></head>

   <div id="start"> 
    	
     <div>
     <ul id="val_meny">
  <li><a href=""onclick="document.getElementById('visa_start').src='add.php'; return false;" >Registrera en medlem</a></li>
  <li><a href=""onclick="document.getElementById('visa_start').src='delete.php'; return false;" >Ta bort en medlem</a></li>
  <li><a href=""onclick="document.getElementById('visa_start').src='search.php'; return false;" >Sök en medlem</a></li>

  <?php 
  echo "<li><a href=\"databas.php?logout=\">Logga ut</a></li>";
  ?> 

    </ul>
    </div>
    
  </div> 
    
    <div><iframe id="visa_start" src="explain.html"></iframe></div>
    </body>
</html>
MatteMedlem sedan aug. 20002 975 inlägg
#46

Vilken sida som ligger i vilken förstår jag ej från din beskrivning.
Varför överhuvudtaget använda iframe. Frames är ett stök när man arbetar med sessioner. För det mesta blir det till att använda javascript för uppdatera olika frames.

Så beroende på dina inkluderingar kan du arbeta med javascript istället för header och/eller sätta target på din logout-länk till din iframe.

B22Medlem sedan mars 2004256 inlägg
#47

Jag har byggt upp sidan med divar, men för att visa innehållet i varje sida använder jag en iframe, jag vet inte annars vad jag kan använda för det ändamålet...alltså på hela webbplatsen har jag två divvar, en i index-sidan för att visa de andra sidorna och en för att ändra innehållet i en databas.

B22Medlem sedan mars 2004256 inlägg
#48

Hur kan jag hindra visning av en sida som inte ska visas om jag inte är inloggad?
Jag skriver så här:

session_start();

              if (!isset($_SESSION['sess_user'])){ 
         
               header("Location: adm_login.php"); 
         }

Men man kan visa sidan om man skriver adressen till den i webbläsaren ändå!
Är det inte så här man gör?

aasahMedlem sedan mars 20034 471 inlägg
#49

Om du skriver in adressen i fältet och sessionen inte är satt för den variabeln så skickas du omedelbart vidare till nästa sida.

B22Medlem sedan mars 2004256 inlägg
#50

aasah skrev:

Om du skriver in adressen i fältet och sessionen inte är satt för den variabeln så skickas du omedelbart vidare till nästa sida.

Ok, jag hade gjort fel när jag satte sessionerna.
Men nu verkar det fungera, för jag förs vidare till nästa sida med en gång.

Hur länge gäller dessa sessioner? Visst är det tills man själv har loggat ut?
Hur gör man annars om man vill begränsa sessionens tid, vad ska det vara bra för isf?

MatteMedlem sedan aug. 20002 975 inlägg
#51

Lägg gärna till exit; efter din header().

Efter 24 minuters inaktivitet kommer användarens session att rensas bort, och därmed blir han också utloggad.
Stängs användarens webbläsare upphör sessionscookien att gälla, och även då innebär detta i praktiken att användaren är utloggad.

B22Medlem sedan mars 2004256 inlägg
#52

Tack för ett utförligt svart Matte! :)

aasahMedlem sedan mars 20034 471 inlägg
#53

Matte skrev:

Lägg gärna till exit; efter din header()...

Hur skulle det se ut på den mottagande sidan för att man skulle kunna hamna på raden efter?? :q

MatteMedlem sedan aug. 20002 975 inlägg
#54

aasah skrev:

Matte skrev:

Lägg gärna till exit; efter din header()...

Hur skulle det se ut på den mottagande sidan för att man skulle kunna hamna på raden efter?? :q

Hur menar du?

header() skickar header till webbläsaren om en redirect.
PHP skriptet fortsätter köras ändå.
Det kan alltså finnas saker som görs på servern efter headern skickats. För att förhindra detta bör man stoppa skriptet efter headern.

aasahMedlem sedan mars 20034 471 inlägg
#55

Matte skrev:

header() skickar header till webbläsaren om en redirect.
PHP skriptet fortsätter köras ändå.
Det kan alltså finnas saker som görs på servern efter headern skickats. För att förhindra detta bör man stoppa skriptet efter headern.

ÅH! :o Tack för förklaringen! Det var ju synnerligen bra att veta!

(Jag brukar visserligen valla in all mina redirects i if/elseif block, men ändå!)

134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)