Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] problem ze wchodzieniem na strone z danym numerem IP
Forum PHP.pl > Forum > PHP
Lejto
Napisałem skrypt który zezwala danemu użytkownikowi o numerze IP który jest w bazie wejść na stronę niestety jeśli IP użytkownika nie jest na 1 miejscu w bazie to nie może wejść. Meczę się już nad tym skryptem 3h nie wiem już co mam robić żeby działało porobiłem pętle itd. Oto kod:
  1. $akcja=$_GET['akcja'];
  2.  
  3. $sql = "SELECT * FROM ip_zezwolone";
  4. $query = mysql_query($sql);
  5. $rows = mysql_num_rows($query);
  6. $row = mysql_fetch_array($query);
  7. $ip = $_SERVER['REMOTE_ADDR'];
  8.  
  9. echo "<br>";
  10. ?> <body ondragstart="return false" ondrag="return false" oncontextmenu="return false" onselectstart="return false" onselect="return false" oncopy="return false" onbeforeprint="document.body.style.visibility = 'hidden'; alert('Wydruk jest niedostępny!')" onafterprint="document.body.style.visibility = 'visible'">
  11. <div id="body">
  12.  
  13. <?
  14.  for($i=0; $i < $rows; $i++) //tą pętle dodałem
  15. { 
  16. $row1 = mysql_fetch_array($query);
  17. if($row1[ip] !== $ip){
  18. echo ($ip);
  19. echo ($ip);
  20. echo '=';
  21. echo ($row[ip]);
  22. echo "<br>Nie upoważniono cię do oglądania tych treści"; // to jest chyba źle bo !== zwraca true
  23. }
  24. }
  25.  
  26. for($i=0; $i < $rows; $i++)
  27. { 
  28. $row = mysql_fetch_array($query);
  29.  
  30.  if($row[ip] == $ip) { 
  31. echo "Masz zezwolenie ";
  32. }
  33. }
  34.  
  35. // if($row[ip] == $ip){
  36. // echo '<b>';
  37. // echo ($row[kto]);
  38. // echo '</b>';
  39.  // }
  40.  
  41.  
  42.  // ta część ma być wyświetlana jak ip użytkownika i ip w bazie będą takie same
  43.  
  44. echo '<h3>Kategorie</h3>';
  45.  
  46.  
  47. echo '<a href=lo.php?akcja=lol>Hef</a><br>';
  48.  
  49. if(isset($akcja)){
  50.  if($akcja==lol){
  51. $sql2 = "SELECT * FROM foto";
  52. $query2 = mysql_query($sql2);
  53. $rows2 = mysql_num_rows($query2) /2;
  54. echo "<table align=center border=0>";
  55.  for($i=0; $i < $rows2; $i++)
  56. { 
  57.  echo "<tr>";
  58.  for($c=0;$c<2;$c++)
  59. { 
  60.  
  61. $row2 = mysql_fetch_array($query2);
  62.  
  63. echo "<td align=center><a href='$row2[foto]' rel='lightbox' border=0><img src='$row2[foto]' border=0 onMouseDown='return false' oncontextmenu='return false' onselectstart='return false' onselect='return false' oncopy='return false' ondragstart='return false' ondrag='return false' width=200 height=150 ></a>"; 
  64. }
  65. echo '<br></tr>';
  66. }
  67. echo '</td></tr>';
  68. echo '</table>';
  69. }
  70. }
  71.  
  72.  
  73. ?>

Proszę o pomoc!

Pozdrawiam
b_chmura
  1. <?php
  2. function spr_ip($ip)
  3. {
  4. $dane = @mysql_query('SELECT * FROM `ip_zezwolone`');
  5. while($dana = @mysql_fetch_array($dane)) 
  6. {
  7. if($ip == $dana['ip'])
  8. {
  9. return true;
  10. }
  11. }
  12.  
  13. return false;
  14. }
  15.  
  16. $ip = $_SERVER['REMOTE_ADDR'];
  17.  
  18. if(spr_ip($ip))
  19. {
  20. echo 'Wstęp wolny';
  21. }
  22. else
  23. {
  24. echo 'Wstęp zabroniony';
  25. }
  26. ?>
BaN
W bardzo dziwny sposób sprawdzasz czy dany adres jest w bazie danych, przez pobranie wszystkich danych i porównanie z aktualnie odczytanym adresem, przecież w zapytaniu można uwzględniać warunki:
Kod
$sql = "SELECT ip FROM ip_zezwolone WHERE ip='{$_SERVER['REMOTE_ADDR']}'"

Jeżeli otrzymasz przynajmniej jeden wynik, to znaczy że adres jest w bazie
Lejto
dzięki wielkie, działa
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.