הרשם שאלות ותשובות רשימת חברים לוח שנה הודעות מהיום

חזור   הוסטס - פורום אחסון האתרים הגדול בישראל > עיצוב גראפי, תכנות על כל שפותיו וקידום ושיווק אתרים > פורום תיכנות

   
|!|

השב
 
כלים לאשכול תצורת הצגה
ישן 04-11-11, 14:48   # 1
iSraelServ
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Mar 2011
הודעות: 52

iSraelServ לא מחובר  

בעיה|מערכת הרשמה אוטומטית DirectAdmin

היי.. קיצור אני עכשיו העתקתי מערכת הרשמה אוטומטית שמישהו יצר כדי להתחיל לשפר אותה. אבל היא לא עובדת.

קוד:

PHP קוד:
    <?
     
    $server_ip
="11.22.33.44";
    
$server_login="admin";
    
$server_pass="mypass";
    
$server_ssl="N";
     
     
    
$username=$_POST['username'];
    
$domain=$_POST['domain'];
    
$email=$_POST['email'];
    
$pass=$_POST['pass'];
    
$package=$_POST['package'];
     
     
    if (isset(
$_POST['action']) && $_POST['action'] == "add")
    {
    
$sock = new HTTPSocket;
    echo 
"Creating user $username on server $ip.... <br>\n";
         if (
$server_ssl == 'Y')
    {
    
$sock->connect("ssl://".$server_ip2222);
    }
    else
    {
    
$sock->connect($server_ip2222);
    }
    

     
    
$sock->set_login($server_login,$server_pass);
     
    
$sock->query('/CMD_API_ACCOUNT_USER',
    array(
    
'action' => 'create',
    
'add' => 'Submit',
    
'username' => $username,
    
'email' => $email,
    
'passwd' => $pass,
    
'passwd2' => $pass,
    
'domain' => $domain,
    
'package' => $package,
    
'ip' => $server_ip,
    
'notify' => 'yes'
    
));
     
    
$result $sock->fetch_parsed_body();
     
    if (
$result['error'] != "0")
    {
    echo 
"<b>Error Creating user $username on server $server_ip:<br>\n";
    echo 
$result['text']."<br>\n";
    echo 
$result['details']."<br></b>\n";
    }
    else
    {
    echo 
"User $username created on server $server_ip<br>\n";
    }
     
    exit;
    }
     
    
?>
     
     
    <form method="POST">
    <input type="hidden" name="action" value="add" />
    שם משתמש: <input type="text" name="username" /><br />
    דומיין:<input type="text" name="domain" /><br />
    אימייל: <input type="text" name="email" /><br />
    סיסמא: <input type="password" name="pass" /><br />
    חבילה: <input type="text" name="package" /><br />
   <input type="submit" value="הרשמה!" /><br />
    </form>
כמובן שזה לא כל הקוד כל השאר זה סתם עיצוב וHTML..

עכשיו השגיאה שזה כותב :
בהתחלה זה בסדר אחרי שאני מתחיל את ההרשמה זה כותב :
ציטוט:
"Fatal error: Class 'HTTPSocket' not found in /home/admin/domains/afafafeafef.co.il/public_html/testregister.php on line 54"
  Reply With Quote
ישן 04-11-11, 15:08   # 2
mrns
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Apr 2010
הודעות: 346

mrns לא מחובר  

חסר לך מחלקה בשם HTTPSocket בקיצור חסרים לך קבצים(הרבה).
"כדי להתחיל לשפר אותה" מאיזה בחינה בדיוק תשפר אותה אם אתה לא יודע PHP?
__________________
<°)))))><
mrns - קידוד ותכנות אתרים
  Reply With Quote
ישן 04-11-11, 15:22   # 3
Programnnd
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Feb 2011
הודעות: 143

Programnnd לא מחובר  

