Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL]Sesje a baza danych
phonnix
post 28.08.2008, 07:22:10
Post #1





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 30.07.2008

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
f1xer
post 28.08.2008, 07:25:28
Post #2





Grupa: Zarejestrowani
Postów: 403
Pomógł: 68
Dołączył: 20.03.2008

Ostrzeżenie: (0%)
-----


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. ?>


--------------------
Pomogłem? wyraź to i kliknij "Pomógł"
Go to the top of the page
+Quote Post
phonnix
post 28.08.2008, 09:22:15
Post #3





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 30.07.2008

Ostrzeżenie: (0%)
-----


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.  ?>
Go to the top of the page
+Quote Post
xbigos
post 28.08.2008, 09:26:42
Post #4





Grupa: Zarejestrowani
Postów: 239
Pomógł: 27
Dołączył: 13.07.2005
Skąd: Jarocin

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $_SESSION['zalogowany'] = array('zalogowany' => true, 'uid' => $row['uid']);
  3. ?>

Odwołujesz się $_SESSION['zalogowany']['zalogowany] i $_SESSION['zalogowany']['uid']

Ten post edytował xbigos 28.08.2008, 09:27:43


--------------------
Go to the top of the page
+Quote Post
phonnix
post 28.08.2008, 09:31:23
Post #5





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 30.07.2008

Ostrzeżenie: (0%)
-----


A podczas logowania co muszę dać?
Go to the top of the page
+Quote Post
xbigos
post 28.08.2008, 09:34:15
Post #6





Grupa: Zarejestrowani
Postów: 239
Pomógł: 27
Dołączył: 13.07.2005
Skąd: Jarocin

Ostrzeżenie: (0%)
-----


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'];

Ten post edytował xbigos 28.08.2008, 09:34:50


--------------------
Go to the top of the page
+Quote Post
phonnix
post 28.08.2008, 09:39:31
Post #7





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 30.07.2008

Ostrzeżenie: (0%)
-----


u mnie tabela z userami nazywa sie konta, ale poco po tym .uid?
Go to the top of the page
+Quote Post
xbigos
post 28.08.2008, 09:40:48
Post #8





Grupa: Zarejestrowani
Postów: 239
Pomógł: 27
Dołączył: 13.07.2005
Skąd: Jarocin

Ostrzeżenie: (0%)
-----


żebyś nie pobierał wszystkich danych o użytkowniku. Bo potrzebujesz tylko uid


--------------------
Go to the top of the page
+Quote Post
phonnix
post 28.08.2008, 09:53:54
Post #9





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 30.07.2008

Ostrzeżenie: (0%)
-----


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";

?>
Go to the top of the page
+Quote Post
xbigos
post 28.08.2008, 10:01:57
Post #10





Grupa: Zarejestrowani
Postów: 239
Pomógł: 27
Dołączył: 13.07.2005
Skąd: Jarocin

Ostrzeżenie: (0%)
-----


  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ć.

Ten post edytował xbigos 28.08.2008, 10:05:10


--------------------
Go to the top of the page
+Quote Post
phonnix
post 28.08.2008, 10:27:59
Post #11





Grupa: Zarejestrowani
Postów: 49
Pomógł: 0
Dołączył: 30.07.2008

Ostrzeżenie: (0%)
-----


Loguje dobrze ale w pliku lol.php jest błąd w tej lini $email = $row['email'];
Go to the top of the page
+Quote Post
xbigos
post 28.08.2008, 14:08:49
Post #12





Grupa: Zarejestrowani
Postów: 239
Pomógł: 27
Dołączył: 13.07.2005
Skąd: Jarocin

Ostrzeżenie: (0%)
-----


błąd to znaczy? może nie pobierasz emaila z bazy


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.07.2025 - 09:50