Poniżej zamieściłem skrypt, który stosuję do logowania na podstawie bazy. Co o nim myślicie? Czy Waszym zdaniem warto coś poprawić, usprawnić w jakiś sposób? Może nie jest zbyt bezpieczny?
<?php
include "config.inc.php";
?>
<!-- ZALOGUJ I USTAW ZMIENNE SESYJNE -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<meta name="pragma" content="no-cache" />
<title>Logowanie...</title>
<link rel="stylesheet" type="text/css" href="autoryzacja.css" />
</head>
<body>
<?php
//Połączenie z bazą danych
or
die ("Nie udało się połączyć z bazą danych! BَD: ".mysql_error()); //Wybór bazy danych
//Zapytanie o login i hasło
$query = "SELECT * FROM konto WHERE login='".$_POST['logid']."';";
//Sprawdzenie czy podany login i hasło są poprawne
if (MD5($_POST['pas']) == $query_data[2]) {
//Udana autoryzacja
if ( ($query_data[3] == 0) OR (($query_data[3] == 3)) )
{
//Zapytanie o dane osoby zalogowanej z tabeli pracownika
$query = "SELECT konto.konto_id, login, haslo, kto, imie, nazwisko FROM konto, pracow
nik ".
"WHERE login='".$_POST['logid']."' AND konto.konto_id=pracownik.konto_id;";
$ID = $query_data[0];
$_SESSION['id'] = $query_data[0]; //Konto_id
$_SESSION['nick'] = $query_data[1]; //Login
$_SESSION['haslo'] = $query_data[2]; //Hasło
$_SESSION['kto'] = $query_data[3]; //Pracownik czy klient?
$_SESSION['imie'] = $query_data[4]; //Imie
$_SESSION['nazwisko'] = $query_data[5]; //Nazwisko
//------------------->ROZPOCZCIE TRANSAKCJI
$query = "BEGIN WORK";
//Dodanie daty i godziny logowania
$query = "INSERT INTO logi (konto_id, data_log, godzina_log) VALUES ($ID,CURDATE(),CURTIME());";
//-------------------> ZATWIERDZENIE TRANSAKCJI
$query = "COMMIT";
//Sprawdzenie wartości klucza logi_id
$query = "SELECT LAST_INSERT_ID()";
$_SESSION['id_logi'] = $query_data[0]; //Logi_id
//Zamknięcie połączenia z bazą danych
header("location: start.php?".SID
); }
else
{
//Zapytanie o dane osoby zalogowanej z tabeli klienta
$query = "SELECT konto.konto_id, login, haslo, kto, imie, nazwisko FROM konto, klient
".
"WHERE login='".$_POST['logid']."' AND konto.konto_id=klient.konto_id;";
$ID = $query_data[0];
$_SESSION['id'] = $query_data[0]; //Konto_id
$_SESSION['nick'] = $query_data[1]; //Login
$_SESSION['haslo'] = $query_data[2]; //Hasło
$_SESSION['kto'] = $query_data[3]; //Pracownik czy klient?
$_SESSION['imie'] = $query_data[4]; //Imie
$_SESSION['nazwisko'] = $query_data[5]; //Nazwisko
//------------------->ROZPOCZCIE TRANSAKCJI
$query = "BEGIN WORK";
//Dodanie daty i godziny logowania
$query = "INSERT INTO logi (konto_id, data_log, godzina_log) VALUES ($ID,CURDATE(),CURTIME());";
//-------------------> ZATWIERDZENIE TRANSAKCJI
$query = "COMMIT";
//Sprawdzenie wartości klucza logi_id
$query = "SELECT LAST_INSERT_ID()";
$_SESSION['id_logi'] = $query_data[0]; //Logi_id
//Zamknięcie połączenia z bazą danych
header("location: start.php?".SID
); }
}
else
{
// Zły login lub hasło
?>
<br><br><br><br><br><br><br><br><br>
<table width="80%" align="center" border="0" cellpadding="14">
<tr>
<td><h2 class="error">Podałeś zły login lub hasło!</h2></td>
</tr>
</table>
<?php
echo "<META HTTP-EQUIV='Refresh' CONTENT='3; URL=main.php'>"; }
?>
</body>
</html>
Ten post edytował J4r0d 14.05.2006, 22:49:22