Witajcie. Napisałem sobie skrypt logowania. I po części działa. Mam dwie tabele:
administratorzy
id | admin_login | admin_password | admin_name
i adekwatnie tabela uzytkownicy
id | user_login | user_password | user_name
Loguje się jako administrator i działa, ale mam 2 problemy, które sprawiają mi trochę problemów.
1. Jak wyciągać dane z bazy. Mam komunikat, że jest zalogowany (pole login) np. admin, a jak wyciągnąć z bazy np. admin_name, próbowałem z <input type="hidden" /> ale chciałbym, aby takie info pochodziło z sesji. Chciałbym takie dane wyciągać z bazy aby np. móc potem je edytować.
2. Jak za pomocą jednego skryptu móc logować administratora i użytkownika. Mam taki skrypt i pisze mi, że mam błąd loginu, mimo iż wpisuję poprawne dane. Czy chodzi o przypisanie danych?
Podaje mój kod:
<?php
function login_form ()
{
echo '<form action="index.php?id=logowanie" method="Post" > <fieldset class="przesyl_plikow">
<legend><strong>Logowanie do serwisu</strong></legend>
<div class="login_main">
<div class="log_form">
<input type="hidden" name="admin_name" id="admin_name" />
</div>
<div class="log_form">
Login: <input name="login" type="text" id="login">
</div>
<div class="log_form">
Hasło: <input name="password" type="password" id="password">
</div>
<div class="log_form">
<input type="submit" name="submit" value="Zaloguj" title="zaloguj się" />
<input type="reset" name="reset" value="Wyczyść" title="wyczyść pola" />
</div>
</div>
</fieldset>
</form>';
}
if($_GET['wyloguj']=='tak')
{
$_SESSION['zalogowany'] = 0;
echo 'Zostałeś wylogowany z serwisu!'; }
if(isset($_POST['submit'])) {
//Zmiana wszystkich zmiennych przekazywanych $_POST
foreach ($_POST AS $klucz => $wartosc)
{
$wartosc = trim($wartosc); $_POST[$klucz] = $wartosc;
}
//Dane z $_POST do wysłania w formularzu
////Dane do zalogowania jako Administrator
////////////////////////////////
$admin_login = $_POST['login'];
$admin_password = $_POST['password'];
$admin_name = $_POST['admin_name'];
////Dane do zalogowania jako Użytkownik
/////////////////////////////////////////////////////////////
$user_login = $_POST['login'];
$user_password = $_POST['password'];
{
echo 'Błąd loginu lub hasła!'; }
else if (empty($user_login) && empty($user_password)) {
echo 'Błąd loginu lub hasła!'; }
else if (!empty($admin_login) && !empty($admin_password)) {
///Zalogowanie administratora
$sql = "SELECT * FROM administratorzy WHERE admin_login='$admin_login' and admin_password='$admin_password'";
if($count==1)
{
$_SESSION['zalogowany'] = 'tak';
$_SESSION['admin_login'] = $admin_login;
$_SESSION['admin_name'] = $admin_name;
Jesteś zalogowany jako '.$_SESSION['admin_name'].' | Twój login: '.$_SESSION['admin_login'].'
<a href="index.php?id=logowanie&wyloguj=tak">Wyloguj</a>
</div>';
}
else
{
echo 'Błędny login lub hasło'; }
}
else if(!empty($user_login) && !empty($user_password)) {
//Zalogowanie użytkownika
$sql = "SELECT * FROM uzytkownicy WHERE user_login='$user_login' and user_password='$user_password'";
if($count==2)
{
$_SESSION['zalogowany'] = 'tak';
$_SESSION['user_login'] = $user_login;
$_SESSION['user_name'] = $user_name;
Jesteś zalogowany jako '.$_SESSION['user_name'].' | Twój login: '.$_SESSION['user_login'].'
<a href="index.php?id=logowanie&wyloguj=1">Wyloguj</a>
</div>';
}
else
{
echo 'Błędny login lub hasło'; }
}
else
{
}
}
else {
'Błąd logowanie';
}
?>
3. Chodziłby mi też o logowanie z warunkami, np. nie zaloguje użytkownika jeżeli jest zablokowany.