לא חסרים כל כך הרבה קבצים אני עבדתי עם הAPI של DA .
המנהלים של DA יצרו קודים מוכנים שמבצעים בדיוק את מה שאתה רוצה לבצע ויש קובץ שבתוכו יש מחלקה בשם HTTPSocket שהמחלקה בעצם מבצעת את החיבור לDA וכל הפעולות שאתה רוצה לבצע נמצאים שם בתוך המחלקה ..
תחפש API DA בגוגל ותמצא את מה שאני מדבר עליו יש קודים מוכנים שDA יצרו להקל עליכם
__________________
XHTML - CSS3 - BOOSTRAP - JQUERY - AJAX - PHP - SQL - SECURITY SQL
benworksites@gmail.com


  Reply With Quote
ישן 04-11-11, 18:30   # 4
MyDns
עסק רשום [?]
 
מיני פרופיל
תאריך הצטרפות: Feb 2011
מיקום: כפר סבא
גיל: 32
הודעות: 561

MyDns לא מחובר  

אני לא רואה פה require לקובץ של ה socket
  Reply With Quote
ישן 05-11-11, 22:42   # 5
iSraelServ
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Mar 2011
הודעות: 52

iSraelServ לא מחובר  

הקובץ httpsocket.php (לא אני כתבתי)
PHP קוד:
    <?php
     
    
/**
     * Socket communication class.
     *
     * Originally designed for use with DirectAdmin's API, this class will fill any HTTP socket need.
     *
     * Very, very basic usage:
     * $Socket = new HTTPSocket;
     * echo $Socket->get('http://user:pass@somesite.com/somedir/some.file?query=string&this=that');
     *
     * @author Phi1 'l0rdphi1' Stier <l0rdphi1@liquenox.net>
     * @package HTTPSocket
     * @version 2.6
     */
    
class HTTPSocket {
     
    var 
$version '2.6';
     
    
/* all vars are private except $error, $query_cache, and $doFollowLocationHeader */
     
    
var $method 'GET';
     
    var 
$remote_host;
    var 
$remote_port;
    var 
$remote_uname;
    var 
$remote_passwd;
     
    var 
$result;
    var 
$result_header;
    var 
$result_body;
    var 
$result_status_code;
     
    var 
$lastTransferSpeed;
     
    var 
$bind_host;
     
    var 
$error = array();
    var 
$warn = array();
    var 
$query_cache = array();
     
    var 
$doFollowLocationHeader TRUE;
    var 
$redirectURL;
     
    var 
$extra_headers = array();
     
    
/**
      * Create server "connection".
      *
      */
    
function connect($host$port '' )
    {
    if (!
is_numeric($port))
    {
    
$port 80;
    }
     
    
$this->remote_host $host;
    
$this->remote_port $port;
    }
     
    function 
bind$ip '' )
    {
    if ( 
$ip == '' )
    {
    
$ip $_SERVER['SERVER_ADDR'];
    }
     
    
$this->bind_host $ip;
    }
     
    
/**
      * Change the method being used to communicate.
      *
      * @param string|null request method. supports GET, POST, and HEAD. default is GET
      */
    
function set_method$method 'GET' )
    {
    
$this->method strtoupper($method);
    }
     
    
/**
      * Specify a username and password.
      *
      * @param string|null username. defualt is null
      * @param string|null password. defualt is null
      */
    
function set_login$uname ''$passwd '' )
    {
    if ( 
strlen($uname) > )
    {
    
$this->remote_uname $uname;
    }
     
    if ( 
strlen($passwd) > )
    {
    
$this->remote_passwd $passwd;
    }
     
    }
     
    
/**
      * Query the server
      *
      * @param string containing properly formatted server API. See DA API docs and examples. Http:// URLs O.K. too.
      * @param string|array query to pass to url
      * @param int if connection KB/s drops below value here, will drop connection
      */
    
