Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Instrukcja warunkowa if, Dlaczego mi to nie działa jak należy???
qba10
post 14.12.2007, 23:56:22
Post #1





Grupa: Zarejestrowani
Postów: 264
Pomógł: 20
Dołączył: 19.08.2007
Skąd: Bryńsk k. Lidzbarka Welskiego (nie mylić z Warmińskim)

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


Mam sobie taką stronkę
  1. <?
  2. include('../sys/tajne/config.php'); 
  3.  
  4.  
  5. echo'<html>';
  6. echo'<head>';
  7. echo'<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">';
  8. echo'<meta http-equiv="Content-Language" content="pl">';
  9. echo'<title>Jump PHP - Panel Administracyjny</title>';
  10. echo' <link rel="stylesheet" href="style.css" type="text/css">';
  11. echo' <link rel="Shortcut icon" href="grafika/logo.ico">';
  12. echo'</head>';
  13. echo'<body>';
  14.  
  15. echo'<!------------------głowna komurka---------------------------->';
  16.  
  17. echo'<!--/-------------------------------------------------------------->';
  18. echo'<!--baner-komurka-->';
  19. echo'<center>';
  20. echo'<table ><tr><td class="baner">';
  21. echo'<img src="grafika/jumpphp.png">';
  22. echo'</td></tr></table>';
  23. echo'</center>';
  24. echo'<!--baner koniec-->';
  25. echo'<!-- menu, stronka, left bok-->';
  26. echo'<table class="widok">';
  27. echo'<tr>';
  28. echo'<!--mennu-->';
  29. echo'<td class="menu" valign="top"><dl>';
  30.  
  31. echo'<dt>Menu</dt>';
  32. echo'<dd><a href="../index.php">Strona główna</a></dd>';
  33. echo'<dd><a href="index.php">Panel Administracyjny</a></dd>';
  34. echo'<dd><a href="index.php?page=uprawnienia">Nadaj uprawnienia użytkownikom</a></dd>';
  35. echo'<dd><a href="index.php?page=news">Dodaj Newsa</a></dd>';
  36. echo'<dd><a href="index.php?page=zdjecia">Dodaj zdjęcia</a></dd>';
  37. echo'<dd><a href="index.php?page=download">Dodaj plik do pobrania</a></dd>';
  38. echo'<dd><a href="index.php?page=strona">Zażądzaj treścią strony</a></dd>';
  39. echo'<dd><a href="index.php?page=html">Zmień ustawinia HTML</a></dd>';
  40. echo'<dd><a href="index.php?page=uzytkownicy">Zarządzaj użytkownikami</a></dd>';
  41.  
  42. echo'</dl> </td>';
  43.  
  44. echo'<!--/menu-->';
  45. echo'<!--widok stronki-->';
  46. echo'<td class="widok" valign="top">';
  47. if(!login){
  48.  
  49. $txt = '<center><br><br>Nie masz uprawnień żeby tu przebywać!!!! <a href="../index.php"><br><u>Wróć na stronę główną</u></a></center> ';
  50. echo die($txt) ;
  51. }
  52. else
  53.  
  54. {
  55. $txt = 'Witaj wszystko ok<hr> ';
  56.  
  57.  
  58.  
  59. echo die($txt) ;
  60.  
  61. }
  62.  
  63.  
  64.  
  65. echo'</td>';
  66. echo'<!--/ widoku stronki-->';
  67. echo'<!--lewy bok -->';
  68.  echo'<!--/ lewybok-->';
  69. echo'</tr></table>';
  70. echo'<table class="stopka">';
  71. echo'<tr>';
  72. echo'<!-- stopka-->';
  73. echo'<hr>';
  74. echo'<td class="stopka"> Copyright &copy; by Qba<br> </td>';
  75. echo'<!--/ stopka-->';
  76. echo'</tr>';
  77. echo'</table>';
  78.  
  79. echo'</body>';
  80. echo'</html>';
  81. ?>

Dla czego  jezeli warunek
  1. <?php
  2. if(!login())
  3. ?>
 
nie jest spełniony wyświetla mi się tręść która powinna się wyświetlić 
w tedy, kiedy ten warunek jest spełniony. 
 Proszę o jakąś wskazówke jak zmienić ten warunek by działał 
