Initial commit

This commit is contained in:
Charlie Root 2025-03-01 00:58:18 +01:00
commit 529efd53a1
140 changed files with 10310 additions and 0 deletions

263
spam-manage.php Normal file
View file

@ -0,0 +1,263 @@
<?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 ]".
"&nbsp;&nbsp;".
"[ <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>".
"&nbsp;&nbsp;".
"[ <a href='javascript:document.emailspam.submit();'>aggiungi regola</a> ]".
"&nbsp;&nbsp;".
"<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.">".
"&nbsp;&nbsp;".
"[ <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> | ".
"&nbsp;&nbsp;<a href='javascript:history.back();'>No grazie</a> ]";
}
}
?>
<!-- ------------------------------------------------------------------------ -->
<?php require 'include/inc-footer.php';?>
<!-- ------------------------------------------------------------------------ -->