function query$request$content ''$doSpeedCheck )
    {
    
$this->error $this->warn = array();
    
$this->result_status_code NULL;
     
    
// is our request a http:// ... ?
    
if (preg_match('!^http://!i',$request))
    {
    
$location parse_url($request);
    
$this->connect($location['host'],$location['port']);
    
$this->set_login($location['user'],$location['pass']);
     
    
$request $location['path'];
    
$content $location['query'];
     
    if ( 
strlen($request) < )
    {
    
$request '/';
    }
     
    }
     
    
$array_headers = array(
    
'User-Agent' => "HTTPSocket/$this->version",
    
'Host' => ( $this->remote_port == 80 $this->remote_host "$this->remote_host:$this->remote_port" ),
    
'Accept' => '*/*',
    
'Connection' => 'Close' );
     
    foreach ( 
$this->extra_headers as $key => $value )
    {
    
$array_headers[$key] = $value;
    }
     
    
$this->result $this->result_header $this->result_body '';
     
    
// was content sent as an array? if so, turn it into a string
    
if (is_array($content))
    {
    
$pairs = array();
     
    foreach ( 
$content as $key => $value )
    {
    
$pairs[] = "$key=".urlencode($value);
    }
     
    
$content join('&',$pairs);
    unset(
$pairs);
    }
     
    
$OK TRUE;
     
    
// instance connection
    
if ($this->bind_host)
    {
    
$socket socket_create(AF_INETSOCK_STREAMSOL_TCP);
    
socket_bind($socket,$this->bind_host);
     
    if (!@
socket_connect($socket,$this->remote_host,$this->remote_port))
    {
    
$OK FALSE;
    }
     
    }
    else
    {
    
$socket = @fsockopen$this->remote_host$this->remote_port$sock_errno$sock_errstr10 );
    }
     
    if ( !
$socket || !$OK )
    {
    
$this->error[] = "Can't create socket connection to $this->remote_host:$this->remote_port.";
    return 
0;
    }
     
    
// if we have a username and password, add the header
    
if ( isset($this->remote_uname) && isset($this->remote_passwd) )
    {
    
$array_headers['Authorization'] = 'Basic '.base64_encode("$this->remote_uname:$this->remote_passwd");
    }
     
    
// for DA skins: if $this->remote_passwd is NULL, try to use the login key system
    
if ( isset($this->remote_uname) && $this->remote_passwd == NULL )
    {
    
$array_headers['Cookie'] = "session={$_SERVER['SESSION_ID']}; key={$_SERVER['SESSION_KEY']}";
    }
     
    
// if method is POST, add content length & type headers
    
if ( $this->method == 'POST' )
    {
    
$array_headers['Content-type'] = 'application/x-www-form-urlencoded';
    
$array_headers['Content-length'] = strlen($content);
    }
    
// else method is GET or HEAD. we don't support anything else right now.
    
else
    {
    if (
$content)
    {
    
$request .= "?$content";
    }
    }
     
    
// prepare query
    
$query "$this->method $request HTTP/1.0
    "
;
    foreach ( 
$array_headers as $key => $value )
    {
    
$query .= "$key: $value
    "
;
    }
    
$query .= "
    "
;
     
    
// if POST we need to append our content
    
if ( $this->method == 'POST' && $content )
    {
    
$query .= "$content
     
    "
;
    }
     
    
// query connection
    
if ($this->bind_host)
    {
    
socket_write($socket,$query);
     
    
// now load results
    
while ( $out socket_read($socket,2048) )
    {
    
$this->result .= $out;
    }
    }
    else
    {
    
fwrite$socket$querystrlen($query) );
     
    
// now load results
    
$this->lastTransferSpeed 0;
    
$status socket_get_status($socket);
    
$startTime time();
    
$length 0;
    
