PHP Classes

File: Accounting.php.inc

Recommend this page to a friend!
  Classes of Ahmed Selim [ Mr.Ajax ]   CPanel Control Class   Accounting.php.inc   Download  
File: Accounting.php.inc
Role: Auxiliary script
Content type: text/plain
Description: Main Functions of Cpanel
Class: CPanel Control Class
Manage CPanel hosting accounts
Author: By
Last change:
Date: 17 years ago
Size: 4,351 bytes
 

Contents

Class file image Download
<?php
# cpanel4 - Accounting.php.inc Copyright(c) 1999-2002 John N. Koston
# All rights Reserved.
# nick@cpanel.net http://cpanel.net
#
# This file is governed by the cPanel license


global $cpanelaccterr;


function
suspend ($host,$user,$accesshash,$usessl,$suspenduser) {
   
$result = whmreq("/scripts/remote_suspend?user=${suspenduser}",$host,$user,$accesshash,$usessl);
    if (
$cpanelaccterr != "") { return; }
    return
$result;
}
function
unsuspend ($host,$user,$accesshash,$usessl,$suspenduser) {
   
$result = whmreq("/scripts/remote_unsuspend?user=${suspenduser}",$host,$user,$accesshash,$usessl);
    if (
$cpanelaccterr != "") { return; }
    return
$result;
}
function
killacct ($host,$user,$accesshash,$usessl,$killuser) {
   
$result = whmreq("/scripts/killacct?user=${killuser}&nohtml=1",$host,$user,$accesshash,$usessl);
    if (
$cpanelaccterr != "") { return; }
    return
$result;
}
function
showversion ($host,$user,$accesshash,$usessl) {
   
$result = whmreq("/scripts2/showversion",$host,$user,$accesshash,$usessl);
    if (
$cpanelaccterr != "") { return; }
    return
$result;
}
function
createacct ($host,$user,$accesshash,$usessl,$acctdomain,$acctuser,$acctpass,$acctplan) {
   
$result = whmreq("/scripts/wwwacct?remote=1&nohtml=1&username=${acctuser}&password=${acctpass}&domain=${acctdomain}&plan=${acctplan}",$host,$user,$accesshash,$usessl);
    if (
$cpanelaccterr != "") { return; }
    return
$result;
}

function
listaccts ($host,$user,$accesshash,$usessl) {
   
$result = whmreq("/scripts2/listaccts?nohtml=1&viewall=1",$host,$user,$accesshash,$usessl);
    if (
$cpanelaccterr != "") { return; }

       
$page = split("\n",$result);
    foreach (
$page as $line) {
        list(
$acct,$contents) = split("=", $line);
        if (
$acct != "") {
           
$allc = split(",", $contents);
           
$accts[$acct] = $allc;
        }
        }
        return(
$accts);
}
function
listpkgs ($host,$user,$accesshash,$usessl) {
   
$result = whmreq("/scripts/remote_listpkg",$host,$user,$accesshash,$usessl);
    if (
$cpanelaccterr != "") { return; }


       
$page = split("\n",$result);
    foreach (
$page as $line) {
        list(
$pkg,$contents) = split("=", $line);
        if (
$pkg != "") {
           
$allc = split(",", $contents);
           
$pkgs[$pkg] = $allc;
        }
        }
        return(
$pkgs);
}
function
whmreq ($request,$host,$user,$accesshash,$usessl) {


   
$cleanaccesshash = preg_replace("'(\r|\n)'","",$accesshash);
       
$authstr = $user . ":" . $cleanaccesshash;
   
$cpanelaccterr = "";


    if (
function_exists("curl_init")) {
       
$ch = curl_init();
        if (
$usessl) {
           
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
           
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,0);
           
curl_setopt($ch, CURLOPT_URL, "https://${host}:2087" . $request);
        } else {
           
curl_setopt($ch, CURLOPT_URL, "http://${host}:2086" . $request);
                }
       
curl_setopt($ch, CURLOPT_HEADER, 0);
       
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
           
$curlheaders[0] = "Authorization: WHM $authstr";
               
curl_setopt($ch,CURLOPT_HTTPHEADER,$curlheaders);
       
$data=curl_exec ($ch);
       
curl_close ($ch);
    } elseif (
function_exists("socket_create")) {
        if (
$usessl) {
           
$cpanelaccterr = "SSL Support requires curl";
            return;
        }
       
$service_port = 2086;
       
$address = gethostbyname($host);
       
$socket = socket_create (AF_INET, SOCK_STREAM, 0);
        if (
$socket < 0) {
               
$cpanelaccterr = "socket_create() failed";
            return;
        }
       
$result = socket_connect ($socket, $address, $service_port);
        if (
$result < 0) {
               
$cpanelaccterr = "socket_connect() failed";
            return;
        }
       
$in = "GET $request HTTP/1.0\n";
       
socket_write($socket,$in,strlen($in));
       
$in = "Connection: close\n";
       
socket_write($socket,$in,strlen($in));
       
$in = "Authorization: WHM $authstr\n\n\n";
       
socket_write($socket,$in,strlen($in));

       
$inheader = 1;
        while((
$buf = socket_read($socket, 512)) != false) {
          if (!
$inheader) {
             
$data .= $buf;
              }
          if(
preg_match("'\r\n\r\n$'s", $buf)) {
           
$inheader = 0;
          }
          if(
preg_match("'\n\n$'s", $buf)) {
           
$inheader = 0;
          }
          if(
preg_match("'\r\n$'s", $buf)) {
           
$inheader = 0;
          }
        }

    } else {
       
$cpanelaccterr = "php not compiled with --enable-sockets OR curl";
        return;
    }

    return
$data;
}

?>