Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Sesje a baza danych
Forum PHP.pl > Forum > Przedszkole
phonnix
Witam.
Podczas tworzenia mojej strony napotkałem problem, podczas logowania użytkownika przypisywana jest sesja [zalogowany]!=1 i czy było by można zamiast "1" dać tam $id czyli przypisywano było id użytkownika, jak przypisać id użytkownika do sesji?
f1xer
tam gdzie sprawdzasz login i haslo (zapewne wyciagasz je z bazy) wyciagasz tez id i w momencie gdy stwierdzisz ze mozesz usera zalogować zmieniasz
  1. <?php
  2. $_SESSION['zalogowany']=1;
  3. ?>

na
  1. <?php
  2. $_SESSION['zalogowany']=$row['id'];
  3. ?>
phonnix
Nie działa sadsmiley02.gif
Ale nie chodzi mi dokładnie o to, żeby sesja nazywała się $id, chce żeby w sesji zapisywało dane gracza i później żeby z bazy wyciągnąć np jego login, "SELECT * FROM konta WHERE (i niewiem co tu dać)"

  1. <?  require_once('config.php');?>
  2. <?
  3. $id = $_SESSION['zalogowany']!=$row['id'];
  4.  
  5. $user = mysql_query("SELECT * FROM konta WHERE id='$id'");
  6. $row = mysql_fetch_array($user);
  7. $email = $row['email'];
  8.  
  9. echo "$email";
  10.  
  11.  ?>
xbigos
  1. <?php
  2. $_SESSION['zalogowany'] = array('zalogowany' => true, 'uid' => $row['uid']);
  3. ?>

Odwołujesz się $_SESSION['zalogowany']['zalogowany] i $_SESSION['zalogowany']['uid']
phonnix
A podczas logowania co muszę dać?
xbigos
podczas logowania
  1. SELECT tabela_z_userami.uid FROM tabela_z_userami WHERE login='$login' AND password='$password' LIMIT 1


potem do $_SESSION['zalogowany']['user'] = $row['uid'];
phonnix
u mnie tabela z userami nazywa sie konta, ale poco po tym .uid?
xbigos
żebyś nie pobierał wszystkich danych o użytkowniku. Bo potrzebujesz tylko uid
phonnix
I nadal wyskakuje ten sam błąd

CODE
Warning: mysql_numrows(): supplied argument is not a valid MySQL result resource in *****/1/lol.php on line 8


Już nie wiem co mam robić

Logowanie:
CODE

require_once('config.php');
session_start();
session_register("zalogowany");

function ShowLogin($komunikat=""){
echo "";
echo "Login
";
echo "Hasło
";
echo "";
echo "";
echo "&nbsp;&nbsp;$komunikat
";
echo "
";
}

?>if($_GET["wyloguj"]=="tak"){$_SESSION["zalogowany"];echo "Zostałe¶ pomy¶lnie wylogowany!";}
if($_SESSION['zalogowany']['user'] = $row['id']){
if(!empty($_POST["nick"]) && !empty($_POST["haslo"])){
if(mysql_num_rows(mysql_query("select konta.id from konta where nick = '".htmlspecialchars($_POST["nick"])."' AND haslo = '".htmlspecialchars($_POST["haslo"])."' LIMIT 1"))){
echo "Zalogowano poprawnie.";
$_SESSION['zalogowany']['user'] = $row['id'];
}
else echo ShowLogin("Zły login lub hasło!");
}
else ShowLogin();
}
else{
?>
Konto

Wyloguj się


}
?>


Plik lol.php

CODE

$id = $_SESSION['zalogowany'] = array('zalogowany' => true, 'id' => $row['id']);


$user = mysql_query("SELECT * FROM konta WHERE id='$id'");
$row = mysql_fetch_array($user);
$email = $row['email'];

echo "$email";

?>
xbigos
  1. <?php
  2. $sql = "SELECT konta.id FROM konta WHERE nick='$nick' AND password='$password' LIMIT 1"
  3. // zapytanie "POBIERZ id użytkownika z tabeli konta gdzie nick jest równe $nick ORAZ ( I ) haslo jest równe 
  4. //$password z ograniczeniem do pierwszego znalezionego rekordu 
  5. $query = mysql_query($sql);
  6.  
  7. $isUser = mysql_num_rows($query); // sprawdz czy istnieje taki user
  8.  
  9. if($isUser == 1){//jesli tak
  10. $_SESSION['zalogowany']['zalogowany'] = true; //ustaw zmienna zalogowany na true
  11. $userInfo = mysql_fetch_array($query); // pobierz info o userze
  12. $_SESSION['zalogowany']['id'] = $userInfo['id']; // do zmiennej $_SESSION['zalogowany']['id'] przypisz unikalny id
  13. }else{
  14. echo 'Nie można się zalogować'; // jesli nie to wyswietl komunikat
  15. }
  16. ?>

Mało estetyczne ale wydaje mi się, że powinieneś zrozumieć.
phonnix
Loguje dobrze ale w pliku lol.php jest błąd w tej lini $email = $row['email'];
xbigos
błąd to znaczy? może nie pobierasz emaila z bazy
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.