Omdirigering till login med dynamisk URL (?p=) funkar inte
Jag har två sidor som bara ska kommas åt om användaren är inloggad. En för administratören och en för övriga användare. När en användare kommer till dessa sidor utan att vara inloggad vill jag att de skickas vidare till inloggningssidan. Det fungerar inte med den webbplatsen jag håller på med.
Jag använder ett skript på startsidan så att interna länkar inkluderas i en div-box på den sidan och mina länkar blir därför så här:
?p=mapp/filnamn
och det fungerar inte med
header('Location: /?p=admin/login');
Om jag däremot utesluter detta skript och använder vanliga länkadresser:
header('Location: /admin/login.php');
fungerar det som det ska, men jag vill inte behöva kopiera samma kod om och om igen för att få med header, footer, leftbar och rightbar på varje sida.
Jag har grubblat över detta i en evighet och förgäves har jag sökt efter ett svar. Idag har jag suttit med detta tidigare idag samt sedan klockan tio ikväll, men ingen lösning. Jag vet inte ens vad jag ska söka på. Vad är det jag inte förstår. Det var inte alls länge sedan jag hade ytterligare ett problem, just för att jag har en sådan länkadress.
Det här är scriptet som jag använder på sidan som jag inte ska kunna komma åt om jag inte är inloggad:
<?php
session_start();
$username = $_SESSION['username'];
include ('functions.php');
db_connect();
if(!empty($_SESSION['username'])){
$sql = mysql_query("SELECT username, usertype FROM users WHERE username='$username'");
$result = mysql_num_rows($sql);
$row = mysql_fetch_array($sql);
if($_SESSION['username'] = $username AND $row['usertype']==1){
$_SESSION['username'] = $username;
$user_welcome = "Välkommen ".$username;
}
else{
//header('Location: /?p=admin/login');
die("<a href='?p=admin/login'>You have to login as admin to access this page!</a>");
}
}
else{
//header('Location: /?p=admin/login');
die("<a href='?p=admin/login'>You have to login to access this page</a>");
}
?>
Jag använder die för det är det enda som fungerar, men vill använda det som står i kommentaren.
Det kanske inte är hela världen att använda metoden jag gör idag, men problemet är att när jag får meddelandet att jag måste logga in för att se sidan, så försvinner högerfältet och det ser helknäppt ut.
Förutom detta funderar jag om det är säkert med detta skript för att hindra obehöriga? Det känns inte så, men säkerheten kanske bara är hänger på inloggningen? Finns det någon bra sida som förklarar bra hur en inloggning blir relativt säker?
Tillagt:
Tillagt:
Jag kom på att jag nyligen fick upp information om att den enda lösningen var att använda .htaccess mod rewrite. Jag hängde dock inte med på exakt vad jag skulle göra. Jag hade det på servern i alla fall. För tillfället känner jag inte för att servern ska strula. Är detta nåt som du lika enkelt bara raderar som du lägger dit det? En del saker kan ha förmågan att strula ihop andra saker och även om man gör det ogjort ligger nåt kvar och så får man rabies för att man inte finner lösningen.
Jag är också intresserad om det finns nån annan bra lösning än omdirigering. Det viktiga är att inte högermenyn försvinner.