PHP class for communicating with DA

l0rdphi1

Verified User
Hey.

This is a small PHP class put together to help communicate with DirectAdmin. It is simple enough, and most anyone can make good use of it.

Current Version: v2.7.2
Last updated 2014-03-18

Download: php-source or tarball

Numerous implementation examples are located here.

Pretty nifty, eh?
 
Last edited:

loopforever

Verified User
An additional method is to simply use fopen(), file(), or getfilecontents() on the full URL. For example:

PHP:
$diskUsage = getfilecontents("http://user:pass@your.server.com:2222/CMD_API_SHOW_USER_USAGE?user=$some_user_name")

echo "Disk Usage is: $diskUsage";
Just another way of doing this... :) Thanks for sharing your method, I might put it to good use...
 

l0rdphi1

Verified User
loopforever said:
An additional method is to simply use fopen(), file(), or getfilecontents() on the full URL. For example:

PHP:
$diskUsage = getfileco [...] s: $diskUsage";
Just another way of doing this... :) Thanks for sharing your method, I might put it to good use...
That doesn't work with the new sessions sytem. And plus you have to parse_strthe results :)
 

Pilot

New member
How would you send your information to CMD_ACCOUNT_USER to create an account?
I made all the fields and such, but I'm unsure on how to send the info.
 

l0rdphi1

Verified User
John said he'd be adding an API_ACCOUNT_USER soon, but right now I use:
PHP:
		$fsock->request("/CMD_ACCOUNT_USER?username=$client_sql[client_uname]&email=".strtolower($client_sql[client_email])
			."&passwd=$client_sql[client_pword]&passwd2=$client_sql[client_pword]&domain=$client_sql[client_domain]"
			."&bandwidth=".($client_sql[client_bandwidth]*1024)."&quota=$client_sql[client_storage]&uvdomains=ON&unsubdomains=ON"
			."&unemails=ON&unemailf=ON&unemailml=ON&unemailr=ON&umysql=ON&udomainptr=ON&uftp=ON&aftp=ON&cgi=ON&ssl=ON"
			."&suspend_at_limit=ON&skin=loopXv1&ip=$server_ip&add=Submit&action=create");
$client_sql is an array of the user's data.

$server_ip the server's shared IP.

*Note: This example uses the version 1.xx of this class; you need the wrapper to continue in this fashion*
 
Last edited:

l0rdphi1

Verified User
I edited my original post to include version 1.1 of the class.

I hadn't realized PHP's parse_str() function breaks when DA uses '&' characters in the returned string, and thus version 1.1 fixes this.

Additionally, I recently replied to this thread with the code I use to create DA accounts.

Enjoy,

Phi1.
 
Last edited:

Gadget

Verified User
I have one question, when this code is in actual working form, cant someone go "view source" and pull out your username and password for DA Login?
 

l0rdphi1

Verified User
Not that I'm aware of. Even if view-source worked for me, shouldn't it only display the HTML source, and not any of the PHP?

And incase you fear someone actually getting the PHP source: you could always encrypt the password making it at least a little harder to figure out.

Phi1.
 

lidios

Verified User
How about having visitors create mailboxes?

How do you implement this in the class?

<form action=/CMD_EMAIL_POP method=POST>
action=create
domain=domain.com
user=emailname (do not include @domain.com)
passwd=password
passwd2=password
create=Create

???
 

l0rdphi1

Verified User
You won't need a class if you're going to send it via a form, but then again, I'm not sure that will even work. Try it, if you please.

I can modify the class to support POST, but I won't get time enough for that until this weekend.

Phi1.
 

thoroughfare

Verified User
Just post the form to your own PHP script, which in turn parses the form and uses the DA communicating class to send the info on to DA ;)

Matt
 

l0rdphi1

Verified User
The problem as I take it is that DA's CMD_EMAIL_POP API doesn't take GET data. As I said though, I can add support for POST this weekend :)
 

l0rdphi1

Verified User
I'm currently in the process of rewriting this by the way. Will support both GET and POST, and fix a bug in the array_last_parsed method.

Feel free to sicky, if you like :)
 

l0rdphi1

Verified User
Okay, 2.0 is up. There have been a lot of changes.

I put together a wrapper for old versions, so you don't have to recode anything. Check that out here.

Enjoy :)
 
Last edited:
Top