Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]Pobieranie danych z sesji, Wyświetlenie loginu i innych danych zalogowanej osoby
Flips
post
Post #1





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 3.10.2009

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


Witam mam taki problem szukałem tego wszędzie gdzie tylko było możliwe ale nie znalazłem. Chodzi mi o zrobienie na swojej stronie internetowej takiego napisu: Jesteś zalogowany jako: (i tu nazwisko zalogowanej osoby). Już udało mi się coś takiego zrobić dzięki funkcji SELECT, FROM itd. wiecie o co chodzi. Jednak problem jest w tym że musiałem wpisać WHERE `login`='Flips'" (czyli ja) i to działa w ten sposób że pokazuje Jesteś zalogowany jako: (i tu moje nazwisko). Próbowałem wpisywać zamiast mojego loginu zmienną z formularza logowania, ale ona nie działa nie wiem dlaczego. Jeśli ktoś wie jak to zrobić to proszę o odpowiedź. Z góry dziękuję.
Go to the top of the page
+Quote Post
Blame
post
Post #2





Grupa: Zarejestrowani
Postów: 678
Pomógł: 124
Dołączył: 26.09.2009

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


Hmm... najlepiej by było, gdybyś tworzył sesje która zawierała by wartość z $_POST['login] ale skoro mówisz że nie działa... W ogóle miło by było gdybyś nam podał fragment kodu ze skryptem logowania.
Go to the top of the page
+Quote Post
Nattfarinn
post
Post #3





Grupa: Zarejestrowani
Postów: 136
Pomógł: 22
Dołączył: 19.09.2007
Skąd: Sosnowiec

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


Cytat(Flips @ 3.11.2009, 14:55:48 ) *
Witam mam taki problem szukałem tego wszędzie gdzie tylko było możliwe ale nie znalazłem. Chodzi mi o zrobienie na swojej stronie internetowej takiego napisu: Jesteś zalogowany jako: (i tu nazwisko zalogowanej osoby). Już udało mi się coś takiego zrobić dzięki funkcji SELECT, FROM itd. wiecie o co chodzi. Jednak problem jest w tym że musiałem wpisać WHERE `login`='Flips'" (czyli ja) i to działa w ten sposób że pokazuje Jesteś zalogowany jako: (i tu moje nazwisko). Próbowałem wpisywać zamiast mojego loginu zmienną z formularza logowania, ale ona nie działa nie wiem dlaczego. Jeśli ktoś wie jak to zrobić to proszę o odpowiedź. Z góry dziękuję.

Nie chcę Cię martwić, ale póki nie podasz jakichś konkretnych informacji innych niż: "próbowałem ale mi nie działa", to konkretnej odpowiedzi nie uzyskasz. Nie dałeś nam żadnej informacji na temat sposobu autoryzacji, tego co i czy w ogóle coś trzymasz w sesji i kilku innych rzeczy. Jeśli przechowujesz gdzieś ID użytkownika lub jego login - to wystarczy, że w zapytaniu SQL które budujesz dasz:
  1. "(...) WHERE `login` = '.addslashes($login).'";

Wielkiej filozofii w tym nie ma i coś takiego generalnie musi działać. A jeśli nie działa, to daj chociaż komunikat błędu.
Go to the top of the page
+Quote Post
fenix.robi
post
Post #4





Grupa: Zarejestrowani
Postów: 97
Pomógł: 7
Dołączył: 24.06.2008

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


Hmm tyle co zrozumiałem to:

1. Skrypt z formularzem do logowania, jeśli wpisałes prawidłowy login i hasło to ->

1a) jesli chesz aby przedstawiony był login to

  1. $_SESSION['przedstaw'] = $login;


1b. Jeśli chcesz aby był przedstawiony jako "imie nazwisko", to pobież te dane z bazy i

  1. $_SESSION['przedstaw'] = $imie.' '.$nazwisko;


2. Potem napisz skrypcik który sprawdza czy jest istnieje dana sesja ze zmienną którą będziesz "include'dował" w każdym widoku ->

2a) Jesli istnieje to wyswietlasz jako kto jestes zalogowany
2b) Jesli nie to przekierowuje Cie do logowania

potrzebne funkcje to (niewymieniam funkcji do połaczenia i pobierania danych z bazy bo juz masz) isset , include i minimalna wiedza o sesjach ($_SESSION), aha no i echo (IMG:style_emoticons/default/haha.gif)