$prevSecond 0;
    while ( !
feof($socket) && !$status['timed_out'] )
    {
    
$chunk fgets($socket,1024);
    
$length += strlen($chunk);
    
$this->result .= $chunk;
     
    
$elapsedTime time() - $startTime;
     
    if ( 
$elapsedTime )
    {
    
$this->lastTransferSpeed = ($length/1024)/$elapsedTime;
    }
     
    if ( 
$doSpeedCheck && $elapsedTime && $this->lastTransferSpeed $doSpeedCheck )
    {
    
$this->warn[] = "kB/s for last 5 seconds is below 50 kB/s (~".( ($length/1024)/$elapsedTime )."), dropping connection...";
    
$this->result_status_code 503;
    break;
    }
     
    }
     
    if ( 
$this->lastTransferSpeed == )
    {
    
$this->lastTransferSpeed $length/1024;
    }
     
    }
     
    list(
$this->result_header,$this->result_body) = split("
     
    "
,$this->result,2);
     
    if (
$this->bind_host)
    {
    
socket_close($socket);
    }
    else
    {
    
fclose($socket);
    }
     
    
$this->query_cache[] = $query;
     
     
    
$headers $this->fetch_header();
     
    
// what return status did we get?
    
if (!$this->result_status_code)
    {
    
preg_match("#HTTP/1\.. (\d+)#",$headers[0],$matches);
    
$this->result_status_code $matches[1];
    }
     
    
// did we get the full file?
    
if ( !empty($headers['content-length']) && $headers['content-length'] != strlen($this->result_body) )
    {
    
$this->result_status_code 206;
    }
     
    
// now, if we're being passed a location header, should we follow it?
    
if ($this->doFollowLocationHeader)
    {
    if (
$headers['location'])
    {
    
$this->redirectURL $headers['location'];
    
$this->query($headers['location']);
    }
    }
     
    }
     
    function 
getTransferSpeed()
    {
    return 
$this->lastTransferSpeed;
    }
     
    
/**
      * The quick way to get a URL's content :)
      *
      * @param string URL
      * @param boolean return as array? (like PHP's file() command)
      * @return string result body
      */
    
function get($location$asArray FALSE )
    {
    
$this->query($location);
     
    if ( 
$this->get_status_code() == 200 )
    {
    if (
$asArray)
    {
    return 
split("\n",$this->fetch_body());
    }
     
    return 
$this->fetch_body();
    }
     
    return 
FALSE;
    }
     
    
/**
      * Returns the last status code.
      * 200 = OK;
      * 403 = FORBIDDEN;
      * etc.
      *
      * @return int status code
      */
    
function get_status_code()
    {
    return 
$this->result_status_code;
    }
     
    
/**
      * Adds a header, sent with the next query.
      *
      * @param string header name
      * @param string header value
      */
    
function add_header($key,$value)
    {
    
$this->extra_headers[$key] = $value;
    }
     
    
/**
      * Clears any extra headers.
      *
      */
    
function clear_headers()
    {
    
$this->extra_headers = array();
    }
     
    
/**
      * Return the result of a query.
      *
      * @return string result
      */
    
function fetch_result()
    {
    return 
$this->result;
    }
     
    
/**
      * Return the header of result (stuff before body).
      *
      * @param string (optional) header to return
      * @return array result header
      */
    
function fetch_header$header '' )
    {
    
$array_headers split("
    "
,$this->result_header);
     
    
$array_return = array( => $array_headers[0] );
    unset(
$array_headers[0]);
     
    foreach ( 
$array_headers as $pair )
    {
    list(
$key,$value) = split(": ",$pair,2);
    
$array_return[strtolower($key)] = $value;
    }
     
    if ( 
$header != '' )
    {
    return 
$array_return[strtolower($header)];
    }
     
    return 
$array_return;
    }
     
    
/**
      * Return the body of result (stuff after header).
      *
      * @return string result body
      */
    
function fetch_body()
    {
    return 
$this->result_body;
    }
     
    
/**
      * Return parsed body in array format.
      *
      * @return array result parsed
      */
    
function fetch_parsed_body()
    {
    
parse_str($this->result_body,$x);
    return 
$x;
    }
     
    }
     
    
?>
מה שהראיתי מקודם
PHP קוד:
 <?
     
include ('httpdsocket.php');
    
$server_ip="11.22.33.44";
    
$server_login="admin";
    
