Uwierzytelnianie użytkowników

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 :stuck_out_tongue:

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’]?