Ich muss noch mal auf das Problem zurück kommen.
Aktuell können maximal 2 User (wir Entwickler) auf unser Panel zugreifen und trotzdem hatte ich wieder die Access Violation.
Hier das PHP script mit dem ich die Kommunikation zu mAirlist herstelle, ist daran vielleicht irgendwas falsch? Sorry, für das Denglisch.
Wenn ich das Script als HTTP GET aufrufe mit dem parameter read und der Adresse was er vom REST interface lesen soll, wird 1:1 ausgegeben, was mairlist auch ausgibt.
Wenn ich das PHP script mit einem Post Befehl aurufe, werden die entsprechenden kommandos 1:1 an mairlist weiter gegeben.
[code]<?PHP
/**
*/
// Configurattion Block
$mairlistserver = ‘mairlistserver.domain.de’; // ip oder hostname Deines mAirList Rechners
$mairlistrestport = ‘9300’; // Der Port Deiner REST Schnittstelle, default 9300
$mairlistuser = ‘mAirlistRestUser’; // Der Benutzername für Deinen REST User
$mairlistpass = ‘Supergeheimes-Passwort-0815’; // Das Passwort für Deinen REST User
// Configurattion Block End
// ab hier nur noch ändern, wenn Du weißt, was Du tust.
ini_set(‘default_socket_timeout’, 2); // kein Response in 2 Sekunden, dann ist irgendwas fürchterlich falsch gelaufen.
if (isset($_GET[‘read’]))
{
$read = ($_GET[‘read’]);
$json = file_get_contents(‘http://’.$mairlistuser.’:’.$mairlistpass.’@’.$mairlistserver.’:’.$mairlistrestport.$read);
header(‘Content-Type: application/json’);
header(“Access-Control-Allow-Origin: *”);
echo $json;
}
else if (isset($_POST))
{
postrest($mairlistserver, $mairlistrestport, $mairlistuser, $mairlistpass, $_POST[‘command’]);
header(“Access-Control-Allow-Origin: *”);
}
// POST function to pass commands to mAirList.
function postrest($server, $port, $user, $pass, $execcommand)
{
$fp = curl_init($server.’:’.$port.’/execute’);
curl_setopt($fp,CURLOPT_TIMEOUT,2);
curl_setopt($fp,CURLOPT_FAILONERROR,0);
curl_setopt($fp,CURLOPT_RETURNTRANSFER,1);
curl_setopt($fp,CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($fp,CURLOPT_USERPWD, $user.’:’.$pass);
curl_setopt($fp,CURLOPT_POST, 1);
curl_setopt($fp,CURLOPT_POSTFIELDS, ‘command=’.urlencode($execcommand));
curl_exec($fp);
echo $_POST[‘command’];
if (curl_errno($fp) != 0)
{
echo $mairlistserver[‘status’] = false;
}
else
{
$mairlistserver[‘status’] = true;
}
curl_close($fp);
}
?>[/code]
Muss ich jedes mal die User Authentifizierung durchführen oder gibt es da noch einen anderen Weg?
Fehlendes Fearture: Wenn mAirlist die Fehlermeldung schmeißt, wird das im Moment nicht abgefangen und die Ausgabe bleibt leer.