$server_pass="mypass";
    
$server_ssl="N";
     
     
    
$username=$_POST['username'];
    
$domain=$_POST['domain'];
    
$email=$_POST['email'];
    
$pass=$_POST['pass'];
    
$package=$_POST['package'];
     
     
    if (isset(
$_POST['action']) && $_POST['action'] == "add")
    {
    
$sock = new HTTPSocket;
    echo 
"Creating user $username on server $ip.... <br>\n";
         if (
$server_ssl == 'Y')
    {
    
$sock->connect("ssl://".$server_ip2222);
    }
    else
    {
    
$sock->connect($server_ip2222);
    }
    

     
    
$sock->set_login($server_login,$server_pass);
     
    
$sock->query('/CMD_API_ACCOUNT_USER',
    array(
    
'action' => 'create',
    
'add' => 'Submit',
    
'username' => $username,
    
'email' => $email,
    
'passwd' => $pass,
    
'passwd2' => $pass,
    
'domain' => $domain,
    
'package' => $package,
    
'ip' => $server_ip,
    
'notify' => 'yes'
    
));
     
    
$result $sock->fetch_parsed_body();
     
    if (
$result['error'] != "0")
    {
    echo 
"<b>Error Creating user $username on server $server_ip:<br>\n";
    echo 
$result['text']."<br>\n";
    echo 
$result['details']."<br></b>\n";
    }
    else
    {
    echo 
"User $username created on server $server_ip<br>\n";
    }
     
    exit;
    }
     
    
?>
     
     
    <form method="POST">
    <input type="hidden" name="action" value="add" />
    שם משתמש: <input type="text" name="username" /><br />
    דומיין:<input type="text" name="domain" /><br />
    אימייל: <input type="text" name="email" /><br />
    סיסמא: <input type="password" name="pass" /><br />
    חבילה: <input type="text" name="package" /><br />
   <input type="submit" value="הרשמה!" /><br />
    </form>
עכשיו הוא עובד על הדף הרבה זמן.. ואחרי זה זה כותב
שגיאה המשתמש לא יכול להפתח בסרבר (אייפי של הסרבר) בגלל הסיבות האלה:
(כלום)


קיצור הכל תקין ועדיין לא עובד.. למה?
  Reply With Quote
ישן 05-11-11, 23:01   # 6
Xinxy
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Feb 2008
הודעות: 259

Xinxy לא מחובר  

$server_ip="11.22.33.44";
$server_login="admin";
$server_pass="mypass";
$server_ssl="N";

שינית את הפרטים האלה? :|
  Reply With Quote
ישן 06-11-11, 20:09   # 7
iSraelServ
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Mar 2011
הודעות: 52

iSraelServ לא מחובר  

ציטוט:
נכתב במקור על ידי Xinxy צפה בהודעה
$server_ip="11.22.33.44";
$server_login="admin";
$server_pass="mypass";
$server_ssl="N";

שינית את הפרטים האלה? :|
חחח ברור
  Reply With Quote
ישן 06-11-11, 23:51   # 8
Programnnd
חבר בקהילה
 
מיני פרופיל
תאריך הצטרפות: Feb 2011
הודעות: 143

Programnnd לא מחובר  

כמו שציינתי קצת חיפוש בגוגל לא יזיק
"Api For DirectAdmin"
http://www.upf.co.il/file/350247286.html - דוגמא לשימוש ישר מDA מהפורומי תמיכה
__________________
XHTML - CSS3 - BOOSTRAP - JQUERY - AJAX - PHP - SQL - SECURITY SQL
benworksites@gmail.com


  Reply With Quote
השב

חברים פעילים הצופים באשכול זה: 1 (0 חברים ו- 1 אורחים)
 


חוקי פירסום
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is מופעל
סמיילים הם מופעל
[IMG] קוד מופעל
קוד HTML מכובה

קפיצה לפורום


כל הזמנים הם GMT +2. הזמן כעת הוא 20:33.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