index.php (wariant nr 1):
<?php
session_start();
include 'db.php';
if(isset($_SESSION['user_id'])){
include "profil.php";
else
include "index.php";
}
?>
<!DOCTYPE html>
.....................
.....................
index.php (wariant nr 2):
<?php
session_start();
require 'db.php';
if(isset($_SESSION['user_id'])){
$records = $conn->prepare('SELECT id,email,password FROM users WHERE id = :id');
$records->bindParam(':id', $_SESSION['user_id']);
$records->execute();
$results = $records->fetch(PDO::FETCH_ASSOC);
$user = NULL;
if(count($results) > 0){
$user = $results;
}
}
?>
<!DOCTYPE html>
.....................
.....................
db.php (wariant nr 1):
<?php
$db_host = 'localhost';
$db_name = 'nazwa_bazy';
$db_user = 'user';
$db_pass = 'password';
$db_charset = 'utf8';
try
{
$db = new PDO('mysql:dbname='.$db_name.';host='.$db_host.';charset='.$db_charset.';', $db_user, $db_pass);
}
catch(PDOException $e)
{
die($e->getMessage());
}
?>
db.php (wariant nr 2):
<?php
$server = 'localhost';
$username = 'root';
$password = 'root';
$database = 'auth';
try{
$conn = new PDO("mysql:host=$server;dbname=$database;", $username, $password);
} catch(PDOException $e){
die( "Połączenie nie powiodło się: " . $e->getMessage());
}
profil.php (skrypt z zalogowanym użytkownikiem)
if ((isset($_SESSION['zalogowany'])) && ($_SESSION['zalogowany']==true)) {
echo "<li><a id='$btnId' href='profile.php?user=$_SESSION[id]'>WITAJ ".$_SESSION['user']."</a></li>
<li id='login'><a href='logout.php'>WYLOGUJ SIĘ</a></li>";
}
else {
echo "<li id='register'><a id='regLink' href='register.php'>REJESTRACJA</a></li>
<li id='login'><a id='logLink' href='logowanie.php'>ZALOGUJ SIĘ</a></li>";
}
Skrypt profil.php będę jeszcze lekko modyfikował. Zamiast true (brak błędów, ale i brak wyniku) będę wpisywał jeszcze inne konwersje, np. false (w przypadku jakiegoś błędu, niepowodzenia - przerwanie operacji) albo ewentualnie wartości liczbowe -1, 0, 1.
W praktyce strona ma działać w ten sposób:
Strona główna index.php na górze po prawej posiada przyciski [Kontakt] i [Logowanie]. Po kliknięciu na [Logowanie] wyskakuje mi pole, które zawiera:
1. pole formularza z możliwością wpisania loginu (nazwy użytkownika)
2. pole formularza z możliwością wpisania hasła
3. przycisk LOGOWANIE
4. przycisk REJESTRACJA (to już inny temat).
Skrypt profil.php z zalogowanym użytkownikiem ma wyglądać tak:
Na górze po prawej ma być tylko ikonka, a pod nią NAZWA UŻYTKOWNIKA. Gdy kliknę na tę ikonkę, to chciałbym, aby wyskoczyło mi małe pole, które będzie zawierało:
1. Witaj NAZWA UŻYTKOWNIKA
2. przycisk WYLOGUJ (po jego kliknięciu ma być powrót do strony głównej - index.php).
Który z podanych powyżej skryptów jest lepszy i bezbłędny?