<?php

// Stephan Uhlmann <su@su2.info>
// GPL

// print one message
function print_data($s)
{
    
$p1 strpos($s,',');
    
$t date("dMY",substr($s,0,$p1));
    
$p2 strpos($s,',',$p1+1);
    
$ip substr($s,$p1+1,$p2-$p1-1);
    
$msg substr($s,$p2+1);
    echo 
"~" $msg "<small><i>@" $t "</i></small><br/>\n";
}

// embedded into other script or standalone?
if ($_SERVER['PHP_SELF'] == "/transmissions.php"$embedded false; else $embedded true;


// post data
if (isset($_POST['sendok'])) $sendok $_POST['sendok']; else $sendok="false";
if (isset(
$_POST['message'])) $message $_POST['message']; else $message="";
if (isset(
$_POST['token'])) $token $_POST['token']; else $token="";

// don't allow empty messages (only enter pressed), redirect directly back
if ($sendok=="true" && $message=="") { header("Location: index.php"); exit; }

// ignore spammers
if (strlen($message)<3$sendok="false";
if (
strlen($message)>64$sendok="false";
if (
$token==""$sendok="false";
if ((
time() - (int)hex2bin($token)) < 3$sendok="false"// only accept when between loading and sending the form some time is spent
if (stristr($message,"a href=")) $sendok="false";
if (
preg_match("#https?://.*#i",$message,$matches)) $sendok="false";
if (
preg_match("/\n/",$message,$matches)) $sendok="false";
if (
preg_match("/lllll/i",$message,$matches)) $sendok="false";
if (
preg_match("/somestrangetextvista/i",$message,$matches)) $sendok="false";
if (
$message=="Unknown"$sendok="false";


if (
$sendok == "true")
{
    
// make string safe
    
$message htmlentities($messageENT_QUOTES'utf-8');
    
// write to file
    
$fh fopen ("../../websecret/transmissions.txt""a");
    
fwrite ($fhtime() . "," $_SERVER["REMOTE_ADDR"] . "," $message "\n");
    
fclose ($fh);
    
// inform via email
    
@mail("su-transmission@su2.info","su2transmission","$message");
    
// reload page
    
header("Location: index.php");
}


// print transmissions

$f file("../../websecret/transmissions.txt");

if (
$embedded == true)
{
    echo 
"<small>+++ interstellar transmissions +++</small><br/>";
    for (
$i=11$i>=0$i--)
    {
        
// reverse
        
$j sizeof($f) - $i 1;
        if (
$j >= 0)
            
print_data($f[$j]);
    }
    echo 
"<br/>";
    echo 
"<form action=\"transmissions.php\" method=\"post\">";
    echo 
"<small>leave your message here:</small>";
    echo 
"<br/>";
    echo 
"<input type=\"text\" size=\"32\" maxlength=\"64\" name=\"message\" value=\"\" class=\"sendline\"/>";
    echo 
"<input type=\"hidden\" name=\"sendok\" value=\"true\"/>";
    
$token bin2hex(time());
    echo 
"<input type=\"hidden\" name=\"token\" value=\"$token\"/>";
    echo 
"</form>";
}
else
{
    include(
"functions.inc.php");
    
html_begin("su2 :: interstellar transmissions");
    echo 
"<small>+++ interstellar transmissions +++</small><br/>";
    echo 
"<small>in reverse order:</small><br/><br/>\n";
    
$i sizeof($f) - 1;
    for (
$j=$i$j>=0$j--)
    {
        
print_data($f[$j]);
    }
    
html_end();
}

?>