maha.h
Messages postés7Date d'inscriptionmercredi 21 février 2018StatutMembreDernière intervention22 février 2018
-
Modifié le 21 févr. 2018 à 22:12
maha.h
Messages postés7Date d'inscriptionmercredi 21 février 2018StatutMembreDernière intervention22 février 2018
-
22 févr. 2018 à 11:37
bonjour ,
je suis debutante en php , j'ai ecris un code pour verifier si un siteweb est valide ou non et qu'on j'execute je rencontre l'erreur suivante :
Notice: Use of undefined constant TEST_URL - assumed 'TEST_URL' in C:\wamp64\www\index.php on line 6
voici le code
<?php
function check_connect($host,$path)
{
if(!TEST_URL)
{
$tab_return["statut"] = 1;
$tab_return["code"] = 0;
$tab_return["message"] = "Pas de test de connexion\n";
return $tab_return;
}
$connect = 0;
$no_code = 0;
if ($fp = @fsockopen($host,80))
{
if(substr($path,strlen($path)-1) != '/')
{
if(preg_match("/\\./",$path))
$path .= "/";
}
//envoi de la requete HTTP
fputs($fp,"GET ".$path." HTTP/1.1\r\n");
fputs($fp,"Host: ".$host."\r\n");
fputs($fp,"Connection: close\r\n\r\n");
//on lit le fichier
$line = fread($fp,255);
$en_tete = $line;
//on lit tant qu'on n'est pas la fin du fichier ou
// qu'on trouve le debut du code html...
while (!feof($fp) && !preg_match("<",$line) )
{
$en_tete .= $line;
$line = fread($fp,255);
}
fclose($fp);
//on switch sur le code HTTP renvoye
$no_code = substr($en_tete,9,3);
switch ($no_code)
{
// 2** la page a été trouvée
case 200 : $message = "OK";
$color = "#33cc00";
$connect = 2;
break;
case 204 : $message = "Cette page ne contient rien! (204)";
$color = "#ff9966";
break;
case 206 : $message = "Contenu partiel de la page! (206)";
$color = "#ff9966";
break;
// 3** il y a une redirection
case 301 : $message = "La page a été déplacéé définitivement!(301)";
$message .= seek_redirect_location($en_tete);
$color = "#ff9966";
$connect = 1;
break;
case 302 : $message = "La page a été déplacéé momentanément!(302)";
$message .= seek_redirect_location($en_tete);
$color = "#ff9966";
$connect = 1;
break;
// 4** erreur du coté du client
case 400 : $message = "Erreur dans la requête HTTP! (400)";
$color = "#ff0000";
break;
case 401 : $message = "Authentification requise! (401)";
$color = "#ff0000";
break;
case 402 : $message = "L'accès à la page est payant! (402)";
$color = "#ff0000";
break;
case 403 : $message = "Accès à la page refusé! (403)";
$color = "#ff0000";
break;
case 404 : $message = "Page inexistante! (404)";
$color = "#ff0000";
break;
// 5** erreur du coté du serveur
case 500 : $message = "Erreur interne au serveur! (500)";
$color = "#ff0000";
$connect = 1;
break;
case 502 : $message = "Erreur cause passerelle du serveur! (502)";
$color = "#ff0000";
break;
// cas restant
default : $message = "Erreur non traitée -> numéro est : $no_code!";
$color = "#000000";
break;
}
}
else
{
$message = "Impossible de se connecter par socket";
$color = "#ff0000";
}
//creation du tableau avec les valeurs a rendre
$data_return["statut"] = $connect; //la page est OK ou KO (200 => OK sinon KO)
$data_return["code"] = $no_code; //code HTTP renvoye
$data_return["message"] = "<font color=\"".$color."\">".$message."</font>\n";
return $data_return;
}
// utilisation
$url = "http://www.site.com";
$url_parsee = parse_url($url);
$host = $url_parsee["host"];
$path = isset($url_parsee["path"]) ? trim($url_parsee['path']) : '';
$tab_return = check_connect($host,$path);
echo $tab_return["message"];
?>
aidez moi svp
EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique). Explications disponibles ici : ICI
Et donc.. comme je te l'avais indiqué dans ta précédente question....
Où est initialisée ta constante TEST_URL ?
if(!TEST_URL)
Car dans le bout de code que tu nous indiques ... on ne le voit pas !
Montre nous TOUT ton code.... vraiment tout !!
jordane45
Messages postés37513Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention30 mai 2023341 21 févr. 2018 à 22:26
Et tout simplement ... ne serait-ce pas :
if(!$host)
que tu devrais utiliser non ??
maha.h
Messages postés7Date d'inscriptionmercredi 21 février 2018StatutMembreDernière intervention22 février 2018 21 févr. 2018 à 22:39
c'est ca l'ensemble du code , je dois remplacer if (!TEST_URL) par if (!$host)?
jordane45
Messages postés37513Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention30 mai 2023341 21 févr. 2018 à 22:43
Soit tu n'as pas récupérer l'intégralité du code là où tu l'as copié ....
soit oui.. il faut faire la modification que je t'ai donné.
Maintenant... ben.. c'est quand même à toi de savoir à quoi est sensé servir cette variable et ce qu'elle est sensée contenir... non ??!!
maha.h
Messages postés7Date d'inscriptionmercredi 21 février 2018StatutMembreDernière intervention22 février 2018 22 févr. 2018 à 11:37
je l'ai remplacé avec ce que vous m'avez donnez et ca marche , merci bcp