( próbowałem już czegoś takiego:
  1. <?php
  2. if(login){
  3. $txt = 'Witaj wszystko ok<hr> ';
  4.  
  5.  
  6.  
  7. echo die($txt) ;
  8.  
  9.  
  10. }
  11. else
  12.  
  13. {
  14. $txt = '<center><br><br>Nie masz uprawnień żeby tu przebywać!!!! <a href="../index.php"><br><u>Wróć na stronę główną</u></a></center> ';
  15. echo die($txt) ;
  16. }
  17. ?>

ale w tedy było tak samo tzn. gdy warunek jest spełniony  wyświetla mi się ta treść co powinna się wyświetlić  
gdy warunek nie będzie spełniony.
Mam nadzieję że mnie zrozumieliście haha.gif
Jak to znormalizować??


--------------------
Qbix Media Project - Prosty Multiplatformowy Odtwarzacz Muzyki
Go to the top of the page
+Quote Post
marcio
post 15.12.2007, 00:29:59
Post #2





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


masz 2 takie same zmienne sa one w tym samym pliku czyli sa globalne i sie mieszaja tak mi sie zdaje zmien nazwe drugie zmiennej i po co echo die?? die to synonim exit wychodzi i konczy skrypt


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
nevt
post 15.12.2007, 00:35:33
Post #3





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


boże... widzisz i nie grzmisz... !login... a jak w PHP nazywamy zmienne??? ze znakiem $ na początku ??? czy to może funkcja??? to może pokażesz jej kod??? a próbowałeś zrobić echo login() ??? if na 100... co ja piszę... na 1000 % działa dobrze - więc zła może być tylko wartość zwracana przez login()...


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

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
qba10
post 15.12.2007, 09:00:45
Post #4





Grupa: Zarejestrowani
Postów: 264
Pomógł: 20
Dołączył: 19.08.2007
Skąd: Bryńsk k. Lidzbarka Welskiego (nie mylić z Warmińskim)

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


Tak
login() jest to funkcja
o to jej kod
  1. <?php
  2. function login() { 
  3.  
  4. global $_CONFIG; 
  5.  
  6. $zalogowany = false; 
  7.  
  8. / 
  9. if(isset($_COOKIE["dane"])) { 
  10. $dane = $_COOKIE["dane"]^$_CONFIG['kxc']; 
  11. $login = substr($dane, 0, 32); 
  12. $haslo = substr($dane, -32); 
  13. $metod = "cookies"; 
  14. } 
  15. elseif(isset($_SESSION['login']) AND isset($_SESSION['haslo'])) { 
  16. $login = $_SESSION['login']; 
  17. $haslo = $_SESSION['haslo']; 
  18. $metod = "session"; 
  19. } 
  20. elseif(isset($_POST['login']) AND isset($_POST['haslo'])) { 
  21. $login = md5(strtolower($_POST['login'])); 
  22. $haslo = md5($_POST['haslo']); 
  23. $metod = "post"; 
  24. } 
  25.  
  26.  
  27. if(isset($metod)) { 
  28. $query = mysql_query("SELECT `user`,`pass`,`nick`,`lvl`,`u1` ,`u2` ,`u3` ,`u4` ,`u5` ,`u6`,`u7` ,
    `nazwisko` ,`email` ,`data` FROM `users` WHERE `user`='"
    .$login."' AND `pass`='".$haslo."';"); 
  29.  
  30.  if(mysql_num_rows($query) == 1) { 
  31. $zalogowany = true; 
  32.  
  33. if($metod <> "session") { 
  34. $wiersz = mysql_fetch_array($query); 
  35. $_SESSION['login'] = $wiersz['user']; 
  36. $_SESSION['haslo'] = $wiersz['pass']; 
  37. $_SESSION['nick'] = $wiersz['nick']; 
  38. $_SESSION['u1'] = $wiersz['u1']; 
  39. $_SESSION['u2'] = $wiersz['u2']; 
  40. $_SESSION['u3'] = $wiersz['u3']; 
  41. $_SESSION['u4'] = $wiersz['u4']; 
  42. $_SESSION['u5'] = $wiersz['u5']; 
  43. $_SESSION['u6'] = $wiersz['u6']; 
  44. $_SESSION['u7'] = $wiersz['u7']; 
  45.  $_SESSION['nazwisko'] = $wiersz['nazwisko']; 
  46. $_SESSION['data'] = $wiersz['data']; 
  47. $_SESSION['email'] = $wiersz['email']; 
  48. $_SESSION['lvl'] = $wiersz['lvl']; 
  49.  
  50.  if($metod == "post" AND isset($_POST['pamietaj']) AND $_POST['pamietaj'] == "ok") { 
  51.  $dane = ($login. $haslo)^$_CONFIG['kxc']; 
  52.  setcookie ( $dane, time()+3600*24*365);
  53.  } 
  54. } 
  55.  } 
  56. } 
  57. return $zalogowany; 
  58. }
  59. ?>


--------------------
Qbix Media Project - Prosty Multiplatformowy Odtwarzacz Muzyki
Go to the top of the page
+Quote Post
nevt
post 15.12.2007, 10:57:46
Post #5





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


a w momencie wywołania funkcji login() na pewno masz połączenie z bazą danych ? w środku funkcji nie nawiązujesz żadnego połączenia, ani też nie sprawdzasz czy takowe istnieje - od razu walisz zapytanie do bazy, do tego bez sprawdzania, czy nie zwraca jakichś błędów...

możliwe że wysypuje ci się na tym zapytaniu i nigdy nie dochodzi do linijki: $zlogowany=true;

powodzenia.


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

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
qba10
post 15.12.2007, 11:14:30
Post #6





Grupa: Zarejestrowani
Postów: 264
Pomógł: 20
Dołączył: 19.08.2007
Skąd: Bryńsk k. Lidzbarka Welskiego (nie mylić z Warmińskim)

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


Połączenie z bazą jest poprostu nie wkleiłem całej stornki. Jeżeli sie ona na coś może przydać to proszę bardzo:
  1. <?php
  2.  
  3.  
  4.  
  5.  if(eregi("config.php",$_SERVER['PHP_SELF']) OR eregi("config.php",$_SERVER['QUERY_STRING'])) 
  6.  { header("Location: /"); die(); } 
  7.  
  8.  
  9. $_CONFIG['kxc'] = "a523d703f908dd69e02db64ec35d07315f4c49ab3cacad14a97304b02f2fbb09"; 
  10.  
  11.  
  12. $_CONFIG['MySQL']['host'] = "freesql.org"; 
  13. $_CONFIG['MySQL']['user'] = "zieloneszeregi"; 
  14. $_CONFIG['MySQL']['pass'] = "311316"; 
  15. $_CONFIG['MySQL']['base'] = "zielone_szeregi"; 
  16.  
  17.  
  18. if(!isset($_SESSION['sesja'])) { 
  19.  $_SESSION['sesja'] = ''; 
  20. } 
  21.  
  22.  
  23. @mysql_connect($_CONFIG['MySQL']['host'], $_CONFIG['MySQL']['user'], $_CONFIG['MySQL']['pass']) or die('<html> 
  24. <head> 
  25.  <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2"> 
  26. <title>Error - Jump PHP</title> 
  27. <style type="text/css"> 
  28. body { background: #FFFFFF; } 
  29. div { font-family: Verdana, Arial; font-size: 12px; color: #000000; } 
  30. </style> 
  31. </head> 
  32. <body> 
  33. <div> 
  34. Przepraszamy, wystąpiła chwilowa awaria serwisu.<br> 
  35. <br> 
  36. <b>Nie mogę połączyć się z serwerem bazy danych.</b><br> 
  37. <br> 
  38. Proszę powiadom <a href="mailto:qba100@gmail.com">Wemastera qba100@gmail.com</a>. 
  39. </div> 
  40. </html>'); 
  41.  
  42.  
  43. @mysql_select_db($_CONFIG['MySQL']['base']) or die('<html> 
  44. <head> 
  45.  <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2"> 
  46. <title>Error</title> 
  47. <style type="text/css"> 
  48. body { background: #FFFFFF; } 
  49. div { font-family: Verdana, Arial; font-size: 12px; color: #000000;} 
  50. </style> 
  51. </head> 
  52. <body> 
  53. <div> 
  54. Przepraszamy, wystąpiła chwilowa awaria serwisu.<br> 
  55. <br> 
  56. <b>Nie mogę odnaleść bazy Danych.</b><br> 
  57. <br> 
  58. Proszę powiadom <a href="mailto:qba100@gmail.com">Wemastera qba100@gmail.com</a>. 
  59.  </div> 
  60. </html>'); 
  61.  
  62. function login() { 
  63.  
  64.  global $_CONFIG; 
  65.  $zalogowany = false; 
  66.  
  67. / 
  68. if(isset($_COOKIE["dane"])) { 
  69. $dane = $_COOKIE["dane"]^$_CONFIG['kxc']; 
  70. $login = substr($dane, 0, 32); 
  71. $haslo = substr($dane, -32); 
  72. $metod = "cookies"; 
  73. } 
  74. elseif(isset($_SESSION['login']) AND isset($_SESSION['haslo'])) { 
  75. $login = $_SESSION['login']; 
  76. $haslo = $_SESSION['haslo']; 
  77. $metod = "session"; 
  78. } 
  79. elseif(isset($_POST['login']) AND isset($_POST['haslo'])) { 
  80. $login = md5(strtolower($_POST['login'])); 
  81. $haslo = md5($_POST['haslo']); 
  82. $metod = "post"; 
  83. } 
  84.  
  85.  if(isset($metod)) { 
  86. $query = mysql_query("SELECT `user`,`pass`,`nick`,`lvl`,`u1` ,`u2` ,`u3` ,`u4` ,`u5` ,`u6`,`u7` ,
    `nazwisko` ,`email` ,`data` FROM `users` WHERE `user`='"
    .$login."' AND `pass`='".$haslo."';"); 
  87.  if(mysql_num_rows($query) == 1) { 
  88. $zalogowany = true; 
  89. if($metod <> "session") { 
  90. $wiersz = mysql_fetch_array($query); 
  91. $_SESSION['login'] = $wiersz['user']; 
  92. $_SESSION['haslo'] = $wiersz['pass']; 
  93. $_SESSION['nick'] = $wiersz['nick']; 
  94. $_SESSION['u1'] = $wiersz['u1']; 
  95. $_SESSION['u2'] = $wiersz['u2']; 
  96. $_SESSION['u3'] = $wiersz['u3']; 
  97. $_SESSION['u4'] = $wiersz['u4']; 
  98. $_SESSION['u5'] = $wiersz['u5']; 
  99. $_SESSION['u6'] = $wiersz['u6']; 
  100. $_SESSION['u7'] = $wiersz['u7']; 
  101.  $_SESSION['nazwisko'] = $wiersz['nazwisko']; 
  102. $_SESSION['data'] = $wiersz['data']; 
  103. $_SESSION['email'] = $wiersz['email']; 
  104. $_SESSION['lvl'] = $wiersz['lvl']; 
  105.  if($metod == "post" AND isset($_POST['pamietaj']) AND $_POST['pamietaj'] == "ok") { 
  106.  $dane = ($login. $haslo)^$_CONFIG['kxc']; 
  107.  setcookie ( $dane, time()+3600*24*365); 
  108. } 
  109. } 
  110.  } 
  111. } 
  112. return $zalogowany; 
  113. }
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123. function logout() { 
  124. if(isset($_COOKIE["dane"])) 
  125.  setcookie ("dane", "",time()-3600*24*365); 
  126. unset($_SESSION['login']); 
  127. unset($_SESSION['haslo']); 
  128. unset($_SESSION['nick']);
  129. unset($_SESSION['u1']);
  130. unset($_SESSION['u2']);
  131. unset($_SESSION['u3']);
  132. unset($_SESSION['u4']);
  133. unset($_SESSION['u5']);
  134. unset($_SESSION['u6']);
  135. unset($_SESSION['u7']);
  136. unset($_SESSION['nazwisko']);
  137. unset($_SESSION['data']);
  138. unset($_SESSION['email']);
  139. unset($_SESSION['lvl']);
  140.  }
  141. ?>


--------------------
Qbix Media Project - Prosty Multiplatformowy Odtwarzacz Muzyki
Go to the top of the page
+Quote Post
nevt
post 15.12.2007, 13:19:38
Post #7





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


no to może masz w bazie więcej niż jeden wpis dla konkretnego użykownika?
a może nie masz wcale wpisów...
napisałeś sobie warunek:
if(mysql_num_rows($query) == 1)
i uważasz że to załatwia każdy przypadek?
wyświetl sobie w tym miejscu co ci zapytanie do bazy naprawdę zwraca - wtedy będziesz wiedział co się dzieje - jeżeli user jest poprawnie dodany do bazy, a twoje fukcja zwraca FALSE, to albo dane w bazie są nie takie jak oczekujesz albo masz błąd w tym zapytaniu... nic więcej ci nie pomogę jeśli sam nie pogłówkujesz...


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

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
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: 16.06.2025 - 20:55