Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][MySQL]Pobieranie danych z bazy po zalogowaniu
Forum PHP.pl > Forum > PHP
SirSpec
Witam,

Na swojej stronie wykorzystałem skrypt rejestrujący i logujący. Wszystko fajnie działa.
Po zalogowaniu użytkownikowi wyświetlająsię dane: Login, Imię, Nazwisko, E-mail itp... i jest OK.
Jednak gdy sam chcę te dane "ukazać" w panelu użytkownika mam puste pola. Zapewne gdzieś wkradł sie błąd... ale nie jestem wstanie go zlokalizować, z góry dzięki za wszelką pomoc.

  1. <?php 
  2.  
  3. require_once ("/funkcje.php");
  4. {
  5.  
  6. $polaczenie=mysql_connect("bla,"bla","blag"); 
  7. mysql_select_db("baza1",$polaczenie);
  8.  
  9. $zapytanie1 = "SELECT login FROM users WHERE login = ".$_SESSION['user'];
  10. $wykonaj1 = mysql_query($zapytanie1);
  11. print "Twój Login: <b>".$tab_user['user']."</b><br>";
  12.  
  13.  
  14. }
  15. else { echo ('Zaloguj sie!'); }
  16. mysql_close($polaczenie);
  17.  
  18.  
  19. ?>


Oraz plik z funkcjami: (tylko fragment)
  1. <?
  2.  
  3. function logowanie($login, $haslo)
  4. {
  5. $polaczenie= pol_mysql();
  6. // sprawdzenie, czy login nie powtarza si?
  7. $wynik = mysql_query("select * from users where login='$login'");
  8. if(!$wynik)
  9. return "Problem: zapytanie z bazy nieudane";
  10. if (mysql_num_rows($wynik)== 0)
  11. {
  12. echo "<H3 ALIGN=center>Niema takiego u?ytkownika w bazie danych</h3>";
  13. wy_form_logo();
  14. }
  15. $tab_user = wynik_db_do_tablicy($wynik);
  16. $haslo = md5($haslo);
  17. if ($tab_user[0]['password'] != $haslo)
  18. {
  19. echo "<H3 ALIGN=center>Niepoprawne has?o</h3>";
  20. wy_form_logo();
  21. }
  22.  $user = $login;
  23.  //rejestrowanie danych sesji
  24.  session_register("user");
  25.  include ("./index.html");
  26.  echo "zalogowany jako: <b>" .$user."</b>, 
  27.  twoje gg <b>".$tab_user[0]['gg']."</b><br>, 
  28.  twoje imi? <b>".$tab_user[0]['name']."</b><br>, 
  29.  twoje nazwisko <b>".$tab_user[0]['surname']."</b><br>";
  30.  
  31.  echo "<a href=../index.php>Powrót</a>";
  32.  
  33.  
  34. } 
  35. ?>


Probowałem to samo w innym kodzie. Mój problem polega chyba na tym iż niepotrafię "pokazać" danych z tabeli po zamknięciu pętli.

Próbowałem z innym kodem:

  1. <?php
  2. while($wiersz = mysql_fetch_array($wynik))
  3. {
  4. print "Mail".$wiersz['mail']."<br>";
  5.  
  6. }
  7. $mail = $wiersz['mail'];
  8. echo "Mail:".$mail;
  9. ?>


I echo mi wychodzi puste. Gdzie popełniam błąd questionmark.gif
krowal
Powinieneś zadeklarować zmienną przed pętlą, a będzie ona dostępna poza ciałem pętli, czyli:
  1. <?php
  2. $wiersz = array(); //zmienna znajduje się poza ciałem pętli
  3. while($wiersz = mysql_fetch_array($wynik))
  4. {
  5. print 'Mail'.$wiersz['mail'].'<br>';
  6.  
  7. }
  8. $mail = $wiersz['mail']; 
  9. echo 'Mail:'.$mail; // i teraz ci się wyświetli :)
  10. ?>
SirSpec
Niestety nierozwiązało to problemu :-\ Echo wciąż puste sad.gif
kallosz
a nie możesz zapisywać danych w sesji ?
SirSpec
niepomyślałem o tym (znam php bardzo krótko) więc chciałem to rozwiązać tą metodą.

Sesja będzie prostszym rozwiązaniem ?
kallosz
nie wiem czy prostszym. ale w skrypcie kożystasz z sesji to dlaczego nie podać w niej pare dodatkowych zmiennych questionmark.gif smile.gif

Jak uważasz smile.gif
SirSpec
Ahhhh ty mówisz o pierwszym skrypcie smile.gif Myślałem że o tym drugim ;-)

Mógłbyś podać kod do zastosowania aby rozwiązać problem sesją w tym przypadku :-]
kallosz
np
Kod
$_SESSION['login'] = $login;
$_SESSION['email'] = $email;

i jak bedziesz chcial je wyciagnac z sesji to robisz:
Kod
$wyciagnietylogin = $_SESSION['login'];
krowal
Cytat(SirSpec @ 7.07.2007, 08:33:18 ) *
Niestety nierozwiązało to problemu :-\ Echo wciąż puste sad.gif

Właściwie to zmienna powinna być widoczna nawet bez deklaracji przed ciałem pętli, na moje oko to pewnie tam są dwa (lub więcej) rekordy i pierwszy ci się wyświetla a drugi jest pusty i tablica $wiersz się nadpisuje i dlatego po wykonaniu pętli masz taki rezultat.
SirSpec
Cytat(kallosz @ 7.07.2007, 09:38:32 ) *
np
Kod
$_SESSION['login'] = $login;
$_SESSION['email'] = $email;

i jak bedziesz chcial je wyciagnac z sesji to robisz:
Kod
$wyciagnietylogin = $_SESSION['login'];


Niestety bez zmian echo wciąż puste sadsmiley02.gif

BTW. ta druga zmienna jest potrzebna ?

Problem nr 2 rozwiazany, wystarczyło zamknąć } linijkę niżej ;-)

Ale nadal niewiem dlaczego panel użytkownika niechce działać :/
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.