witam jak juz kiedys pokazywalem ta moja mala stronke + mam teraz autoryzacje z wykorzystaniem sesji tylko jak to razem najlepiej polaczyc aby nie dalo sie obejsc (wiem wiem wszystko da sie obejsc) ale moz ktos ma jakis pomysl
index.php engine
<?php
$where = $HTTP_GET_VARS['cmd'];
(
\"przyklad\" => \"przyklad.inc\",
\"przyklad1\" => \"przyklad1.inc\",
\"kolejna_przykladowa_strona\" => \"kolejna_przykladowa_strona.inc\"
);
if ($allowed_values[$where] != '')
{
include(\"main.inc\");
include(\"$allowed_values[$where]\");
include(\"stopka.inc\");
}
else
{
include(\"main.inc\");
include(\"przyklad.inc\");
include(\"stopka.inc\");
}
?>
plik index.php glowne funkcje
plik main.inc glowna strona czyli wszystko co zawarte jest w stronie
plik przyklad.inc pierwsz wyswietlana strona
plik stopka.inc stopka hehe
navigacja odbywa sie poprzez np. dodanie jakiegos dzialu test
tworzymi plik test.inc
dodajemy jego wartosc do index.php
czyli
<?php
\"test\" => \"test.inc\",
?>
i wyswietlamy go index.php?cmd=test
a wiec przyposcmy ze chcialbym stworzyc kolejne 3 strony
1. dla admina
2. dla uzytkownika
3. dla danych ktore wyswietlane pownny byc tylko dla osob zarejestrowanych
mozliwosc dodania konta sobie nie wchodzi w gre nie jest to zaden portal tylko malutka strona a wiec konta mam zamiar dodawac recznie z shella bezposrednio na mysql-u autoryzacja z wykorzystaniem sesji jest autorstwa pana
Piotra Gutowskiego programisty firmy Blue Media Greetengs to all BM Developments jako iz kod jest na lic. GNU zamieszczam go w celach nie komercjynych i prosze o pomoc wszystkich ktorzy pomogli by mi polaczyc je z moja strona ja juz probowalem wszystkiego same czyste php ? includowac z moja strona ? dodawac do calego engine`a i wszystko lipa
baza danych do autoryzacji
CREATE DATABASE baza;
USE baza;
CREATE TABLE tabSession (
idSession int NOT NULL AUTO_INCREMENT,
# id użytkownika zalogowanego do tej sesji lub 0 jeśli niezalogowany
idUser int NOT NULL DEFAULT 0,
# unikalny identyfikator sesji
sid char(32),
# czas ostatniej akcji odwiedzajacego
tLastAction timestamp,
# data startowa sesji
tDate timestamp,
# adres IP odwiedzajacego
sIP char(15),
# ilosc zaladowan stron w sesji
nHits int NOT NULL DEFAULT 0,
# czy sesja aktywna
bActive tinyint NOT NULL DEFAULT 1,
PRIMARY KEY(idSession),
KEY(sid(3))
);
CREATE TABLE tabUser (
idUser int NOT NULL AUTO_INCREMENT,
# login i haslo
sLogin char(16),
sPassword char(16),
# tutaj mozemy dodac dodatkowe pola
# np. data rejestracji, imie i nazwisko, e-mail
PRIMARY KEY(idUser),
KEY(sLogin(3))
);
# dodanie przykladowego uzytkownika
INSERT INTO tabUser (sLogin,sPassword) VALUES ('user','abc');
kolejny plik to index.php tak mi sie wydaje ze najlepiej jakby go mozna bylo includowac do mojego engina w postaci cosik.inc i dodac do engine`a i moglby to byc formularz logowania
<?php
// plik index.php - strona glowna
require_once \"CSession.php\";
initMysql('localhost','mysql','','baza');
$oSession = new CSession();
if ($oSession->bLoginError) {
echo '<center><b>Zły login lub hasło!</b></center><br>'; }
?>
<center>
<form method=\"POST\" action=\"<?php
echo $oSession->makeLink('index.php') ?>\">
<input type=\"hidden\" name=\"formname\" value=\"login\">
Login: <input name=\"sLogin\" size=10><br>
Hasło: <input type=\"password\" name=\"sPassword\" size=10><br>
<input type=\"submit\" value=\"Zaloguj się\">
</form>
</center>
kolejny plik
CSession.php tutaj mozna by bylo ustawic dostep oraz wszystko polaczyc z moja strona czyli tym pierwszym plikiem index.php zrodlo wyzej tak aby dziala wszystko razem
<?php
// plik CSession.php - klasa zarzadzajaca sesjami
define(PAGE_HOME
,'index.php'); // strona glowna define(PAGE_START
,'start.php'); // strona startowa (po zalogowaniu) define(PAGE_LOGOUT
,'index.php'); // strona wyswietlana po wylogowaniu define(PAGE_TIMEOUT
,'index.php'); // strona wyswietlana gdy timeout
// bezpieczny czas oczekiwania na akcje uzytkownika (w minutach)
class CSession
{
var $sIP; // IP uzytkownika
var $tDate; // aktualna data i czas
var $sid; // identyfikator sesji
var $idSession; // id sesji w bazie
// dane zalogowanego uzytkownika
var $idUser; // id uzytkownika, lub 0 jesli nie zalogowany
var $tabUser; // tablica z danymi uzytkownika pobrana z bazy
// true jesli wystapil blad podczas logowania
// (podano zly login lub haslo)
var $bLoginError;
function CSession()
{
$this->sIP = getenv(\"REMOTE_ADDR\"); $this->tDate = date(\"YmdHis\"); $this->idUser = 0;
// 1. Zarzadzanie sesjami
$this->sid = $HTTP_GET_VARS['sid'];
if (!$this->sid) {
// utworz nowa sesje
// (domyslnie przypisana do niezalogowanego uzytkownika)
\"INSERT INTO tabSession (
sid, sIP, tDate, tLastAction
) VALUES (
'\".$this->sid.\"', '\".$this->sIP.\"',
'\".$this->tDate.\"', '\".$this->tDate.\"'
)\");
}else {
// wczytaj dane sesji z bazy
\"SELECT * FROM tabSession
WHERE sid='\".addslashes($this->sid).\"' AND bActive=1\");
// jesli brak sesji o danym sid lub sesja nieaktywna
header(\"Location: \".PAGE_HOME); }
if ($tabSession['sIP']!=$this->sIP) {
// Rozny IP odwiedzajacego i sesji, tutaj mozna dodac
// przekierowanie na strone z informacja o bledzie
$this->logout(PAGE_HOME);
}
// oblicz maksymalny dopuszczalny czas ostatniej akcji
$y = substr($this->tDate,0
,4
); $m = substr($this->tDate,4
,2
); $d = substr($this->tDate,6
,2
); $hour = substr($this->tDate,8
,2
); $min = substr($this->tDate,10
,2
) - TIMEOUT_MINUTES
; $sec = substr($this->tDate,12
,2
); $tDate = date(\"YmdHis\", mktime($hour,$min,$sec,$m,$d,$y)); if ($tabSession['tLastAction']<$tDate) {
// od ostatniej akcji minelo za duzo czasu - wylogowanie
$this->logout(PAGE_TIMEOUT);
}
$this->idSession = $tabSession['idSession'];
// identyfikator uzytkownika przypisanego do tej sesji
$this->idUser = $tabSession['idUser'];
}
// 2. Zarzadzanie uzytkownikami
if ($this->idUser) {
// jesli do tej sesji przypisany jest uzytkownik
// obsluz ewentualne wylogowanie
$this->handleLogout();
// jesli sie nie wylogowal, wczytaj jego dane z bazy
\"SELECT * FROM tabUser WHERE idUser=\".$this->idUser);
}else{
// w przeciwnym wypadku sprawdz czy uzytkownik wlasnie sie zalogowal
$this->handleLogin();
}
// 3. Aktualizacja danych sesji
// inkrementacja licznika zaladowan stron dla tej sesji
// oraz uaktualnienie czasu ostatniej akcji
\"UPDATE tabSession
SET nHits=nHits+1,
tLastAction='\".$this->tDate.\"',
idUser=\".$this->idUser.\"
WHERE idSession=\".$this->idSession);
}
// obsluga logowania uzytkownika
function handleLogin()
{
global $HTTP_POST_VARS, $REQUEST_METHOD; // sprawdz czy przesłano metodą POST formularz logowanie
if ( ($REQUEST_METHOD=='POST') &&
($HTTP_POST_VARS['formname']=='login') ) {
// sprawdz czy przesłany login i hasło odpowiadają
// jednemu z użytkowników zapisanych w bazie
\"SELECT *
FROM tabUser
WHERE
sLogin='\".addslashes($HTTP_POST_VARS['sLogin']).\"' AND
sPassword='\".addslashes($HTTP_POST_VARS['sPassword']).\"'\" );
// uzytkownik poprawnie zalogowany
// przypisz jego idUser do aktualnej sesji
$this->idUser = $this->tabUser['idUser'];
\"UPDATE tabSession SET idUser=\".$this->idUser.\"
WHERE idSession=\".$this->idSession);
// przekieruj przegladarke na strone startowa
header(\"Location: \".PAGE_START.\"?sid=\".$this->sid); }else {
// brak uzytkownika o podanym loginie i hasle
$this->bLoginError = true;
}
}
}
// obsluga wylogowania na zadanie uzytkownika
function handleLogout()
{
if ($HTTP_GET_VARS['bLogout']) {
$this->logout();
}
}
// wylogowanie uzytkownika
function logout($page=PAGE_LOGOUT)
{
\"UPDATE tabSession SET bActive=0
WHERE idSession=\".$this->idSession);
header(\"Location: \".$page); }
function makeLink($sPage,$sParam='')
{
return $sPage.'?sid='.$this->sid.'&'.$sParam;
}
}
// polaczenie z baza MySQL
function initMysql($sHost,$sUser,$sPassword,$sDatabase)
{
if (!$this->handle) exit; }
?>
no i start.php
czyli wszystko co widoczne po zalogowaniu
<?php
// plik start.php - strona startowa, widoczna po zalogowaniu
require_once \"CSession.php\";
initMysql('localhost','mysql','','baza');
$oSession = new CSession();
// wyjscie jesli proba wyswietlenia tej strony
// przez niezalogowanego uzytkownika
if ($oSession->idUser==0
) exit;
?>
<center>
<b>Użytkownik zalogowany</b><br>
<a href=\"
<?php echo $oSession->makeLink('index.php','bLogout=1') ?>\">wyloguj się</a>
<br><br>
<a href=\"
<?php echo $oSession->makeLink('start.php') ?>\">jakis link</a>
</center>
prosze o pomoc osoby ktore wiedzialby jak to polaczyc z moja strona czyli tym co wyzej jest napisane aha dziekuje za wyrozumialosc i jakby ktos mogl looknac na moj poprzedni problem bylo by GIT
http://forum.php.pl/index.php?showtopic=21057NIE WIECE OCO CHODZI
SOMEBODY HELP
Ten post edytował adisoft 1.10.2004, 11:50:56