Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Blokada na określony czas
Forum PHP.pl > Forum > Przedszkole
zavada
Cześć! Mam taki skrypt:

lock_users.php
  1. <?php
  2.  
  3. $ip = $_GET['ip'];
  4. $set = $_GET['set'];
  5.  
  6. $flag['4'] = 'red';
  7. $flag['1'] = 'yellow';
  8. $flag['2'] = 'blue';
  9. $flag['3'] = 'green';
  10.  
  11. if (!empty ($ip) AND empty ($set)) {
  12.  $query = "SELECT * FROM locked WHERE `ip` = '$ip'";
  13.  $result = mysql_query ($query);
  14.  if (mysql_num_rows ($result) == 1) {
  15.    echo ('<div class="error">
  16.    <table class="small-text-table" cellspacing="0" style="margin: 0;">
  17.      <tbody>
  18.        <tr>
  19.          <td colspan="4"><nobr><strong>Wybierz typ blokady dla IP ' . $ip . ':</strong></nobr></td>
  20.          <td>&nbsp;</td>
  21.        </tr>
  22.        <tr>
  23.          <td align="left" valign="center"><a href="?page=lock_users&ip=' . $ip . '&set=3"><img src="icons/flag_' . $flag['3'] . '.png"></a></td>
  24.          <td width="100" align="left" valign="center">Brak blokady</td>
  25.          <td align="left" valign="center"><a href="?page=lock_users&ip=' . $ip . '&set=4"><img src="icons/flag_' . $flag['4'] . '.png"></a></td>
  26.          <td width="100" align="left" valign="center">Pełna blokada</td>
  27.        </tr>
  28.        <tr>
  29.          <td align="left" valign="center"><a href="?page=lock_users&ip=' . $ip . '&set=2"><img src="icons/flag_' . $flag['2'] . '.png"></a></td>
  30.          <td align="left" valign="center">Blokada czasowa</td>
  31.          <td align="left" valign="center"><a href="?page=lock_users&ip=' . $ip . '&set=1"><img src="icons/flag_' . $flag['1'] . '.png"></a></td>
  32.          <td align="left" valign="center">Ostrzeżenie</td>
  33.        </tr>
  34.      </tbody>
  35.    </table>
  36.    </div><br>');
  37.  }
  38. }
  39. if (!empty ($ip) AND !empty ($set)) {
  40.  $query = "SELECT * FROM locked WHERE `ip` = '$ip'";
  41.  $result = mysql_query ($query);
  42.  if (mysql_num_rows ($result) == 1) {
  43.      $query = "UPDATE locked SET `type` = '$set' WHERE `ip` = '$ip'";
  44.    mysql_query ($query);
  45.    echo ('<div class="error"><strong>Zmieniono typ blokady dla IP ' . $ip . '.</strong></div><br>');
  46.  }
  47. }
  48.  
  49. $query = "SELECT * FROM locked ORDER BY `type` ASC";
  50. $result = mysql_query ($query);
  51.  
  52. echo ('<table class="small-text-table" style="margin: 0; font-size: 11px !important;" cellspacing="0">
  53. <thead>
  54.  <tr>
  55.    <td width="20">&nbsp;</td>
  56.    <td width="120">Adres IP</td>
  57.    <td width="120">Host</td>
  58.    <td colspan="2">Ostatnie odwiedziny</td>
  59.  </tr>
  60. </thead>
  61. <tbody>
  62.  <tr id="smallrow">
  63.    <td colspan="3">&nbsp;</td>
  64.  </tr>');
  65.  
  66. while ($row = mysql_fetch_array ($result)) {
  67.  echo ('<tr>
  68.  <td align="left" valign="center"><a href="?page=lock_users&ip=' . $row['ip'] . '"><img src="icons/flag_' . $flag[$row['type']] . '.png"></a></td>
  69.  <td valign="center"><strong>' . $row['ip'] . '</strong></td>
  70.  <td valign="center">' . gethostbyaddr ($row['ip']) . '</td>
  71.  <td valign="center">' . $row['last_visit'] . '</td>
  72.  <td align="center" valign="center" width="25">' . $row['visits'] . '</td></tr>');
  73. }
  74.  
  75. echo ('</tbody></table>');
  76.  
  77. ?>



visits.php
  1. <?php
  2.  
  3.  
  4. $ip = $_SERVER['REMOTE_ADDR'];
  5.  
  6. $query = "SELECT * FROM locked WHERE `ip` = '$ip'";
  7. $result = mysql_query ($query);
  8. if (mysql_num_rows ($result) != 0) {
  9.  $row = mysql_fetch_array ($result);
  10.  if ($row['type'] == 4) {
  11.    header ("Location: locked.html");
  12.  }
  13.  if ($row['type'] == 1 AND $_SESSION['visit'] != '1') {
  14.    header ("Location: warning.html");
  15.  }
  16. }
  17.  
  18. if ($_SESSION['visit'] != '1') {
  19.  $_SESSION['visit'] = '1';
  20.  $query = "SELECT * FROM locked WHERE `ip` = '$ip'";
  21.  $result = mysql_query ($query);
  22.  if (mysql_num_rows ($result) == 0) {
  23.    $type = '1';
  24.    $query = "INSERT INTO locked (`ip` ,`visits` ,`type`) VALUES ('$ip', '0', '$type')";
  25.    mysql_query ($query);
  26.  }
  27.  $row = mysql_fetch_array ($result);
  28.  $ip = $row['ip'];
  29.  $visits = $row['visits'] + 1;
  30.  $type = $row['type'];
  31.  $query = "UPDATE locked SET `visits` = '$visits', `type` = '$type', `last_visit` = NOW() WHERE `ip` = '$ip'";
  32.  mysql_query ($query);
  33. }
  34.  
  35. ?>


Jak zrobić coś takiego jak blokada na czas? Tzn. wpisuje w formularzu na ile blokowany jest użytkownik. Przez cały ten czas przekierowywany jest użytkownik do pliku time_lock.html, (podobnie jak w przypadku pełnej blokady) gdzie widzi ile czasu zostało do końca blokady. Jeśli ten czas upłynął, rekord z tym IP zmienia `type` na 3.

P.S. Namieszałem? ;P
erix
Jak w tytule - blokada na określony czas.

Powód? Regulamin.
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.