264 lines
7.6 KiB
PHP
264 lines
7.6 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
# ver. 20120623-01
|
||
|
|
|
||
|
|
include_once("./include/cfg-petar.php");
|
||
|
|
include_once("./include/layout.php");
|
||
|
|
include_once("./include/users.php");
|
||
|
|
include_once("./include/db.php");
|
||
|
|
include_once("./include/cfg-spam.php");
|
||
|
|
include_once("./include/cfg-customer.php");
|
||
|
|
|
||
|
|
# Misc local vars
|
||
|
|
$colspan="4";
|
||
|
|
|
||
|
|
$errore=false;
|
||
|
|
|
||
|
|
$email=strtolower($_REQUEST["email"] ?? '');
|
||
|
|
$domain=strtolower($_REQUEST["domain"] ?? '');
|
||
|
|
|
||
|
|
$rule=($_REQUEST["rule"] ?? '');
|
||
|
|
$_REQUEST["type"]=($_REQUEST["type"] ?? 'SND');
|
||
|
|
|
||
|
|
$_REQUEST["step"] = $_REQUEST["step"] ?? '';
|
||
|
|
$_REQUEST["pattern"] = $_REQUEST["pattern"] ?? '';
|
||
|
|
### echo "STEP1: [".$_REQUEST["step"]."]<p>";
|
||
|
|
|
||
|
|
if (isset($_REQUEST["newemail"])){
|
||
|
|
$newemail=explode("@",($_REQUEST["newemail"] ?? ''),2);
|
||
|
|
$case_defdomain=$newemail[1];
|
||
|
|
$case_defemail=$newemail[0];
|
||
|
|
} else {
|
||
|
|
$case_defdomain = "domain.com";
|
||
|
|
$case_defemail = "mario.rossi";
|
||
|
|
}
|
||
|
|
|
||
|
|
if (isset($_REQUEST["newemail"])){
|
||
|
|
$newpattern=explode("@",($_REQUEST["newemail"] ?? ''),2);
|
||
|
|
$pattern_domain=$newpattern[1];
|
||
|
|
} else {
|
||
|
|
$pattern_domain = "";
|
||
|
|
}
|
||
|
|
|
||
|
|
if ($pattern_domain != ""){
|
||
|
|
$_REQUEST["pattern"] = $pattern_domain;
|
||
|
|
}
|
||
|
|
|
||
|
|
switch ($_REQUEST["type"]) {
|
||
|
|
case "SND":
|
||
|
|
$case_desc="mittenti";
|
||
|
|
$case_file=$sndr_file;
|
||
|
|
break;
|
||
|
|
|
||
|
|
case "RCP":
|
||
|
|
$case_desc="destinatari";
|
||
|
|
$case_file=$rcpt_file;
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
|
||
|
|
# echo "STEP2: [".$_REQUEST["step"]."]<p>";
|
||
|
|
# echo "PAT1: [".$_REQUEST["pattern"]."]<p>";
|
||
|
|
if ($_REQUEST["step"]=="restart" && $_REQUEST["pattern"] != '') {
|
||
|
|
$sql="SELECT * FROM SPAMILTER where type='".$_REQUEST["type"]."' and (email LIKE '%".$_REQUEST["pattern"]."%' OR domain LIKE '%".$_REQUEST["pattern"]."%') order by domain,email desc";
|
||
|
|
} else {
|
||
|
|
$sql="SELECT * FROM SPAMILTER where type='".$_REQUEST["type"]."' order by domain,email desc";
|
||
|
|
}
|
||
|
|
### echo "STEP3: [".$_REQUEST["step"]."]<p>";
|
||
|
|
### echo "PAT2: [".$_REQUEST["pattern"]."]<p>";
|
||
|
|
|
||
|
|
function WriteFiles($case_file) {
|
||
|
|
|
||
|
|
$dbh = new PDO('sqlite:db/petar.db3');
|
||
|
|
$sql="SELECT * FROM spamilter where type='".$_REQUEST["type"]."' order by domain,email desc";
|
||
|
|
$result=$dbh->query($sql);
|
||
|
|
$rows=$result->fetchAll();
|
||
|
|
|
||
|
|
if ( count($rows) > 0 ) {
|
||
|
|
$handle = fopen("$case_file", "w");
|
||
|
|
foreach($rows as $row){
|
||
|
|
fprintf($handle, "%-30s | %-30s | %-30s\n" , $row["domain"], $row["email"],$row["action"]);
|
||
|
|
}
|
||
|
|
fclose($handle);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
?>
|
||
|
|
|
||
|
|
|
||
|
|
<!-- ------------------------------------------------------------------------ -->
|
||
|
|
|
||
|
|
<?php require 'include/inc-header.php';?>
|
||
|
|
|
||
|
|
<!-- ------------------------------------------------------------------------ -->
|
||
|
|
|
||
|
|
<?php require 'include/inc-top.php';?>
|
||
|
|
|
||
|
|
<!-- ------------------------------------------------------------------------ -->
|
||
|
|
|
||
|
|
<tr bgcolor=navy align=center>
|
||
|
|
<td colspan=<?php echo $colspan; ?> ><font color=yellow><b>Spamilter</b></font></td>
|
||
|
|
|
||
|
|
<?php
|
||
|
|
|
||
|
|
echo "<tr align=left valign=top>".
|
||
|
|
"<td colspan=$colspan>";
|
||
|
|
|
||
|
|
if ($_REQUEST["step"] == "restart" && $_REQUEST["pattern"] == ''){
|
||
|
|
$_REQUEST["step"] = '';
|
||
|
|
}
|
||
|
|
|
||
|
|
### echo "STEP4: [".$_REQUEST["step"]."]<p>";
|
||
|
|
if (($_REQUEST["step"] == "" && ($_REQUEST["type"] == "SND" || $_REQUEST["type"] == "RCP")) || $_REQUEST["pattern"] != ''){
|
||
|
|
|
||
|
|
echo "Gestione dei <b>$case_desc</b> [ $case_file ]".
|
||
|
|
" ".
|
||
|
|
"[ <a href=".$_SERVER["PHP_SELF"].">ricarica pagina</a> ]".
|
||
|
|
"<p>".
|
||
|
|
"<FORM NAME=emailspam ACTION=".$_SERVER["PHP_SELF"]." METHOD=POST>".
|
||
|
|
"<INPUT TYPE=TEXT NAME=email SIZE=20 MAXLENGTH=30 VALUE=".$case_defemail." onclick=\"value=''\" >".
|
||
|
|
" @ ".
|
||
|
|
"<INPUT TYPE=TEXT NAME=domain SIZE=20 MAXLENGTH=30 VALUE=".$case_defdomain." onclick=\"value=''\" >".
|
||
|
|
" azione <select name=rule>".
|
||
|
|
"<option value=Accept>Accept</option>".
|
||
|
|
"<option value=Reject>Reject</option>".
|
||
|
|
"</select>".
|
||
|
|
" ".
|
||
|
|
"[ <a href='javascript:document.emailspam.submit();'>aggiungi regola</a> ]".
|
||
|
|
" ".
|
||
|
|
"<INPUT TYPE=HIDDEN name=type value=".$_REQUEST["type"].">".
|
||
|
|
"<INPUT TYPE=HIDDEN name=step value=1></FORM>";
|
||
|
|
|
||
|
|
echo "<FORM NAME=finder ACTION=".$_SERVER["PHP_SELF"]." METHOD=POST>".
|
||
|
|
"<INPUT TYPE=TEXT NAME=pattern SIZE=20 MAXLENGTH=60 VALUE=".$pattern_domain.">".
|
||
|
|
" ".
|
||
|
|
"[ <a href='javascript:document.finder.submit();'>filtra risultati</a> ]".
|
||
|
|
"<INPUT TYPE=HIDDEN name=type value=".$_REQUEST["type"].">".
|
||
|
|
"<INPUT TYPE=HIDDEN name=step value='restart'>".
|
||
|
|
"</FORM>";
|
||
|
|
|
||
|
|
echo "<tr bgcolor=navy>".
|
||
|
|
"<td ><FONT COLOR=yellow>Dominio dei $case_desc".
|
||
|
|
"<td ><FONT COLOR=yellow>Email".
|
||
|
|
"<td ><FONT COLOR=yellow>Azione".
|
||
|
|
"<td align=center><FONT COLOR=yellow>x";
|
||
|
|
|
||
|
|
$result=$dbh->query($sql);
|
||
|
|
$rows=$result->fetchAll();
|
||
|
|
|
||
|
|
if ( count($rows) > 0 ) {
|
||
|
|
|
||
|
|
foreach($rows as $row){
|
||
|
|
|
||
|
|
if ($row["email"] == ""){
|
||
|
|
|
||
|
|
$row["email"] = "<div align=center>qualsiasi email</div>";
|
||
|
|
}
|
||
|
|
|
||
|
|
switch ($row["action"]){
|
||
|
|
|
||
|
|
case "Accept":
|
||
|
|
$fntcolor = "navy";
|
||
|
|
break;
|
||
|
|
|
||
|
|
case "Reject":
|
||
|
|
$fntcolor = "red";
|
||
|
|
break;
|
||
|
|
|
||
|
|
case "Tag":
|
||
|
|
$fntcolor = "magenta";
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
|
||
|
|
echo "<tr>".
|
||
|
|
"<td><FONT color=$fntcolor>".$row["domain"]."</FONT></td>".
|
||
|
|
"<td><FONT color=$fntcolor>".$row["email"]."</FONT></td>".
|
||
|
|
"<td><FONT color=$fntcolor>".$row["action"]."</FONT></td>".
|
||
|
|
"<td align=center>".
|
||
|
|
"<a href=".$_SERVER["PHP_SELF"]."?step=3&id=".$row['id']."&type=".$_REQUEST["type"].">".
|
||
|
|
"<img alt='burn it' src=pics/cut.gif border=0></a>";
|
||
|
|
}
|
||
|
|
|
||
|
|
} else {
|
||
|
|
|
||
|
|
echo "<tr>".
|
||
|
|
"<td colspan=$colspan align=center bgcolor=red><FONT=yellow>Nessun record</FONT>";
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
if ($_REQUEST["step"] == "1"){
|
||
|
|
|
||
|
|
### Campo Dominio vuoto
|
||
|
|
if (!$domain || $domain == ""){
|
||
|
|
$errore .= "Campo Dominio mancante<p>";
|
||
|
|
}
|
||
|
|
|
||
|
|
### Regola presente
|
||
|
|
$sql= "SELECT domain FROM SPAMILTER where type = '".$_REQUEST["type"]."' and domain = '".$domain."' and email = '".$email."'";
|
||
|
|
$result = $dbh->query($sql);
|
||
|
|
$rows=$result->fetchAll();
|
||
|
|
|
||
|
|
if ( count($rows) > 0 ) {
|
||
|
|
$errore .= "Regola gia' presente<p>";
|
||
|
|
}
|
||
|
|
|
||
|
|
### Stampa Errore
|
||
|
|
if ($errore){
|
||
|
|
|
||
|
|
echo "<font color=red><b>Errore</b></font><p>".
|
||
|
|
$errore.
|
||
|
|
"<p><a href='javascript:history.back();'>Correzione</a>";
|
||
|
|
|
||
|
|
} else {
|
||
|
|
|
||
|
|
### Inserimento nel DB
|
||
|
|
|
||
|
|
$sql = "insert into SPAMILTER (type,domain,email,action,other) VALUES ('".$_REQUEST["type"]."','".$domain."','".$email."','".$rule."','')";
|
||
|
|
$result = $dbh->query($sql);
|
||
|
|
|
||
|
|
if ($result = 1) {
|
||
|
|
echo "Scrittura Completata. Premi <a href=".$_SERVER["PHP_SELF"]."?type=".$_REQUEST["type"].">qui</a><br>";
|
||
|
|
}
|
||
|
|
|
||
|
|
WriteFiles($case_file);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
if ($_REQUEST["step"] == "3"){
|
||
|
|
|
||
|
|
if (isset($_REQUEST["vapor"])) {
|
||
|
|
|
||
|
|
$count = $dbh->exec("DELETE from SPAMILTER where id = '".$_REQUEST["id"]."'");
|
||
|
|
|
||
|
|
echo "<p>".
|
||
|
|
"Scrittura Completata. Premi <a href=".$_SERVER["PHP_SELF"]."?type=".$_REQUEST["type"].">qui</a><p>".
|
||
|
|
"<FONT COLOR=red>Record felicemente cancellati: ".$count;
|
||
|
|
|
||
|
|
WriteFiles($case_file);
|
||
|
|
|
||
|
|
} else {
|
||
|
|
|
||
|
|
$sql = "SELECT * FROM SPAMILTER where id = '".$_REQUEST["id"]."'";
|
||
|
|
$result = $dbh->query($sql);
|
||
|
|
$row=$result->fetch();
|
||
|
|
|
||
|
|
echo "<tr bgcolor=white align=center>".
|
||
|
|
"<td colspan=".$colspan."><b>Sei sicuro di voler cancellare questa incolpevole regola : </b> ?<br>".
|
||
|
|
"<font color=red><b>".$row["domain"]." : ".$row["email"]." : ".$row["action"].
|
||
|
|
"</b></font><p>".
|
||
|
|
"La tua risposta e' ".
|
||
|
|
"[ <a href=".$_SERVER["PHP_SELF"]."?step=3&vapor=yes&id=".$row["id"].
|
||
|
|
"&type=".$_REQUEST["type"].
|
||
|
|
">Si, non ho mai sopportato ".$row["domain"]." !</a> | ".
|
||
|
|
" <a href='javascript:history.back();'>No grazie</a> ]";
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
?>
|
||
|
|
|
||
|
|
<!-- ------------------------------------------------------------------------ -->
|
||
|
|
|
||
|
|
<?php require 'include/inc-footer.php';?>
|
||
|
|
|
||
|
|
<!-- ------------------------------------------------------------------------ -->
|