Det funkar nu :-)
Inloggning
54 svar · 2 080 visningar · startad av B22 · sida 3 av 3
Nu har jag fått ett litet problem när det gäller utloggningen...
- 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...
- 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?
Får jag inget svar? :(
Personligen förstod jag inte din fråga med beskrivning.
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>
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.
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.
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?
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.
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?
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.
Tack för ett utförligt svart Matte! :)
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
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.
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å!)