Code php [Résolu]

Signaler
Messages postés
7
Date d'inscription
mercredi 21 février 2018
Statut
Membre
Dernière intervention
22 février 2018
-
Messages postés
7
Date d'inscription
mercredi 21 février 2018
Statut
Membre
Dernière intervention
22 février 2018
-
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

Merci d'y penser dans tes prochains messages.

2 réponses

Messages postés
14677
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 juillet 2020
143
Cette erreur indique souvent un $ oublié.
Messages postés
28956
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 juillet 2020
333
Bonjour,

Quand je t'ai demandé de poster ton code en utilisant les balises .... c'était dans la discussion initiale...
http://www.commentcamarche.net/forum/affich-35218317-erreur-code-php

Pas en ouvrir une autre sur un autre forum !!

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 !!
Messages postés
28956
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 juillet 2020
333
Et tout simplement ... ne serait-ce pas :
 if(!$host)

que tu devrais utiliser non ??
Messages postés
7
Date d'inscription
mercredi 21 février 2018
Statut
Membre
Dernière intervention
22 février 2018

c'est ca l'ensemble du code , je dois remplacer if (!TEST_URL) par if (!$host)?
Messages postés
28956
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 juillet 2020
333
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 ??!!
Messages postés
7
Date d'inscription
mercredi 21 février 2018
Statut
Membre
Dernière intervention
22 février 2018

je l'ai remplacé avec ce que vous m'avez donnez et ca marche , merci bcp