Skocz do zawartości
Zaloguj się, aby obserwować  
Kolopik

Błąd w API direct admin

Polecane posty

Witam. Zacząłem sam "pisać" skrypt API do Direct admin-a.

Pojawił się następujący błąd.

 

Creating user admin on server ....

 

Fatal error: Call to a member function connect() on a non-object in /home/kacperinjo/domains/*******.pl/public_html/a/index.php on line 24

Linijki:

 

23 {
24 $sock->connect("https://".$server_ip,2222);
25 }

 

Czy może mnie ktoś nakierować?

z góry dziękuję za pomoc.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Czy może mnie ktoś nakierować?

Pokaż cały skrypt bo pewnie bezmyślnie skopiowałeś przykład, a że Ci wywalało błąd o braku klasy to albo wywaliłeś albo zakomentowałeś "$sock = new HTTPSocket;"

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Tak po pierwsze to nie jest błąd w DA API, a Twój (nawet może nie błąd, a brak wiedzy).

 

Po drugie - daj cały kod.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
 
<?

$server_ip="moijeajpi";
$server_login="loogin";
$server_pass="hasslo";
$server_ssl="Y";


$username=$_POST['username'];
$domain=$_POST['domain'];
$email=$_POST['email'];
$pass=$_POST['pass'];
$package=$_POST['package'];


if (isset($_POST['action']) && $_POST['action'] == "add")
{

echo "Creating user $username on server $ip.... <br>\n";


if ($server_ssl == 'N')
{
$sock->connect("https://".$server_ip,2222) ;
}

else
(
$sock->connect($server_ip,2222)
)

$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";
}

}

?>


<form action=? method="POST">
<input type=hidden name=action value="add">
Imię: <input type=text name=username><br>
Domena:<input type=text name=domain>.sms-host.pl<br>
Email: <input type=text name=email><br>
Hasło: <input type=password name=pass><br>
<select name="PAKIET" size="1">
<option>Atto</option>
<option>Femto</option>
<option>Piko</option>
</select> <br>
<input type="submit" value="wyslij" name="Submit_button">
</form>


Udostępnij ten post


Link to postu
Udostępnij na innych stronach

A co to jest $sock ?

Bo dużo razy odwołujesz się do tej zmiennej jak do jakiejś instancji klasy... a w twoim kodzie jedyna wartość, którą ona ewentualnie może przyjąć, to NULL :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Tak jak wyżej napisane:

nie tworzysz obiektu $socket, a chcesz na nim działać.

 

Wygląda na sytuację, w której skopiowałeś kawałek kodu z jakiejś strony www i pominąłeś dosyć ważny fragment.

 

Moja szklana kula mówi, że znalazłeś gdzieś klasę do wspomagania działań na API DA i próbujesz jej użyć - musisz najpierw utworzyć jej obiekt (lub używać metod static - w zależności od budowy klasy)

 

EDIT: jedną z ważniejszych umiejętności programisty jest czytanie, sam podałeś coś takiego:

Fatal error: Call to a member function connect() on a non-object

 

Podkreśliłem ważne słowa, do tego linijka i od razu wiadomo o co chodzi.

 

PS> jeśli używasz np. eclipse to trzymając ctrl i klikając na zmienną możesz podejrzeć co do niej wpisujesz wcześniej

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Kolega zapewne korzystał z tego gotowca - http://www.directadmin.com/sample_api.txt

 

A że mu wywalało błąd to wykasował linijkę "$sock = new HTTPSocket;" :)

 

Najpierw zaopatrz się klasę HTTPSocket np. z http://snipplr.com/view/22596/directadmin-api-httpsocketphp/ i na początku zrób include pliku z tą klasą i będzie działać.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

regdos, bardzo ci dziękuję:) Api zapierdziela aż miło :):)

Dzięki, dzięki.

Pozdrawiam!:)

 

PS teraz to już kompletnie zgłupiałem :|

 

Creating user admin on server ....

Error Creating user admin on server 94.23.236.40:

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

A dalej co ? ten skrypt oprócz komunikatu zwraca jeszcze opis błędu, bo na razie napisałeś, że nie utworzył użytkownika ale żeby Ci pomóc potrzebne jest więcej informacji.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

A dalej co ? ten skrypt oprócz komunikatu zwraca jeszcze opis błędu, bo na razie napisałeś, że nie utworzył użytkownika ale żeby Ci pomóc potrzebne jest więcej informacji.

 

 

Niestety tylko tyle... :)

 

Edycja:

Już sobie poradziłem. HTTPSocket Był źle napisany. Wyszukałem inny i zadziałało.

 

Bardzo dziękuję za pomoc.

Pozdrawiam

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×