All pastes #771693 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-11-13 03:49 UTC
rendered paste body
require_once("xajax/xajax.inc.php");
require_once("autodialer.common.php");

$xajax = new xajax("autodialer.server.php");
$xajax->registerFunction("ad_display");
$xajax->registerFunction("ad_results");
$xajax->registerFunction("ad_generate");
$xajax->processRequests();

function ad_display () {
        global $dbh;

        $sql = "SELECT filename,queuetime,numbercnt,length(results) > 0 as result FROM autodialer_results ORDER BY queuetime DESC LIMIT 30";
        $sth = $dbh->prepare($sql);
        $sth->execute();

        $resulttable = "Last update: ".date("Y-m-d H:i:s")."<table border='0'><tr><th>Filename</th><th>Queue Time</th><th>Numbers</th><th>Done?</th></tr>";
        while ($row = $sth->fetch(PDO::FETCH_ASSOC)) {
                $complete = "<font color='red'>No</font>";
                if ($row["result"]) {
                        $resulttable .= "<tr bgcolor='lightblue'><td><a href='' onclick=\"xajax_ad_results('".$row["filename"]."'); return false;\" onclick='xajax'>".$row["filename"]."</a></td><td>".$row["queuetime"]."</td><td align='center'>".$row["numbercnt"]."</td><td align='center'>Yes</td></tr>";
                } else {
                        $resulttable .= "<tr bgcolor='red'><td>".$row["filename"]."</td><td>".$row["queuetime"]."</td><td align='center'>".$row["numbercnt"]."</td><td align='center'>No</td></tr>";
                }
        }
        $resulttable .= "</table>";
        $objResponse = new xajaxResponse();
        $objResponse->addAssign("resulttable", "innerHTML", $resulttable);
        return $objResponse;
}

function ad_results ($filename) {
        global $dbh;
        $sql = "SELECT results FROM autodialer_results WHERE filename='".$filename."'";
        $sth = $dbh->prepare($sql);
        $sth->execute();

        $row = $sth->fetch(PDO::FETCH_ASSOC);

        $objResponse = new xajaxResponse();
        $objResponse->addAssign("resultdata", "value", $row["results"]);
        $objResponse->addAssign("filename", "innerHTML", "Results for ".$filename);
        return $objResponse;
}

function ad_generate ($numbers) {
        global $dbh;
        $username = $_COOKIE["username"];
        if (!isset($username)) {
                $username = 'anonymous';
        }

        $objResponse = new xajaxResponse();
        $objResponse->addAssign("filename", "innerHTML", "Generating...");

        $numbers_output = "";
        $error_output = "";

        $numbercnt = 0;
        foreach (explode("\n",$numbers) as $number) {
                $number = preg_replace("/[^0-9]/","",$number);
                if (strlen($number) > 0) {
                        $numbers_output .= $number."\r\n";
                        $numbercnt++;
                        if (strlen($number) != 10) {
                                $error_output .= $number." is an invalid number. Please fix.\r\n";
                        }
                }
        }

        if (strlen($numbers_output == 0)) {
                $error_output .= "No numbers!\r\n";
        }

        if (strlen($error_output) == 0) {
                $file = $username."-".date("Y-m-d_H:i:s").".txt";
                $tmpfile = "tmp/.".$file;
                if (!($fh = fopen($tmpfile, 'w'))) {
                        $error_output .= "Error generating autodialer file.<br>";
                } else {
                        fwrite($fh,"SEQUENTIAL\n");
                        fwrite($fh,str_replace("\r",";",$numbers_output));
                        fclose($fh);

                        if (!($conn = ssh2_connect("172.16.5.116", 22))) {
                                $error_output .= "Failed to connect to provlinux01.\r\n";
                        } else {
                                if (!ssh2_auth_pubkey_file($conn, 'autodial', 'rsa_provlinux01.pub', 'rsa_provlinux01')) {
                                        $error_output .= "Failed to authenticate to provlinux01.\r\n";
                                } else {
                                        if (!ssh2_scp_send($conn, $tmpfile, "~autodial/number_files_2/$file")) {
                                                $error_output .= "Failed to send file to provlinux01.<br>";
                                        } else {
                                                $sql = "INSERT INTO autodialer_results (filename,queuetime,numbercnt) VALUES ('$file',now(),$numbercnt)";
                                                $sth = $dbh->prepare($sql);
                                                $sth->execute();
                                                $objResponse->addAssign("filename", "innerHTML", "Generated ".$file);
                                        }
                                }
                        }
                }
                unlink($tmpfile);
        }

        if (!strlen($error_output) == 0) {
                $objResponse->addAssign("resultdata", "value", $error_output);
                $objResponse->addAssign("numbers", "value", $numbers_output);
        } else {
                $objResponse->addAssign("numbers", "value", "");
                $objResponse->addAssign("resultdata", "value", "");
        }

        return $objResponse;
}