login  Naam:   Wachtwoord: 
Registreer je!
 Forum

DirectAdmin Api Create User | Pagina 2

39 antwoorden

Gesponsorde links
Offline Thomas - 12/10/2014 17:46
Avatar van Thomas Moderator EDIT: omdat het waarschijnlijk vrij nauw komt met wat DA accepteert als geldige invoer, loont het wellicht de moeite om de invoer eerst te valideren, voordat je deze aan DA aanbiedt.

Controleer je invoer volgens deze spec.
Offline Alexjeee - 12/10/2014 18:20
Avatar van Alexjeee Lid En hoe wil ik die gaan valideren?
Want wat die aanbied aan DA is verder goed en komt gewoon overeen. Met wat er op de website wordt gezegd dat er door DA gevraagd wordt.
Offline Thomas - 12/10/2014 19:49
Avatar van Thomas Moderator Als je geen informatie terugkrijgt van je DA calls wordt het nogal lastig om te debuggen.

Zou je het volgende eens na een $da->query() aanroep kunnen zetten:

  1. <?php
  2. echo 'response code: '.$da->get_status_code().'<br />';
  3. echo 'response: <hr />'.htmlspecialchars($da->fetch_result()).'<hr />';
  4. ?>


Ik weet het anders ook niet, je zult dit stap voor stap moeten debuggen.
Offline Alexjeee - 12/10/2014 20:07
Avatar van Alexjeee Lid ik zal dat zometeen gelijk doen. Ben nu even een nieuwere versie van me server aan het installeren, dan installeer ik directadmin ook opnieuw. en dan even alles updaten en dan kijken hoe of wat. Ik draai nu Centos 6.5 en die is volgens mij niet helemaal stabiel meer
Offline Thomas - 20/10/2014 17:58 (laatste wijziging 20/10/2014 20:20)
Avatar van Thomas Moderator
Alexjeee schreef:
Heey,

Zou je even in het topic kunnen reageren. Heb gedaan wat je zei maar krijg alleen dit te zien:

response code:
response:
Heb je die code na de $da->query aanroep gezet? Zoja, dan heb je dus helemaal geen terugkoppeling van een request (query)...

Andere dingen die je nog kunt proberen/controleren:
- heb je al geprobeerd je query-data te POSTen? (gebruik $da->set_method('POST') voordat je je query uitvoert)
- ben je al nagegaan of je host geresolved kan worden vanaf de host zelf (oftewel: kan een script een "externe" aanroep naar zichzelf doen), dit zou je met een simpele test kunnen doen?

Wat ik op dit moment zou doen is wat afzonderlijke tests uitvoeren met je HTTPSocket class in een apart script, want anders wordt het te onoverzichtelijk. Probeer eerst eens een connectie op te zetten en feedback hier over te krijgen.

EDIT: probeer het volgende eens in een afzonderlijk script te testen (hierbij verwijst ./socket.php naar het bestand met hierin de HTTPSocket class). Wat hierbij vooral van belang is is wat $da->error je vertelt na het doen van een query:

  1. <?php
  2. header('Content-Type: text/html; charset=UTF-8');
  3. ini_set('display_errors', 'stdout'); // >= 5.2.4 stderr, stdout, < 5.2.4 bool
  4.  
  5. require_once './socket.php';
  6.  
  7. $config = array(
  8. 'host' => '<hostname>', // bijvoorbeeld 'www.sitemasters.be'
  9. 'port' => '2222',
  10. 'secure' => false, // of DA gebruik maakt van https
  11. 'username' => '<username>', // je DA gebruikersnaam
  12. 'password' => '<password>', // je DA wachtwoord
  13. );
  14.  
  15. // hier maak je nog niet daadwerkelijk een connectie, de methode-naam "connect" is misleidend
  16. $da = new HTTPSocket();
  17. $fullUrl = ($config['secure'] ? 'ssl' : 'tcp').'://'.$config['host'];
  18. $da->connect($fullUrl, $config['port']);
  19. $da->set_login($config['username'], $config['password']);
  20.  
  21. // test hier (de feedback op) een query, let hierbij vooral op $da->error
  22. // we testen bijvoorbeeld CMD_API_LOGIN_TEST
  23. // zie http://www.directadmin.com/features.php?id=530
  24. $da->query('/CMD_API_LOGIN_TEST');
  25.  
  26. // dump vervolgens informatie
  27. var_dump($da->get_status_code());
  28. var_dump($da->fetch_result());
  29. var_dump($da->fetch_parsed_body());
  30. var_dump($da->error);
  31. ?>

Als je een halve HTML pagina terugkrijgt met een login formulier erin wil dit zeggen dat je username/password niet goed was. Als je zoiets terugkrijgt:

  1. array
  2. 'error' => string '0' (length=1)
  3. 'text' => string 'Login OK' (length=8)
  4. 'details' => string 'none' (length=4)

Wil dat zeggen dat je succesvol geauthenticeerd was.

Let op: je kunt ook een lap HTML terugkrijgen met hierin ergens de tekst:
Citaat:
The request you've made cannot be executed because it does not exist in your authority level
Jammer dat ze dat niet in een X-header ofzo konden zetten...
Offline Alexjeee - 20/10/2014 20:40 (laatste wijziging 20/10/2014 20:41)
Avatar van Alexjeee Lid Dit is wat ik terug krijg:

Citaat:
string(3) "200" string(159) "HTTP/1.1 200 OK Server: DirectAdmin Daemon v1.46.2 Registered to Alex R&#65533;ter Connection: close Content-Type: text/plain error=0&text=Login OK&details=none" array(3) { ["error"]=> string(1) "0" ["text"]=> string(8) "Login OK" ["details"]=> string(4) "none" } array(0) { }


Maar zit er dan een fout in me config?
Offline Thomas - 20/10/2014 22:31
Avatar van Thomas Moderator Nee, dan lijkt het erop dat de connectie in ieder geval is geslaagd en je jezelf kunt authenticeren bij DirectAdmin.

Ik zou zeggen, probeer vervolgens andere commando's uit te voeren en kijk wat daarbij het resultaat is.
Offline Alexjeee - 21/10/2014 18:58
Avatar van Alexjeee Lid Dit topic kan gesloten worden. Want op deze manier ga ik er niet uit komen. Dit lijkt me ook meer een taak wat inzichtelijker behandeld dient te worden.
Offline Thomas - 21/10/2014 19:21
Avatar van Thomas Moderator If at first you don't succeed... give up.

lol.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.227s