hoolygaan
9.05.2009, 07:21:14
Witam jestem w temacie początkujący więc stąd to pytanie.
Wspomnę na początku, że to ma być praca semestralna.
Zrobiłem stronę internetową w HTML, ale chciałbym żeby obejrzeć jej zawartość można by było dopiero po zalogowaniu się do serwisu. Szukałem w Googlach, ale niestety rozwiązania, które tam znalazłem były dla mnie zbyt skomplikowane. Do serwisu mogłyby się zalogować tylko 2 osoby: admin i student.
Pozdrawiam serdecznie
korkie
9.05.2009, 09:59:38
Wersja przy wykorzystaniu MySQL
<? $pol=mysql_connect( host, uzytkownik, haslo );
if( !pol )
{
echo "Baza danych nie odpowiada.";
return false;
}
$a = "CREATE DATABASE IF NOT EXISTS 'nazwa_bazy_danych' DEFAULT CHARACTER SET utf8 COLLATE utf8_polish_ci ";
$b = mysql_query($a);
echo (int)$b;
mysql_select_db( 'nazwa_bazy_danych' );
$a = " CREATE TABLE IF NOT EXISTS 'logowanie' (
id' INT NOT NULL AUTO_INCREMENT,
'user' VARCHAR (25) NOT NULL,
'password' VARCHAR (25) NOT NULL,
PRIMARY KEY ( 'id' )
) engine = MyISAM ";
$b = mysql_query($a);
echo (int)$b;
$a = "INSERT INTO 'logowanie' ( id, user, password) VALUES ('', 'admin', 'hasło_admina'), ('', 'student', 'hasło_studenta)"; # Uwaga tu są dwa apostrofy '', a nie cudzysłów!
$b = mysql_query($a);
echo (int)$b;
?>
<form action="plik.php" method="post">
<input type="text" name="logowanie">
<input type="password" name="haslo">
<input type="submit" value="Zaloguj">
<?php
$logowanie = $_POST['logowanie'];
$haslo = $_POST['haslo'];
$a=" SELECT * FROM 'logowanie'"
$b = mysql_query($a);
echo int($b);
while ($w = mysql_fetch_array($b) )
{
if ($logowanie != $w['user'] or $haslo !='$w['password'])
{
echo 'Nieprawidłowy login lub hasło';
exit;
}
else
{
echo 'Zalogowano';
}
}
O co chodzi:
Musisz mieć bazę danych, gdzie będą przechowywane loginy i hasła osób dostępnych.
Chyba, że chcesz to trzymać w pliku, ale zapewniam cię, że to zły pomysł.
Funkcja echo int($b); - wyświetla nam 0 lub 1 (false lub true) i mówi , czy zapytanie do bazy danych powiodło się.
Bez stosowania tego przy zabawach z bazą danych możesz myśleć, że wszystko robisz dobrze a cos nie działa.
Tak więc jeśli wyświetli 0 sprawdź zapytanie ($a).
Jeśli już wyświetli jedynkę możesz skasować z kodu echo int($b);
A teraz wersja łatwiejsza, bo nie wiem, czy znasz choć trochę MySQL.
<?php
$login1 = "admin";
$login2 = "student";
$haslo1 = "hasło1";
$hasło2 = "hasło2";
?>
<form action="plik.php" method="post">
<input type="text" name="logowanie">
<input type="password" name="haslo">
<input type="submit" value="Zaloguj">
<?php
$logowanie = $_POST['logowanie'];
$haslo = $_POST['haslo'];
if ($logowanie != $login1 or $logowanie !=$login2 or $password != $haslo1 or $password != $haslo2)
{
echo 'Niepoprawny login lub hasło';
exit;
}
Sory za literówki jeśli się jakieś zdarzą, ale jestem w pracy i się spieszę.
Jak są jakieś pytania to sprubuję odpisac później.
hoolygaan
9.05.2009, 16:44:26
Wielkie dzięki o to mi chodziło

Pozdrawiam
korkie
9.05.2009, 19:13:22
Nie ma sprawy.
Jak by były jakieś niejasności, a gruby szef nie będzie widział, że cos klikam "po za obowiazkami"
chetnie pomogę.
pozdrawiam