maccolo pisze:
porusze jeszcze temat powiadomien, moglbym wykonac skrypt ktory to robi bez squida i crona, potrzebowalbym do tego skrypt ktory wyciaga z bazy danych tresc wiadomosc wpisanej do lms`a
Proszę...Kiedyś o tym pisałem. U mnie działa, może i u was zadziała.
"kliknal" - to skrypt w bashu, który usuwa zadane ip z ipsetu komunikaty i wrzuca do logu godzinę i IP(aczkolwiek można jeszcze dorzucić pod klieknięciu przycisku dopisanie do bazy lms datę, w której klient po raz ostatni obejrzał komunikat). Jako że nie lubię wprowadzać zmian w samym LMS to nie zmieniałem interfejsu i tak: -jeśli zaznaczam komputerowi wykrzyknik otrzymuje jednokrotny komunikat -jeśli "odłączony" permanentny komunikat -jeśli "odłączony" + "komunikat" - klientowi wyskakuje komunikat co kilka minut (z informacją, że ma zwolniony internet + treść komunikatu)
Pewnie nie jest to majstersztyk PHP, ale zawsze można go "upiększyć" ;)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title>Piko s.c. - komunikat</title> <meta http-equiv="Content-Type" content"text/html; charset=iso-8859-2"> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="expires" content="0"> <link rel="stylesheet" type="text/css" href="http://192.168.0.1/komunikaty/style.css">
<?
$customer_ip= $_SERVER['REMOTE_ADDR'];
$mydb = mysql_connect('localhost','abonent') or die ('Błąd połączenia z serwerem PIKO');
mysql_select_db('lms');
if (isset($_POST['goto_url'])) { echo "<META HTTP-EQUIV="Refresh" CONTENT="1; URL=".$_POST['goto_url']."">\n<meta http-equiv="Content-Type" content"text/html; charset=iso-8859-2">\n</head>\n"; echo "<body>\n"; echo "<p>Wygląda na to, że przeczytałeś uwaznie komunikat.<br>"; echo "Za moment zostaniesz przekierowany na stronę, którą zamierzałeś odwiedzić.<br>"; echo "Pozdrawiamy - firma Piko.</p>\n"; $ipsetdel="sudo /var/www/htdocs/komunikaty/kliknal $customer_ip 2> /dev/null"; shell_exec($ipsetdel); if ($_POST['access']=='1') { mysql_query("UPDATE lms.nodes SET warning=0 WHERE inet_ntoa(ipaddr)='$customer_ip'") or die (mysql_error()); } echo "</body>\n</html>"; exit; }
else
{ echo "</head>\n"; header("Cache-Control: private"); header("Expires: Mon, 26 Jul 1971 05:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); header("Expires: 0"); $goto_url = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; $query = "SELECT c.message,n.access,n.warning FROM nodes n LEFT JOIN customers c ON c.id=n.ownerid where inet_ntoa(n.ipaddr)='$customer_ip'"; $result = mysql_query($query) or die ('Błąd podczas zapytania do bazy'.mysql_error()); $row = mysql_fetch_array($result); }
?>
<body>
<h1>Komunikat od firmy Piko</h1>
<p class="komunikat"> <?
if ($row["message"] != "" && $row["access"] == "1") { echo iconv("UTF-8","ISO-8859-2//TRANSLIT",$row["message"]); }
elseif ($row["warning"] == "1" && $row["access"] == "0") { echo iconv("UTF-8","ISO-8859-2//TRANSLIT",$row["message"]); echo "<h2>Prędkość Państwa połączenia została ograniczona do czasu wyjaśnienia sprawy.</h2>"; }
else { echo "Dostep do sieci Internet dla Państwa komputera jest obecnie zablokowany. Aby wyjaśnić przyczynę blokady prosimy o kontakt.\n"; echo "<br>Adres IP Panstwa komputera to: ".$customer_ip; }
?> </p>
<div>Dane kontaktowe firmy PIKO: <ul> <li>telefony: 600 254 531, 608 04 44 03 <li>e-mail: boa@piko.krakow.pl <li>www: www.piko.krakow.pl </ul> </div>
<?
if ($row["warning"] == '1') { $access = $row["access"]; echo "<form method="post" action="http://192.168.0.1/komunikaty/index.php%5C" name="form">"; echo "<input type="hidden" name="goto_url" value="http://$goto_url%5C%22%3E"; echo "<input type="hidden" name="access" value="$access">"; echo "<input type="submit" name="przycisk" value="Przeczytalem komunikat i chcę powrócić do przeglądania Internetu">"; echo "</form>";
echo "<p class="komunikat">"; echo "DOSTĘP DO INTERNETU ZOSTANIE TYMCZASOWO PRZYWRÓCONY PO PRZECZYTANIU KOMUNIKATU I NACIŚNIĘCU POWYŻSZEGO PRZYCISKU ("przeczytałem komunikat.....")"; echo "</p>"; }
?>
</body> </html>
<?
mysql_free_result($result);
//$mysql_close($mydb);
?>
pozdrawiam, Dawid Widyna
!DSPAM:4822d1dd136391844240209!