Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][mysql] pobranie ID
predator
post
Post #1





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 20.02.2008

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


Jak zrobić by pobierało id usera jeśli login i hasło wprowadzone w formularzu zgadza sie z tymi w bazie?

Mam taki kod:
  1. <?php
  2. if(mysql_num_rows(mysql_query("select * from users where user_login = '".mysql_real_escape_string($login)."' AND user_haslo = '".md5($haslo)."'")))
  3. {
  4. echo "Zalogowano poprawnie.";
  5. $_SESSION["zalogowany"]=1;
  6. $_SESSION['nick'] = $login;
  7. }
  8. ?>

Tutaj coś trzeba zmienić czy później coś dopisać?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
Piniek
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 463
Pomógł: 49
Dołączył: 27.12.2007
Skąd: Warszawa

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


  1. <?php
  2. $result = mysql_query("SELECT * FROM users WHERE login='$login' AND haslo='$haslo'");
  3. $row = mysql_fetch_array($result);
  4. if($row){
  5. $_SESSION['login'] = $row['login'];
  6. $_SESSION['id'] = $row['id'];
  7. }
  8. else { 
  9. echo " nie ma takiego usera";
  10. }
  11. ?>

pozamieniaj na swoje dane i powinno działać.

Pozdrawiam
Go to the top of the page
+Quote Post
webdice
post
Post #3


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Poczytaj sobie jakie przyjmuje parametry i co robi funkcja mysql_num_rows" title="Zobacz w manualu PHP" target="_manual. Zrób sobie zapytanie, następnie za pomocą funkcji mysql_fetch_assoc" title="Zobacz w manualu PHP" target="_manual wyświetl rekord i będziesz miał ID.
Go to the top of the page
+Quote Post
predator
post
Post #4





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 20.02.2008

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


Robie tak i nie działa:
  1. <?php
  2. if($_GET["wyloguj"]=="tak"){
  3. $_SESSION["zalogowany"]=0;
  4.  }
  5. if($_SESSION["zalogowany"]!=1)
  6. {
  7. if(!empty($login) && !empty($haslo))
  8. {
  9. if(preg_match('#^[A-Za-z0-9_]+$#', $login))
  10. {
  11. if(preg_match('#^[A-Za-z0-9_]+$#', $haslo))
  12. {
  13.  
  14. $result = mysql_query("SELECT * FROM users WHERE user_login='".mysql_real_escape_string($login)."' AND user_haslo='".md5($haslo)."'");
  15. $row = mysql_fetch_array($result);
  16. if($row){
  17. $_SESSION['nick'] = $row['login'];
  18. $_SESSION['id'] = $row['id'];
  19. echo ($_SESSION['id']);
  20. }
  21. else { 
  22. echo " nie ma takiego usera";
  23. }
  24.  
  25.  
  26. } else echo ShowLogin("nie dozwolone znaki");
  27. } else echo ShowLogin("nie dozwolone znaki");
  28. } else echo ShowLogin("wprowadz login i haslo");
  29. }
  30. else{
  31. $login = $_SESSION['nick'];
  32. echo "Zalogowany jako: $login
  33. <br><a href='index.php?wyloguj=tak'>wyloguj się</a>";
  34. }
  35. ?>
Go to the top of the page
+Quote Post
Piniek
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 463
Pomógł: 49
Dołączył: 27.12.2007
Skąd: Warszawa

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


Było by łatwiej gdybyś powiedział co nie dziala (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) wywala jakiś bład ? jesli tak to jaki.

Pozdrawiam
Go to the top of the page
+Quote Post
predator
post
Post #6





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 20.02.2008

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


Nic sie nie dzieje, jakby żadnej sesji nie tworzyło:
http://www.3xori.yoyo.pl/pdf1b.php

wpisałem to
Kod
echo ($_SESSION['id']);

by zobaczyć czy pobierze id i nic sie nie pojawia

PS
login 777, haslo 777 i nic sie niedzieje po wpisaniu a powinno pojawić sie id

Ten post edytował predator 24.04.2008, 21:18:15
Go to the top of the page
+Quote Post
MMPrime
post
Post #7





Grupa: Zarejestrowani
Postów: 79
Pomógł: 12
Dołączył: 23.04.2008

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


Pamiętaj iż niektóre serwery wymagają stworzenia folderu tmp i nadanie ma uprawnień zapisu, dodatkowo warto na samym początku umieścić session_start();