Ten post edytował fenix.robi 3.11.2009, 15:19:31
Go to the top of the page
+Quote Post
Flips
post
Post #5





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 3.10.2009

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


Cytat(Nattfarinn @ 3.11.2009, 16:13:37 ) *
Nie chcę Cię martwić, ale póki nie podasz jakichś konkretnych informacji innych niż: "próbowałem ale mi nie działa", to konkretnej odpowiedzi nie uzyskasz. Nie dałeś nam żadnej informacji na temat sposobu autoryzacji, tego co i czy w ogóle coś trzymasz w sesji i kilku innych rzeczy. Jeśli przechowujesz gdzieś ID użytkownika lub jego login - to wystarczy, że w zapytaniu SQL które budujesz dasz:
  1. "(...) WHERE `login` = '.addslashes($login).'";

Wielkiej filozofii w tym nie ma i coś takiego generalnie musi działać. A jeśli nie działa, to daj chociaż komunikat błędu.



O to chodzi, że właśnie nie ma żadnego błędu tylko po prostu nie wyświetla nazwiska. A co do kodu to już go wklejam:

  1. session_register("zalogowany");
  2.  
  3. if(empty($_SESSION["zalogowany"]))$_SESSION["zalogowany"]=0;
  4.  
  5. mysql_connect("[serwer]", "[baza]", "[hasło]")or die("Nie można nawiązać połączenia z bazą");
  6. mysql_select_db("db444106")or die("Wystąpił błąd podczas wybierania bazy danych");
  7.  
  8. function ShowLogin($komunikat=""){
  9. if($komunikat != 0)
  10. echo "$komunikat<br>";
  11. echo "<form action='loguj.php' method=post>";
  12. echo "Login: <br/><input type=text name=login style=width:110px maxlength=16><br>";
  13. echo "Hasło: <br/><input type=text name=haslo style=width:110px maxlength=16><br>";
  14. echo "<input type=submit value='Zaloguj!'>";
  15. echo "</form>";
  16. }


i druga część (w tym samym pliku)

  1. Jesteś zalogowany jako
  2. <?
  3. $_POST["login"] = $login;
  4. $zapytanie_imie = "SELECT `imie` FROM `IIIb_users` WHERE `login`='Flips'";
  5. $zapytanie_nazwisko = "SELECT `nazwisko` FROM `IIIb_users` WHERE `login`='Flips'";
  6. $imie_was_zapytanie = mysql_query($zapytanie_imie);
  7. $nazwisko_was_zapytanie = mysql_query($zapytanie_nazwisko);
  8. $imie_was = mysql_fetch_row($imie_was_zapytanie);
  9. $nazwisko_was = mysql_fetch_row($nazwisko_was_zapytanie);
  10. echo "$imie_was[0] $nazwisko_was[0]";
  11. ?>


i teraz napisz mi jak go przerobić żeby nie wyświetlało mojego imienia in nazwiska tylko tej osoby która jest zalogowana.

Ten post edytował Flips 3.11.2009, 15:37:22
Go to the top of the page
+Quote Post
Blame
post
Post #6





Grupa: Zarejestrowani
Postów: 678
Pomógł: 124
Dołączył: 26.09.2009

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


  1. Jesteś zalogowany jako
  2. <?
  3. $_POST["login"] = $login;
  4. $zapytanie_imie = "SELECT `imie` FROM `IIIb_users` WHERE `login`='$login'";
  5. $zapytanie_nazwisko = "SELECT `nazwisko` FROM `IIIb_users` WHERE `login`='$login'";
  6. $imie_was_zapytanie = mysql_query($zapytanie_imie);
  7. $nazwisko_was_zapytanie = mysql_query($zapytanie_nazwisko);
  8. $imie_was = mysql_fetch_row($imie_was_zapytanie);
  9. $nazwisko_was = mysql_fetch_row($nazwisko_was_zapytanie);
  10. echo "$imie_was[0] $nazwisko_was[0]";
  11. ?>

Próbowałeś?
Go to the top of the page
+Quote Post
Flips
post
Post #7





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 3.10.2009

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


