[php][mysql]Cookies i id z bazy
: sob lip 09, 2005 6:50 pm
Witajcie, to znowu ja i moje problemy
Dobra, przejdźmy do rzeczy. Mam następujący problem:
Chciałem zrobić formularz logowania, który potem w cookies będzie trzymał id zalogowanego usera z bazy, ale napotkałem się na taki problem:
W pliku login.php wstawiony mam taki fragment kodu:
[php]<?php
$give_id = mysql_query("SELECT id FROM " .$prefix. "users WHERE (username = '$username') AND (pass = '$haslo')");
$user_id = mysql_num_rows($give_id);
setcookie("logged", 2, time()+3600);
setcookie("login", $user_id, time()+3600);
echo "Logowanie zakończone powodzeniem<BR>Kliknij <a href=index.php>Tutaj</a>, aby wejść na stronę główną.";
mysql_close();
?>[/php]
A w pliku index.php:
[php]<?php
IF ($_COOKIE[logged]!=2) {
echo "<CENTER><a href=login.php>Zaloguj</a><BR>";
echo "<a href=register.php>Rejestracja</a><BR></CENTER>";
require "includes/page_footer.php";
}
IF ($_COOKIE[logged]==2) {
$userdata[id] = $_COOKIE[login];
$sql[username] = "SELECT username FROM " .$prefix. "users WHERE (id = '$userdata[id]')";
$userdata[username] = mysql_num_rows(mysql_query($sql[username]) );
echo "<CENTER><a href=login.php?logout=1&login=2>Wyloguj</a><BR>";
echo "Witaj, " .$userdata[username]. " na forum.<BR> Miłego testu.</CENTER>";
require "includes/page_footer.php";
}
?>[/php]
To były fragmenty kodów tych plików, a teraz opis problemu:
W pliku login.php ciasteczko 'login' powinno mieć wartość zmiennej $user_id, która pobiera id aktualnie logującego się usera z bazy.
I tu jest problem, bezwzględu na to jaki user się zaloguje, wartość ciasteczka 'login' będzie wynosiła ID pierwszego usera!!!
Jak poprawić ten kod, aby wartość ciasteczka 'login' wynosiła ID obecnie logującego się usera, a nie admina??
Bardzo proszę o pomoc.
Dobra, przejdźmy do rzeczy. Mam następujący problem:
Chciałem zrobić formularz logowania, który potem w cookies będzie trzymał id zalogowanego usera z bazy, ale napotkałem się na taki problem:
W pliku login.php wstawiony mam taki fragment kodu:
[php]<?php
$give_id = mysql_query("SELECT id FROM " .$prefix. "users WHERE (username = '$username') AND (pass = '$haslo')");
$user_id = mysql_num_rows($give_id);
setcookie("logged", 2, time()+3600);
setcookie("login", $user_id, time()+3600);
echo "Logowanie zakończone powodzeniem<BR>Kliknij <a href=index.php>Tutaj</a>, aby wejść na stronę główną.";
mysql_close();
?>[/php]
A w pliku index.php:
[php]<?php
IF ($_COOKIE[logged]!=2) {
echo "<CENTER><a href=login.php>Zaloguj</a><BR>";
echo "<a href=register.php>Rejestracja</a><BR></CENTER>";
require "includes/page_footer.php";
}
IF ($_COOKIE[logged]==2) {
$userdata[id] = $_COOKIE[login];
$sql[username] = "SELECT username FROM " .$prefix. "users WHERE (id = '$userdata[id]')";
$userdata[username] = mysql_num_rows(mysql_query($sql[username]) );
echo "<CENTER><a href=login.php?logout=1&login=2>Wyloguj</a><BR>";
echo "Witaj, " .$userdata[username]. " na forum.<BR> Miłego testu.</CENTER>";
require "includes/page_footer.php";
}
?>[/php]
To były fragmenty kodów tych plików, a teraz opis problemu:
W pliku login.php ciasteczko 'login' powinno mieć wartość zmiennej $user_id, która pobiera id aktualnie logującego się usera z bazy.
I tu jest problem, bezwzględu na to jaki user się zaloguje, wartość ciasteczka 'login' będzie wynosiła ID pierwszego usera!!!
Jak poprawić ten kod, aby wartość ciasteczka 'login' wynosiła ID obecnie logującego się usera, a nie admina??
Bardzo proszę o pomoc.