Nigdzie nie ustawiasz też $_SESSION[ 'zalogowany' ] na 1 a używasz tego w warunku.
Go to the top of the page
+Quote Post
predator
post
Post #8





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 20.02.2008

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


Wszystko działa z logowaniem itd ale teraz jak próbuje wyciągnąc id to nie działa.
Jest session_start(); , wszystko jest, podam cały kod:

  1. <?
  2. $login = $_POST["login"];
  3. $haslo = $_POST["haslo"];
  4.  
  5. if(empty($_SESSION["zalogowany"]))$_SESSION["zalogowany"]=0;
  6.  
  7. // laczenie z baza danych
  8.  
  9. function ShowLogin($komunikat="")
  10. {
  11. echo "<form action='pdf1b.php' method=post>
  12. <table bolder='0px' border-collapse: collapse>
  13. <tr><td colspan='3' align='center' height='25px'>$komunikat
  14. // tu dalsza czesc formularza
  15. }
  16. ?>
  17. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
  18. <html><head><title>logowanie</title>
  19. <link rel="Stylesheet" type="text/css" href="style.css" /></head>
  20. <body>
  21. <?php
  22. if($_GET["wyloguj"]=="tak"){
  23. $_SESSION["zalogowany"]=0;
  24.  }
  25. if($_SESSION["zalogowany"]!=1)
  26. {
  27. if(!empty($login) && !empty($haslo))
  28. {
  29. if(preg_match('#^[A-Za-z0-9_]+$#', $login))
  30. {
  31. if(preg_match('#^[A-Za-z0-9_]+$#', $haslo))
  32. {
  33.  
  34. $result = mysql_query("SELECT * FROM users WHERE user_login='".mysql_real_escape_string($login)."' AND user_haslo='".md5($haslo)."'");
  35. $row = mysql_fetch_array($result);
  36. if($row){
  37. $_SESSION['nick'] = $row['login'];
  38. $_SESSION['id'] = $row['id'];
  39. echo ($_SESSION['id']);
  40. }
  41. else { 
  42. echo " nie ma takiego usera";
  43. }
  44.  
  45.  
  46. } else echo ShowLogin("nie dozwolone znaki");
  47. } else echo ShowLogin("nie dozwolone znaki");
  48. } else echo ShowLogin("wprowadz login i haslo");
  49. }
  50. else{
  51. $login = $_SESSION['nick'];
  52. echo "Zalogowany jako: $login
  53. <br><a href='index.php?wyloguj=tak'>wyloguj się</a>";
  54. }
  55. ?>
  56. </body></html>


po zalogowaniu (login 777, haslo 777) pusto jest a powinien byc wypisany id i jak przejde jeszcze raz pod tem sam adres to jest znów formularz tak jakbym sie nie zalogował

P.S. W bazie danych id są w kolumnie user_id, może trzeba gdzies wywolac user_id...

Ten post edytował predator 24.04.2008, 21:49:30
Go to the top of the page
+Quote Post
MMPrime
post
Post #9





Grupa: Zarejestrowani
Postów: 79
Pomógł: 12
Dołączył: 23.04.2008

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


Kod
$_SESSION['nick'] = $row['login'];
$_SESSION['id'] = $row['id'];

Skoro nazwy kolumn zaczynają się od user_ to i kluczę w tablicach zaczynają się od user_.
Go to the top of the page
+Quote Post
predator
post
Post #10





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 20.02.2008

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


Poprawiłem i pobiera id (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Ale troche dziwne dlaczego np login trzeba selectem sprawdzic a id sie samo sprawdza...

No to ładnie po zalogowaniu jako 777 i haśle 777 wypisuje że id to 51, odświezę strone to jeszcze jest tak jak było ale przejde ponownie pod ten sam adres to widze znów formularz. Czyżby sesja znikała?
Go to the top of the page
+Quote Post
MMPrime
post
Post #11





Grupa: Zarejestrowani
Postów: 79
Pomógł: 12
Dołączył: 23.04.2008

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


Sesje musisz przedłużać, inaczej po każdym F5 będzie wygasła.
Skoro masz już id użytkownika to pobieraj informację o nim za każdym razem i zapisuj je do sesji.
Go to the top of the page
+Quote Post
predator
post
Post #12





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 20.02.2008

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


Już działa jak powinno. Jak bede mial jakies pytania co do tego to bede pisal.

Ale troche nie rozumiem tego kodu zaproponowanego przez Piniek. Ta funkcja $row jest odpowiedzialna ze wyszukanie id? Dziwne to troche.
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: 22.12.2025 - 19:50