J'ai fais un petit module pour faire une recherche par ID Site pour la boite dans laquel je travail.
Malheureusement, j'aimerai vérifié une condition, que l'url soit valide.
J'ai pondu une page , mais le controle de l'url renvoi toujours une erreur, voici la source
<?php
/* Correction de l'id site possible suite à faute de frappe ou copier coller */
$search = array(' ', '.');
$replace = array('', '');
/* Si l'id site à été posté par le formulaire, on corrige les fautes de frappes */
if( isset($_POST['idsite']) )
{
$idsite = $_POST["idsite"];
$idsite = str_replace($search, $replace, $idsite);
}
?>
<!-- Je crée un formulaire qui postera sur cette même page -->
<FORM action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
<table width="300" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="60" align="right" valign="middle">
ID Site :
</td>
<td width="60" valign="top">
<!-- si un idsite à déjà été poster je le garde dans la text bar -->
<INPUT name="idsite" type="text" id="idside" value="<?php if( isset($idsite) ) echo $idsite ;?>" size="8">
</td>
<td>
<input type="submit" value="Recherche" class="submit">
</td>
</tr>
</table>
</FORM>
<?php
/* Si un idsite à été posté je vérifie qu'il existe bien */
if(isset($_POST['idsite']))
{
if (!isset($url)) $url = "http://www.monsite.com/site.do?indexItem=0&idItem=".$idsite."&oldId=0";
$fp = fsockopen($url, 80, &$errno, &$errstr, 30);
/* Si l'idsite n'existe pas, je renvoi un message d'erreur */
if (!$fp) {
echo "Erreur: <B>$errstr</B> ($errno)<BR>"; }
/* Si l'idsite existe, je l'affiche dans un iframe */
else { fputs($fp,"GET / HTTP/1.0nn");
$reponse = fgets($fp, 128);
echo '<iframe src="http://www.monsite.com/site.do?indexItem=0&idItem=".$idsite."&oldId=0" width="1500" height="900" frameborder=no></iframe>';
fclose($fp); }
}
/* Si aucun idsite n'a été posté j'affiche un message */
else
{
echo 'Module de recherche par ID site';
}
?>
Tout fonctionne correctement sauf la vérification d'url qui me renvoi ce message même quand l'url est bien valide :
A noter que quand j'arrive sur la page de la boite, je dois d'abord m'authentifier et avoir le cookie bien actif sur ma session.Erreur: Unable to find the socket transport "http" - did you forget to enable it when you configured PHP? (5)
Si quelqu'un à une idée, vois une erreur dans la méthode merci d'avance de me faire savoir.
kopax