Mam taki sobie skrypt logowania wykorzystujący bazę danych MySQL:
<?php
class clogowanie {
var $login; // przechowuje nazwę użytkownika
var $passw; // hasło
var $conn; // identyfikator bd
var $text; // małe menu
var $napis; // informacja o dodanym userze
function clogowanie() {
// zczytywanie wartości zmiennych
@$this -> passw = $_POST['passw'];
@$this -> login = $_POST['login'];
}
function flaczenie() {
// łaczenie z bazą danych
$this -> conn
= @mysql_connect("127.0.0.1","root","krasnal"); // te trzy parametry nalezy zmienić }
function flogowanie() {
// sprawdzanie czy jest taki user w BD i czy ma takie hasło
$query = "SELECT passw FROM users WHERE user LIKE '".$this -> login."';"; // zapytanie do bd
if ($myrow["passw"] == $this -> passw && $this -> passw != "") {
'login' => $this -> login,
'czas' => time() + 300
); $_SESSION["yarpoLOG"] = $info;
} else {
header('Location: index.htm'); }
}
function flogout() {
// wylogowane
header('Location: index.htm'); }
function fsesja() {
// ponawianie sesji
if (!isset($_SESSION['yarpoLOG'])) { header('Location: index.htm'); // jeśli nie ma sesji[niezalogowany], to ładuj index.htm } else {
if ($_SESSION['yarpoLOG']['czas'] > time()) : // jeśli od logowania do teraz minęło < 300 $this->text="<p class=log01><a href='wyloguj.php' class='log02'>wyloguj: ".$_SESSION['yarpoLOG']['login']."</a></p>".
"<p class=log01><a href='menu.php' class='log02'>odśwież</a></p>";
$_SESSION['yarpoLOG']['czas'] = time() + 300; // i zapisz nowe info else :
header('Location: index.htm'); endif;
}
}
function fdodajUsera() {
$query = "INSERT INTO users (user, passw) VALUES ('".$this -> login."', '".$this -> passw."');";
if (mysql_query($query)) $this -> napis
= "Poprawnie dodano uzytkownika"; else $this -> napis = "Nie udało się dodać użytkownika:-(";
}
} // koniec klasy
?>
[tutaj obsługuje się logowanie, wylogowywanie i dodawanie usera]ale nie posiadam bazy MySQL a jedynie SQLite, więc myśle to SQL i to SQL więc sobie przerobie skrypta ;-) Wyszło mi coś takiego:
<?php
class clogowanie {
var $login; // przechowuje nazwę użytkownika
var $passw; // hasło
var $conn; // identyfikator bd
var $text; // małe menu
var $napis; // informacja o dodanym userze
function clogowanie() {
// zczytywanie wartości zmiennych
@$this -> passw = $_POST['passw'];
@$this -> login = $_POST['login'];
}
function flaczenie() {
// łaczenie z bazą danych
$this -> conn = sqlite_open('books.db');
}
function flogowanie() {
$query = "SELECT passw FROM users WHERE user LIKE '".$this -> login."';"; // zapytanie do bd
$wynik = sqlite_query($query);
$myrow = sqlite_fetch_array($wynik); // to go zczytaj
if ($myrow["passw"] == $this -> passw && $this -> passw != "") {
'login' => $this -> login,
'czas' => time() + 300
); $_SESSION["yarpoLOG"] = $info;
} else {
header('Location: index.htm'); }
}
function flogout() {
// wylogowane
header('Location: index.htm'); }
function fsesja() {
// ponawianie sesji
if (!isset($_SESSION['yarpoLOG'])) { header('Location: index.htm'); // jeśli nie ma sesji[niezalogowany], to ładuj index.htm } else {
if ($_SESSION['yarpoLOG']['czas'] > time()) : // jeśli od logowania do teraz minęło < 300 $this->text="<p class=log01><a href='wyloguj.php' class='log02'>wyloguj: ".$_SESSION['yarpoLOG']['login']."</a></p>".
"<p class=log01><a href='menu.php' class='log02'>odśwież</a></p>";
$_SESSION['yarpoLOG']['czas'] = time() + 300; // i zapisz nowe info else :
header('Location: index.htm'); endif;
}
}
function fdodajUsera() {
$query = "INSERT INTO users (user, passw) VALUES ('".$this -> login."', '".$this -> passw."');";
if (mysql_query($query)) $this -> napis
= "Poprawnie dodano uzytkownika"; else $this -> napis = "Nie udało się dodać użytkownika:-(";
}
} // koniec klasy
?>
ale jednak taki skrypt nie działa... zwraca mi:
Cytat
Warning: sqlite_query() expects at least 2 parameters, 1 given in c:\usr\krasnal\www\sqlitemanager\skrypt\classLogowanie.php on line 26
Warning: sqlite_fetch_array() expects parameter 1 to be resource, null given in c:\usr\krasnal\www\sqlitemanager\skrypt\classLogowanie.php on line 27
Warning: Cannot modify header information - headers already sent by (output started at c:\usr\krasnal\www\sqlitemanager\skrypt\classLogowanie.php:26) in c:\usr\krasnal\www\sqlitemanager\skrypt\classLogowanie.php on line 36
Co tam jest źle? Mógłby mi ktoś pomóc to przerobić....
Albo zapodać inny skrypt logowania na SQLite.
Z góry dziękuje.