Na początku jest formularz logowania którego przedstawiać nie będę. dalej jest sprawdzenie czy dane użytkownika i hasło jest ok sprawdz_log.php:
<?php include_once ('polacz.php'); // dane logowania do bazy //error_reporting(E_ALL); } $login_l = filter_var($_POST['login'], FILTER_SANITIZE_STRING); $pass = filter_var($_POST['pass'], FILTER_SANITIZE_STRING); $sol='sas@#ść123'; $password_l = sha1($pass . $sol); try { $stmt = $sth->prepare('SELECT id_user, login FROM logowanie WHERE login = :login_l AND pass = :password_l'); $stmt->bindParam(':login_l', $login_l, PDO::PARAM_STR); $stmt->bindParam(':password_l', $password_l, PDO::PARAM_STR, 40); $stmt->execute(); if ($stmt->rowCount() == 1) { foreach ($stmt as $r) { $login = $r["login"]; $id_user = $r["id_user"]; } $_SESSION['id_user'] = $id_user; $_SESSION['login'] = $login; } else{ } } catch (PDOException $e) { } } else { } ?>
następnie plik index.php a w nim:
<?php { } //error_reporting(E_ALL); include_once ('go/polacz.php'); include_once ('go/sesje.php'); echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>system</title> <link href="go/style.css" rel="stylesheet" type="text/css" media="screen"/> <link rel="stylesheet" href="go/drukuj.css" type="text/css" media="print" /> </head> <body> <div class="container"> </br>Zalogowany jako: '.$_SESSION['login'].'</br><a href=go/wyloguj.php>Wyloguj</a></div> <div class="sidebar1"> <ul class="nav">'; include_once 'go/menu.php'; echo'</ul> <!-- end .sidebar1 --></div> <div class="content">'; $nr = $_GET['id']; include_once "go/$nr"; } else include "go/start.html"; echo' </div> </div> </body> </html>';
i plik sprawdzania sesji sesje.php :
<?php { } else { try { $stmt = $sth->prepare('SELECT login FROM logowanie WHERE id_user = :user_id'); $stmt->bindParam(':user_id', $_SESSION['id_user'], PDO::PARAM_INT); $stmt->execute(); $phpro_username = $stmt->fetchColumn(); if($phpro_username == false) { } else { $message = 'Witamy '.$phpro_username; } } catch (Exception $e) { $message = 'Błąd zapytania"'; } } ?>
1.Teraz mam pytanie czy np jak mam podłączone menu w index.php ( include_once 'go/menu.php';) to czy w pliku menu.php powinienem dodawać session_start(); i sprawdzać je za pomocą pliku sesje.php? i tak w każdym przypadku czyli każdy plik do którego jest odnośnik w menu? Pytam bo pliki ładuje do głownego pliku index.php za pomocą tego kodu z index.php:
<div class="content">'; if (isset( $_GET['id'])){ $nr = $_GET['id']; include_once "go/$nr"; }
I potem z danej pod strony mam odnośniki czy formularze które prowadzą do następnych pod stron czy danych pobieranych z bazy ale wszystko ląduje do index.php do konkretnego diva.
2. Jak powinna wyglądać struktura tych plików? Plik login.php w kórym jest formularz logowania w głównym katalogu wraz z index.php czy bez niego? a pozostałe pliki już w pod katalogach? Czy powinny mieć inne prawa dostępu? Jeżeli tak to jakie żeby były wykonywalne tylko przez serwer?
Nigdy wcześniej nie pisałem takigo logowania więc proszę o wyrozumiałość i pomoc:) Z góry bardzo dziękuję
