Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Instrukcja warunkowa if, Dlaczego mi to nie działa jak należy???
qba10
post
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 (IMG:http://forum.php.pl/style_emoticons/default/haha.gif)
Jak to znormalizować??
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
marcio
post
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
Go to the top of the page
+Quote Post
nevt
post
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()...
Go to the top of the page
+Quote Post
qba10
post
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. ?>
Go to the top of the page
+Quote Post
nevt
post
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.
Go to the top of the page
+Quote Post
qba10
post
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. ?>
Go to the top of the page
+Quote Post
nevt
post
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...
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: 23.08.2025 - 00:53