Kolopik 222 Zgłoś post Napisano Grudzień 28, 2009 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
d.v 1409 Zgłoś post Napisano Grudzień 28, 2009 Spróbuj tak: $sock->connect("https://".$server_ip.":2222"); Udostępnij ten post Link to postu Udostępnij na innych stronach
regdos 1848 Zgłoś post Napisano Grudzień 28, 2009 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
ownede 0 Zgłoś post Napisano Grudzień 28, 2009 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
Kolopik 222 Zgłoś post Napisano Grudzień 28, 2009 <? $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
kafi 2425 Zgłoś post Napisano Grudzień 28, 2009 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
MiSi3kK 16 Zgłoś post Napisano Grudzień 28, 2009 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
regdos 1848 Zgłoś post Napisano Grudzień 28, 2009 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
Kolopik 222 Zgłoś post Napisano Grudzień 28, 2009 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
regdos 1848 Zgłoś post Napisano Grudzień 28, 2009 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
Kolopik 222 Zgłoś post Napisano Grudzień 28, 2009 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