Vinnaren i pepparkakshustävlingen!
2011-04-21, 21:56
  #1
Medlem
jemts avatar
Jag har idag en mapp (med undermappar) som innehåller diverse filer. För att komma åt dessa filer loggar användaren in med hjälp av .htaccess.

Nu finns det två enkla php"-program" vars funktioner liknar en gästboks, men används till andra saker som ex. nyhets-inlägg.

Det jag vill göra, är att kunna koppla den inloggade användarens "namn" till dennes inlägg med automatik. Alltså så att användaren själv inte behöver lägga till sitt namn.

Jag vill gärna använda mig utav .htaccess, då det är enkelt att hålla en bra säkerhet med låga kunskaper.

Jag har googlat runt lite och hittat denna kod-snutt på ett annat forum.
Men jag förstår inte hur denna kod fungerar, då det är för mig nya kommandon.

Kod:
<?php //login
$username = "admin";
$password = "password";

if ( (!isset($PHP_AUTH_USER)) || !(($PHP_AUTH_USER == "$username") && ( $PHP_AUTH_PW == "$password" )) ) {
header("WWW-Authenticate: Basic Realm=\"Authorization Required\"");
header("HTTP/1.0 401 Unauthorized");
error("Authorization Required!");
}
?>

Antar att man skulle kunna göra en fil som har ett formulär, typ:
<form action=logga_in.php method="post">
<input name=user>
<input type=password name=pasw>
<input type=button value=logga in>
</form>

...som är kopplat till en fil med php-koden ovanför.
Men att byta ut
$username = "admin";
$password = "password";

till

$username = $_POST[user];
$password = $_POST[pasw];


Så min konkreta fråga lyder såhär:
Kan jag koppla den inloggade användaren (genom .htaccess) till en PHP-sträng som kan likna något som detta;
$user = ['användarnamn genom .htaccess']
...för att sedan efter inloggning, kunna använda liknande sträng för att lägga till användarens namn i nya inlägg.
[/url]


edit:
Man kanske behöver använda sig av kakor, som sparar användarens namn, för att kunna återkoppla det vid ett senare tillfälle?
Citera
2011-04-21, 22:07
  #2
Medlem
ShadowOfAMaNs avatar
Jag hade personligen använt mig av $_SESSION för att spara ner användarnamnet och sen kunna skriva ut det i te.x gästboks inlägg
Citera
2011-04-21, 22:16
  #3
Medlem
jemts avatar
Citat:
Ursprungligen postat av ShadowOfAMaN
Jag hade personligen använt mig av $_SESSION för att spara ner användarnamnet och sen kunna skriva ut det i te.x gästboks inlägg

Jag har inte riktigt fattat hur $_SESSION fungerar. Behöver nog ta mig en titt på det.

Men jag hitta istället något annat. Kanske detta kan vara något...
php-manualen
Citera
2011-04-21, 22:31
  #4
Medlem
ShadowOfAMaNs avatar
Känns som du ska krångla till det lite för mycket.

För att sätta en $_SESSION lägger du till följande högst upp:

Kod:
session_start(); 

Sen fortsätter vi med att lägga in ett värde i Sessionen, i detta fall användarnamnet som loggas in.

Kod:
$_SESSION['sess_user'] = $_POST['user']; 

Vipps så har vi användarnamnet sparat, nu skriver vi ut innehållet på följande sätt:

Kod:
Skrivet av:<?php echo $_SESSION['sess_user']; ?>

VIKTIGT: Lägg till följande rad när användaren loggar ut (för att rensa ut värdet)

Kod:
session_unset();
  
session_destroy();
  
header("Location: index.php");
  exit; 
__________________
Senast redigerad av ShadowOfAMaN 2011-04-21 kl. 22:44.
Citera
2011-04-22, 01:24
  #5
Medlem
Polarlights avatar
Glöm inte att kontrollera så användaren finns också och rätt lösenord är inskrivit, så du inte sätter $_SESSION utanför kontrollen...
För i så fall kommer alla åt dina sidor vid kontrollen och det vill du inte...

På de sidor som bara ska nås via inloggning sätter du:

Kod:
<?php
session_start
();

if(isset(
$_SESSION['sess_user'])) {

// Eka ut innehållet för de som har rättigheterna till sidan


else { echo 
"Du har ej rättigheterna att se denna sida"; }
?>
Citera
2011-04-22, 11:43
  #6
Medlem
Berws avatar
Annat sätt som jag brukar använda för att kontrollera om dem har rättigheterna är

Kod:
<?php
session_start
();

// Om inte session är satt, skicka vidare till index eller nu till nått annat ställe
if(!isset($_SESSION['sess_user'])) {
     
header("Location: index.php");
     exit;
}

?>

För att få lite snyggare kod så brukar jag includera denna kod^^ på varje sida som man måste vara inloggad för att ha tillgång till.
Citera
2011-04-23, 14:40
  #7
Medlem
jemts avatar
Ok! session är intaget, och jag kommer garanterat att använda mig av era tips.

Men...

Kan jag koppla den inloggade användaren (genom .htaccess) till en PHP-sträng som kan likna något som detta;
$user = ['användarnamn genom .htaccess']
...för att sedan efter inloggning, kunna använda liknande sträng för att lägga till användarens namn i nya inlägg.

Eller måste man göra tvärt om; alltså, att koppla PHP-inloggningen till htaccess?
Citera
2011-04-23, 15:26
  #8
Medlem
Polarlights avatar
Får man fråga vad det är för filer som ligger i .htaccess-mappen? För är det bara PHP-filer så ser jag ingen anledning till att överhuvudtaget använda .htaccess. Då du kör SESSIONS-kontrollen i dina filer.
Citera
2011-05-01, 09:07
  #9
Medlem
jemts avatar
Citat:
Ursprungligen postat av Polarlight
Får man fråga vad det är för filer som ligger i .htaccess-mappen? För är det bara PHP-filer så ser jag ingen anledning till att överhuvudtaget använda .htaccess. Då du kör SESSIONS-kontrollen i dina filer.

Jag har pdf, doc samt bilder i undermappar.
Därav htaccess.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback