qualitum logo
Omdirigering till login med dynamisk URL (?p=) funkar inte

PHPportalen Forum Index » PHP Mjukstart
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
suzanne68



Medlem i: 571 dagar

Status: Offline



#721592
Inlägg Skrivet: 2012-03-13 03:31      Ämne: Omdirigering till login med dynamisk URL (?p=) funkar inte Citera

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:
KOD:
1:
?p=mapp/filnamn
och det fungerar inte med
KOD:
1:
header('Location: /?p=admin/login');
Om jag däremot utesluter detta skript och använder vanliga länkadresser:
KOD:
1:
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:

KOD:
1:
<?php
2:
   session_start();
3:
   $username = $_SESSION['username'];
4:
 
5:
   include ('functions.php');
6:
   db_connect();
7:
 
8:
   if(!empty($_SESSION['username'])){
9:
      $sql = mysql_query("SELECT username, usertype FROM users WHERE username='$username'");
10:
      $result = mysql_num_rows($sql);
11:
      $row = mysql_fetch_array($sql);
12:
      
13:
      if($_SESSION['username'] = $username AND $row['usertype']==1){
14:
         $_SESSION['username'] = $username;
15:
         $user_welcome = "V&auml;lkommen ".$username;
16:
      }
17:
      
18:
      else{
19:
         //header('Location: /?p=admin/login');
20:
         die("<a href='?p=admin/login'>You have to login as admin to access this page!</a>");
21:
      }
22:
   }
23:
   
24:
   else{
25:
      //header('Location: /?p=admin/login');
26:
      die("<a href='?p=admin/login'>You have to login to access this page</a>");
27:
   }
28:
?>
29:
 

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:
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.
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
jonssondesign



Medlem i: 443 dagar

Status: Offline



#721605
Inlägg Skrivet: 2012-03-13 19:06      Ämne: Citera

Jag kan ingenting egentligen, men det kanske hjälper dig ändå.

Vad tror du om att du lägger in .php?

Om du kollar på din första kod (som inte fungerar, så står det ""/?p=admin/login""), kollar du sedan på din andra kod som fungerar, så står det /admin/login.php..

Om jag förstår det rätt så måste du länka till en sida, vilket du inte gör? Testa skriv istället=
header('Location: /?p=admin/login.php');
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida MSN Messenger
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » PHP Mjukstart
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic
qualitum logo