Cytat(Blame @ 3.11.2009, 18:51:56 ) *
  1. Jesteś zalogowany jako
  2. <?
  3. $_POST["login"] = $login;
  4. $zapytanie_imie = "SELECT `imie` FROM `IIIb_users` WHERE `login`='$login'";
  5. $zapytanie_nazwisko = "SELECT `nazwisko` FROM `IIIb_users` WHERE `login`='$login'";
  6. $imie_was_zapytanie = mysql_query($zapytanie_imie);
  7. $nazwisko_was_zapytanie = mysql_query($zapytanie_nazwisko);
  8. $imie_was = mysql_fetch_row($imie_was_zapytanie);
  9. $nazwisko_was = mysql_fetch_row($nazwisko_was_zapytanie);
  10. echo "$imie_was[0] $nazwisko_was[0]";
  11. ?>

Próbowałeś?


to było pierwsze co tylko próbowalem
Go to the top of the page
+Quote Post
Nattfarinn
post
Post #8





Grupa: Zarejestrowani
Postów: 136
Pomógł: 22
Dołączył: 19.09.2007
Skąd: Sosnowiec

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


A potraktuj zmienną $login var_dump'em (np. tuż przed zapytaniami SQL):
  1. var_dump($login);

I zobaczy, czy w ogóle cokolwiek do tej zmiennej przekazujesz - a jeśli tak, to co (IMG:style_emoticons/default/winksmiley.jpg) . Wynikiem nie omieszkaj się pochwalić.

Ten post edytował Nattfarinn 3.11.2009, 20:26:54
Go to the top of the page
+Quote Post
Flips
post
Post #9





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 3.10.2009

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


Cytat(Nattfarinn @ 3.11.2009, 21:26:07 ) *
A potraktuj zmienną $login var_dump'em (np. tuż przed zapytaniami SQL):
  1. var_dump($login);

I zobaczy, czy w ogóle cokolwiek do tej zmiennej przekazujesz - a jeśli tak, to co (IMG:style_emoticons/default/winksmiley.jpg) . Wynikiem nie omieszkaj się pochwalić.


NULL - dokładnie tak jak myślałem ;/ teraz kto mi to wytłumaczy dlaczego w tej części:

  1. if(mysql_num_rows(mysql_query("select * from IIIb_users where login = '".htmlspecialchars($_POST["login"])."'AND haslo = '".htmlspecialchars($_POST["haslo"])."'")))


zmienna $_POST["login"] działa, ale w wyniku tego wyżej wymienionego warunku

  1. {
  2. echo "Zalogowano poprawnie.</a>";
  3. $_SESSION["zalogowany"]=1;
  4. $_SESSION["przedstaw"] = $_POST['login'];
  5. }
  6.  
  7. $_SESSION["przedstaw"] = $login;


już nie? (IMG:style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
Nattfarinn
post
Post #10





Grupa: Zarejestrowani
Postów: 136
Pomógł: 22
Dołączył: 19.09.2007
Skąd: Sosnowiec

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


  1. $_SESSION["przedstaw"] = $login;

A jesteś pewien, że przypisujesz tutaj właściwą zmienną? Bo na moje oko, wg. Twojego kodu nadpisujesz wartość zmiennej sesyjnej, niezadeklarowaną wcześniej zmienną $login. (IMG:style_emoticons/default/smile.gif) Nie widzę, reszty kodu, ale powinno to być raczej:
  1. $login = $_SESSION["przedstaw"];
Go to the top of the page
+Quote Post
Flips
post
Post #11





Grupa: Zarejestrowani
Postów: 13
Pomógł: 0
Dołączył: 3.10.2009

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


Cytat(Nattfarinn @ 3.11.2009, 21:59:15 ) *
  1. $_SESSION["przedstaw"] = $login;

A jesteś pewien, że przypisujesz tutaj właściwą zmienną? Bo na moje oko, wg. Twojego kodu nadpisujesz wartość zmiennej sesyjnej, niezadeklarowaną wcześniej zmienną $login. (IMG:style_emoticons/default/smile.gif) Nie widzę, reszty kodu, ale powinno to być raczej:
  1. $login = $_SESSION["przedstaw"];


No już właśnie przed chwilą dzięki wklejaniu tu tego kodu sam to zauważyłem (IMG:style_emoticons/default/biggrin.gif) przepraszam za kłopot ale jestem dopiero bardzo początkujący w temacie PHP i MySQL, chociaż nie ma się co dziwić bo w szkole tego nie uczą a mam dopiero 15 lat. Zaznaczam że mi pomogłeś i mam nadzieję że jeśli znowu będę miał jakiś problem (ale nie taki łatwy do rozwiązania jak teraz) to już na prawdę mi pomożesz (IMG:style_emoticons/default/smile.gif) pozdrawiam
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 8.10.2025 - 07:58