IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

HTTP header $_SERVER variable vide


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    541
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 541
    Points : 124
    Points
    124
    Par défaut HTTP header $_SERVER variable vide
    Bonjour,

    J'essaye de pouvoir gérer les paramètres liés au header http dans ce code php ainsi j'execute une requete avec comme header le champ 'User-Agent' avec la valeur 'ESP8266-http-Update', mais il s'avère que la variable $_SERVER[$name] est vide dans le echo de la fonction check_header, puis je savoir d'où provient le problème? Est-ce un paramètre du serveur apache à activer?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    <?PHP
    header('Content-type: text/plain; charset=utf8', true);
    function check_header($name, $value = false) {
    echo $_SERVER[$name]."////"
        if(!isset($_SERVER[$name])) {
            return false;
        }
        if($value && $_SERVER[$name] != $value) {
            return false;
        }
        return true;
    }
    if(!check_header('User-Agent', 'ESP8266-http-Update')) {
        header($_SERVER["SERVER_PROTOCOL"].' 403 Forbidden', true, 403);
        echo "only for ESP8266 updater!\n";
        exit();
    }
     
    ?>
    Merci d'avance

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 090
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 090
    Points : 8 188
    Points
    8 188
    Billets dans le blog
    17
    Par défaut
    Fais un print_r($_SERVER) pour vérifier les en-têtes réceptionnées.

    Comment valorises-tu le User-Agent ?
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    541
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 541
    Points : 124
    Points
    124
    Par défaut
    Citation Envoyé par Séb. Voir le message
    Fais un print_r($_SERVER) pour vérifier les en-têtes réceptionnées.

    Comment valorises-tu le User-Agent ?
    J'utilise le addon de firefox RestClient pour tester ma requête. Je ne sais pas pourquoi ici les champs commence par HTTP_ et non pas de - dans les noms de variables par rapport au code php par exemple HTTP_USER_AGENT se nomme User-Agent dans ma requête?

    Voici ce que j'obtiens:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    Array
    (
        [HTTP_HOST] => 192.168.0.16
        [HTTP_USER_AGENT] => ESP8266-http-Update
        [HTTP_ACCEPT] => */*
        [HTTP_ACCEPT_LANGUAGE] => fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3
        [HTTP_ACCEPT_ENCODING] => gzip, deflate
        [HTTP_X_ESP8266_AP_MAC] => 1A:FE:AA:AA:AA:AA
        [HTTP_X_ESP8266_FREE_SPACE] => 671744
        [HTTP_X_ESP8266_SKETCH_SIZE] => 373940
        [HTTP_X_ESP8266_SKETCH_MD5] => a56f8ef78a0bebd812f62067daf1408a
        [HTTP_X_ESP8266_CHIP_SIZE] => 4194304
        [HTTP_X_ESP8266_SDK_VERSION] => 1.3.0
        [HTTP_X_ESP8266_VERSION] => DOOR-7-g14f53a19
        [HTTP_X_ESP8266_MODE] => sketch
        [HTTP_X_ESP8266_STA_MAC] => 98:cd:ac:25:af:6b
        [HTTP_CONNECTION] => keep-alive
        [PATH] => /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
        [SERVER_SIGNATURE] => <address>Apache/2.4.41 (Ubuntu) Server at 192.168.0.16 Port 80</address>
     
        [SERVER_SOFTWARE] => Apache/2.4.41 (Ubuntu)
        [SERVER_NAME] => 192.168.0.16
        [SERVER_ADDR] => 192.168.0.16
        [SERVER_PORT] => 80
        [REMOTE_ADDR] => 192.168.0.16
        [DOCUMENT_ROOT] => /var/www/html
        [REQUEST_SCHEME] => http
        [CONTEXT_PREFIX] => 
        [CONTEXT_DOCUMENT_ROOT] => /var/www/html
        [SERVER_ADMIN] => webmaster@localhost
        [SCRIPT_FILENAME] => /var/www/html/arduino_ota/ota/arduino.php
        [REMOTE_PORT] => 45398
        [GATEWAY_INTERFACE] => CGI/1.1
        [SERVER_PROTOCOL] => HTTP/1.1
        [REQUEST_METHOD] => GET
        [QUERY_STRING] => 
        [REQUEST_URI] => /arduino_ota/ota/arduino.php
        [SCRIPT_NAME] => /arduino_ota/ota/arduino.php
        [PHP_SELF] => /arduino_ota/ota/arduino.php
        [REQUEST_TIME_FLOAT] => 1625070932.96
        [REQUEST_TIME] => 1625070932
    )

  4. #4
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 090
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 090
    Points : 8 188
    Points
    8 188
    Billets dans le blog
    17
    Par défaut
    C'est bon, tu as bien le User-Agent. Le format est spécial car $_SERVER ne sert pas qu'à exposer les en-têtes HTTP.

    https://www.php.net/manual/en/reserv...les.server.php
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    541
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 541
    Points : 124
    Points
    124
    Par défaut
    Citation Envoyé par Séb. Voir le message
    C'est bon, tu as bien le User-Agent. Le format est spécial car $_SERVER ne sert pas qu'à exposer les en-têtes HTTP.

    https://www.php.net/manual/en/reserv...les.server.php
    Il s'avère qu'il faut nommé chaque champs avec majuscules et des underscores non des tirets dans le code php, par exemple: HTTP_USER_AGENT .

Discussions similaires

  1. Redirection header suite à variable session
    Par jive dans le forum Langage
    Réponses: 13
    Dernier message: 05/07/2006, 01h01
  2. [JpGraph] Error: HTTP headers have already been sent.
    Par haffouff dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 09/05/2006, 16h17
  3. [W3C] HTTP Header et UTF-8
    Par narnou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 13/03/2006, 12h16
  4. Faire une boucle avec des variables vides ?
    Par byloute dans le forum Linux
    Réponses: 5
    Dernier message: 23/02/2006, 09h33
  5. Variable vide?
    Par LordBob dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/02/2006, 16h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo