Le serveur A utilise fsockopen, fwrite et fgets pour collecter des informations du serveur distant B. Le serveur distant B crée des requêtes mysql et fournit cette information. Lors du premier chargement du serveur A, toutes les informations (du serveur distant B) apparaissent sur le serveur A, ce qui signifie que la connexion fonctionne correctement. Cependant, parfois, lorsque la page est actualisée (sur le serveur A), aucune information sur le serveur distant B n'est affichée. Pourquoi est-ce?fsockopen n'effectue pas toujours les requêtes mysql lorsque la page est rafraîchie
le code sur le serveur A est assez simple:
function test_http_request($path, $host, $test_request, $port=80){
$test_request_proc= test_encode($test_request);
//http request
$http_request = "POST $path HTTP/1.0\r\n";
$http_request .= "Host: $host\r\n";
$http_request .= "Content-Type: application/x-www-form-urlencoded;\r\n";
$http_request .= "Content-Length: " . strlen($test_request_proc) . "\r\n";
$http_request .= "User-Agent: testConnection/PHP\r\n";
$http_request .= "\r\n";
$http_request .= $test_request_proc;
/////output
$test_resource = '';
//open socket
if(false == ($test_connect [email protected]('[remote server Bs IP ]', $port, $errno, $errstr, 10))){die('could not open test connection');}
//send http_request
fwrite($test_connect, $http_request);
//get response
while(!feof($test_connect))$test_resource .= fgets($test_connect, 1160);
//close socket
fclose($test_connect);
$test_resource = explode("\r\n\r\n", $test_resource, 2);
return $test_resource;
}
Selon l'erreur de serveur distant B enregistre les requêtes MySQL (qui sont effectuées pour fournir les informations au serveur A) ne sont pas en cours d'exécution (la ressource est booléen). Parfois, ils sont effectués et parfois ils ne sont pas effectués. Le problème ne se trouve pas dans le langage de requête car il fonctionne parfaitement lorsque la requête est demandée et exécutée sur le serveur distant B. Ce n'est que lorsque le serveur A demande l'information via fsockopen() que le problème apparaît. note: le problème réside uniquement dans les requêtes mysql effectuées par le serveur distant B, tout texte sorti avant main apparaît à chaque fois. Merci pour votre temps
Je pense que vous avez besoin de poster quelques exemples de srv A et B. – ethrbunny