Mam coś takiego:
plik index.php
require_once("config.php");
require_once("classes.php");
$user = new user($_SESSION['user_id']);
$_SESSION['user_id'] = $user->return_user_id();
if ($user->check_perm(1)){
// kod strony po zalogowaniu
}
construct dla klasy:
function __construct($session){
if ($_POST['log']) {
$this->user_id = $this->log_in($_POST['login'], $_POST['password']);
}
elseif ($session) {
$this->user_id = $session;
}
else {
$this->login_form();
}
Metod login_form() i log_in() już nie podaję, bo to standardowy formularzyk i sprawdzanie loginu i hasła.
W każdym razie chciałbym zabezpieczyć mechanizm $_POST przed "podsłuchaniem", gdy dane do logowania będą leciały z mojej przeglądarki na serwer www. Lub najchętniej to wymusić https podczas przeglądania wszystkich podstron.
Próbowałem wymusić przekierowanie na https i niby to działa, ale ostatecznie nie odnajduje strony (to serwer o12.pl i ma dostępne SSL).
if($_SERVER['HTTPS']!="on")
{
$redirect= "https://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
}
Nie wiem czy trzeba dla strony otrzymać swój własny certyfikat, czy można w jakiś sposób podczepić się pod certyfikat serwera. No i czy trzeba jakoś "włączyć" SSL na koncie serwera.