Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Instrukcja warunkowa if
Forum PHP.pl > Forum > Przedszkole
qba10
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ć??
marcio
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
nevt
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()...
qba10
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. ?>
nevt
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.
qba10
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. ?>
nevt
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...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.