Witam
Mam mały problem dotyczący uwierzytelniania użytkowników a dokładnie chodzi mi o to aby user który się nie zalogował nie miał dostępu do podstron a przy próbie wejścia na podstronę żeby system mu wysyłał informację ze musi się zalogować najlepiej aby skrypt był pisany w php 4 i proszę nie pisać żebym poszukał w google bo szukałem i nic nie mogę tam znaleść
z góry dziekuję za jakąkolwiek pomoc.
To zaczyna się od sprawdzenia sesji czy istnieje. Jeśli nie istnieje to wyświetla się komunikat zaloguj itd a jeśli istnieje to wyświetla się kod strony. NP
if (isset($_SESSION['cos_tam'])) {
//Wyswietlanie strony
} else {
Zaloguj się aby zobaczyć stronę
}
I po problemie
czyli zrobic to tak ??
W pliku odpowiadającym za logowanie (nie formularz)
session_start();
if(/*wypelniono dobrze formularz */) {
$_SESSION['login'] = $_POST['login'];
$_SESSION['haslo'] = $_POST['haslo'];
//reszta
} else {
//Musisz sie zalogowac
}
W pliku na przykład pa.php
session_start();
if($_SESSION['login'] && $_SESSION['haslo']) {
dla zalogowanego
} else {
formularz :P
}
login.php:
<?php
session_start();
define("db_host", "localhost");
define("db_user", "Mazur");
define("db_pass", " *****");
define("db_name", "admin");
mysql_connect(db_host, db_user, db_pass);
mysql_select_db(db_name);
$user_name = mysql_real_escape_string(trim($_POST['user_name']));
$user_pass = mysql_real_escape_string(trim(md5($_POST['user_pass'])));
$wynik = mysql_query("SELECT * FROM users WHERE user_name = \"$user_name\" AND user_pass = \"$user_pass\";");
if($user_name && $user_pass) {
if($row = mysql_fetch_array($wynik)) {
$userdata['level'] = $row['level'];
$_SESSION['user_name'] = $row['user_name'];
$_SESSION['user_pass'] = $row['user_pass'];
$_SESSION['level'] = $row['level'];
$_SESSION['data'] = $row['data'];
$_SESSION['gg'] = $row['gg'];
header("Location: index.php");
} else {
echo('Blad logowania');
}
} elseif($_POST['user_name']) {
echo('Wypelnij wszystkie pola!');
} elseif($_POST['user_pass']) {
echo('Wypelnij wszystkie pola!');
}
?>
index php :
<?php
session_start();
define("db_host", "localhost");
define("db_user", "Mazur");
define("db_pass", "***");
define("db_name", "admin");
mysql_connect(db_host, db_user, db_pass);
mysql_select_db(db_name);
if($_SESSION['user_pass'] && $_SESSION['user_name']) {
if($_GET['log'] == "") {
echo("Witaj " . $_SESSION['user_name'] . "
");
echo("Data: " . $_SESSION['data'] . "
gg: " . $_SESSION['gg'] . "
");
echo('Wyloguj
');
} elseif($_GET['log'] == "logout") {
session_destroy();
echo('Zostales wylogowany !');
}
} else {
echo('');
echo('Login:
');
echo('Haslo:
');
echo('');
echo('');
}
?>[/code]
bedę wdzieczny za podpowiedz czy to ma mniej więcej tak wyglądać??
Ten formularz
session_start();
if(/*wypelniono dobrze formularz */) {
$_SESSION['login'] = $_POST['login'];
$_SESSION['haslo'] = $_POST['haslo'];
//reszta
} else {
//Musisz sie zalogowac
}
To raczej nie ale za to ten
session_start();
if($_SESSION['login'] && $_SESSION['haslo']) {
dla zalogowanego
} else {
formularz :P
}
Bym dodał te isset() bo trzeba sprawdzić czy sesja jest czy nie 
Podobnie robi się z wypełnianiem formularzy jedni korzystają z isset() a drudzy z empty()
Czyli if (isset($_SESSION[login])… itd) {
strona
} else {
komunikat
}
wrzucile na strone html do ktorej moze wejsc tylko osoba zalogowanie i ze nie dziala co może być przyczyną ??
session_start();
if(isset$_SESSION['username'] && $_SESSION['password']) {
dla zalogowanego
} else {
Musisz sie zalogowac
}
nie jestem za dobry w tym a siedze już nad tym problemem kilka dni
i nic mi nie wychodzi mógłbyś coś jeszcze podpowiedzieć?
A to jak coś to jest rozpoczęta sesja czyli inaczej czy da się odczytać dane np z $_SESSION[‘username’]?