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:
<?php
header('Content-Type: text/html; charset=UTF-8');
error_reporting(E_ALL);
ini_set('display_errors', 'stdout'); // >= 5.2.4 stderr, stdout, < 5.2.4 bool
require_once './socket.php';
$config = array(
'host' => '<hostname>', // bijvoorbeeld 'www.sitemasters.be'
'port' => '2222',
'secure' => false, // of DA gebruik maakt van https
'username' => '<username>', // je DA gebruikersnaam
'password' => '<password>', // je DA wachtwoord
);
// hier maak je nog niet daadwerkelijk een connectie, de methode-naam "connect" is misleidend
$da = new HTTPSocket();
$fullUrl = ($config['secure'] ? 'ssl' : 'tcp').'://'.$config['host'];
$da->connect($fullUrl, $config['port']);
$da->set_login($config['username'], $config['password']);
// test hier (de feedback op) een query, let hierbij vooral op $da->error
// we testen bijvoorbeeld CMD_API_LOGIN_TEST
// zie http://www.directadmin.com/features.php?id=530
$da->query('/CMD_API_LOGIN_TEST');
// dump vervolgens informatie
var_dump($da->get_status_code());
var_dump($da->fetch_result());
var_dump($da->fetch_parsed_body());
var_dump($da->error);
?>
<?php header('Content-Type: text/html; charset=UTF-8'); ini_set('display_errors', 'stdout'); // >= 5.2.4 stderr, stdout, < 5.2.4 bool require_once './socket.php'; 'host' => '<hostname>', // bijvoorbeeld 'www.sitemasters.be' 'port' => '2222', 'secure' => false, // of DA gebruik maakt van https 'username' => '<username>', // je DA gebruikersnaam 'password' => '<password>', // je DA wachtwoord ); // hier maak je nog niet daadwerkelijk een connectie, de methode-naam "connect" is misleidend $da = new HTTPSocket(); $fullUrl = ($config['secure'] ? 'ssl' : 'tcp').'://'.$config['host']; $da->connect($fullUrl, $config['port']); $da->set_login($config['username'], $config['password']); // test hier (de feedback op) een query, let hierbij vooral op $da->error // we testen bijvoorbeeld CMD_API_LOGIN_TEST // zie http://www.directadmin.com/features.php?id=530 $da->query('/CMD_API_LOGIN_TEST'); // dump vervolgens informatie ?>
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:
array
'error' => string '0' (length=1)
'text' => string 'Login OK' (length=8)
'details' => string 'none' (length=4)
array 'error' => string '0' (length=1) 'text' => string 'Login OK' (length=8) '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... |