Balises html non interprétées [Résolu]

Signaler
Messages postés
2
Date d'inscription
dimanche 27 février 2011
Statut
Membre
Dernière intervention
10 décembre 2011
-
Messages postés
2
Date d'inscription
dimanche 27 février 2011
Statut
Membre
Dernière intervention
10 décembre 2011
-
Bonjour,

je fais des tests avec les sockets (afin de comprendre comment ça fonctionne) et le code suivant me pose quelques problèmes :

[i]$address = $_SERVER['SERVER_ADDR'];
$port = 5203;

$serveur = stream_socket_server("tcp://".$address.":".$port);
$client=stream_socket_accept($serveur);

$read="";
do
{
$read= fgets($client,100);
}while($read===FALSE && !feof($client));

$html="<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">";
$html.="<html><head>";
$html.="<meta http-equiv="Content-type" content="text/html;charset=iso-8859-1"/>";
$html.="</head>";
$html.="
salut
";
$html.="</html>";

fputs($client,$html,strlen($html));
fclose($serveur);/i


Avec IE9 et Chrome tout fonctionne bien. Plus précisément, si je lance ce script depuis mon navigateur et que j'ouvre un nouvel onglet en tapant l'ip de mon serveur suivi de ": 5203" (le numéro de port) je reçois bien le mot "salut" sur ma page.
Mais avec Firefox ou Opera, je reçois tout le texte avec les balises html qui ne sont pas interprétées.

Si quelqu'un a une suggestion ... ça fait pas mal de temps que je cherche.

Merci.

2 réponses

Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
12
Salut,

Si tu utilises directement les socket, il va falloir que t'occupes toi même du protocole HTTP.

Quelques liens pour t'aider :
- RFC 2616
- petit tuto
Messages postés
2
Date d'inscription
dimanche 27 février 2011
Statut
Membre
Dernière intervention
10 décembre 2011

Un grand merci. En ajoutant le texte suivant en début de réponse du serveur de socket : HTTP/1.1 200 OK Content-Type: text/html, ça fonctionne aussi avec Firefox.

Je remet le code final au cas où ça pourrait intéresser quelqu'un.


[i]$address = $_SERVER['SERVER_ADDR'];
$port = 5203;

$serveur = stream_socket_server("tcp://".$address.":".$port);
$client=stream_socket_accept($serveur);

$html = "HTTP/1.1 200 OK\r\n";
$html.="Content-Type: text/html\r\n\r\n";
$html.="<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">";
$html.="<html><head>";
$html.="<meta http-equiv="Content-type" content="text/html;charset=iso-8859-1"/>";
$html.="</head>";
$html.="
salut
";
$html.="</html>";

fputs($client,$html,strlen($html));
fclose($serveur);/i