Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem z odczytem z bazy danych
Bibas
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 4.03.2004
Skąd: Bydgoszcz

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


Witam.

Pisze sobie skrypcik logowania i natrafilem na jeden problem.
  1. <?
  2. $log=$_POST['log_in'];
  3. $pswd=$_POST['password'];
  4.  
  5. $link = mysql_connect(&#092;"server\", \"user\", \"pass\")
  6. or die (&#092;"Nie można się połączyć z baza\");
  7. mysql_select_db (&#092;"db\") or die (\"Nie mozna wybrać bazy danych\");
  8.  
  9. $query=(&#092;"SELECT * FROM `jakas_tabela` WHERE `login` = '\".$log.\"'\");
  10. $result = mysql_query ($query) or die (&#092;"Zapytanie zakończone niepowodzeniem\");
  11.  
  12. while($wiersz=mysql_fetch_array($result)){
  13. if($log==$wiersz['login']){
  14. if($pswd==$wiersz['passwd']){
  15. $_SESSION['sprawdz']=$wiersz['check_it'];
  16. echo '<body><div align=\"center\" class=\"style5\">Zostales Zalogowany!<br><a href=\"index.php\">Dalej</a></div>';
  17. } else {
  18. echo'<div align=\"center\" class=\"style5\">Blad w logowaniu!<br><a href=\"index.php\">Wroc</a></div>';
  19. }
  20. echo &#092;"tu jest koniec petli\";
  21. };
  22. }
  23. ?>

No i do tego miejsca wszystko dziala. Chcialem jeszcze wprowadzic petle if w przypadku gdyby $log (czyli pole login z formularza) nie mialo swojego odwzorowania w bazie danych (nie byloby takiego uzytkownika). Petla wygladala tak:

  1. <?
  2. if($log !== $wiersz['login']){
  3. echo'<div align=\"center\" class=\"style5\">Blad w logowaniu!<br><a href=\"index.php\">Wroc</a></div>';
  4. }
  5. ?>

Ale ta petla nie dziala niestety, choc probowalem to dac jako else oraz elseif do poprzedniego if'a blink.gif co z tym zrobic? moze zalozenie ostatniego if'a jest zle... sadsmiley02.gif
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




W zapytaniu pobierasz wszystkie dane, które pasują do danego loginu. Nie dziw się więć, że warunek $log !== $wiersz['login'] nigdy nie zajdzie, gdyż ty zawsze masz tam tylko dane pasujące do $log. Nie więc nawet sensu sprawdzać $log==$wiersz['login']


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 4.03.2004
Skąd: Bydgoszcz

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


Zastosowalem sie do tego co napisales, z tym, ze nadal nie mam zaleznosci takiej, gdy nie ma takiego uzytkownika, jaki byl wpisany w formularzu w polu login...

Jak z tym sobie poradzic? bo ja teraz nie mam pomyslu na to worriedsmiley.gif
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




jak nie ma takiego uzytkownika to ci zapytanie nie zwróci żadnego rekordu


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Bibas
post
Post #5





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 4.03.2004
Skąd: Bydgoszcz

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


hmm.. a jest jakis sposob by w przypadku bledzie wprowadzonego loginu wykonala sie procedura np include('error.php'); ?
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  1. <?php
  2.  
  3. if (mysql_num_rows($result)==0)
  4.  include('error.php');
  5.  
  6. ?>


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Bibas
post
Post #7





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 4.03.2004
Skąd: Bydgoszcz

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


Kurcze... banalne rozwiazanie, moglem troche pomyslec biggrin.gif

Dzieki, dziala biggrin.gif
Go to the top of the page
+Quote Post
Ociu
post
Post #8





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




Jeżeli ostnieje tylko jeden użytkownik o takim loginie, to po co wyciągać jego dane pętlą ?
  1. <?
  2. $log=$_POST['log_in'];
  3. $pswd=$_POST['password'];
  4.  
  5. $link = mysql_connect(&#092;"server\", \"user\", \"pass\") or die (mysql_error());
  6. mysql_select_db (&#092;"db\") or die (\"Nie mozna wybrać bazy danych\");
  7. $result = mysql_query (&#092;"SELECT * FROM `jakas_tabela` WHERE `login` = '\".$log.\"'\") or die (mysql_error());
  8.  
  9. if(mysql_num_rows($result) == &#092;"1\"){
  10. $wiersz = mysql_fetch_array($result);
  11. if($log==$wiersz['login']){
  12. if($pswd==$wiersz['passwd']){
  13. $_SESSION['sprawdz']=$wiersz['check_it'];
  14. echo '<body><div align=\"center\" class=\"style5\">Zostales Zalogowany!<br><a href=\"index.php\">Dalej</a></div>';
  15. } else {
  16. echo'<div align=\"center\" class=\"style5\">Blad w logowaniu!<br><a href=\"index.php\">Wroc</a></div>';
  17. }
  18. echo &#092;"end if\";
  19. } else {
  20. echo 'error ?';
  21. }
  22.  
  23. ?>


Ten post edytował Ociu 21.03.2005, 12:35:06
Go to the top of the page
+Quote Post
nospor
post
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ociu: w tym przypadku dalej nie ma co sprawdzać:$log==$wiersz['login']. czytaj posty wyżej


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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 Aktualny czas: 22.08.2025 - 04:05