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

Langage PHP Discussion :

Récupération de la valeur d'un cookie


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2008
    Messages : 150
    Points : 89
    Points
    89
    Par défaut Récupération de la valeur d'un cookie
    Bonjour,

    Je ne sais pas trop si c'est ici que je dois poster, car il s'agit de PhP, mais pas forcément de BDD...

    Je suis en train de développer un carnet de vol. En gros, je récupère les valeurs d'une base SQL, selon des dates butées, et je les affihe dans des tableaux.
    Comme ceci:
    Nom : dates.png
Affichages : 68
Taille : 31,1 Ko

    Je souhaite donc que dans le premier champ date, lorsque l'utilisateur clique sur Display Flight Time, il y ai la dernière date qu'il a choisie. Je me suis donc orienté vers le Cookie.

    Création du Cookie, en début de fichier

    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
    <?php
    If (isset($_POST['datestart'])) {
    $temps = 24*3600;
    setcookie ("datestart", switchdate($_POST['datestart']), time() + $temps);
    function redirection($url){
    if (headers_sent()){
    print('<meta http-equiv="refresh" content="0;URL='.$url.'">');
    }
    else {
    header("Location: $url");
    }
    }	
    redirection ('flight_times.php');
    }
    else {
    echo 'La variable du formulaire pas déclarée.';
    }
    ?>

    Pui récupération de la valeur du Cookie plus bas dans le fichier:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?
    if (isset($_COOKIE['datestart'])) 
    {
    echo 'Date de début '.($_COOKIE['datestart']).' !';
    }
    ?>								
    <input class="inputs" name="datestart" type="date" value="<?php ($_COOKIE['datestart']) ?>">
    <?php
    if(isset($_POST['datestart']))      $datestart=($_COOKIE['datestart']);
    else $datestart = "2009-12-01"	;
    ?>


    Comme on peut le voir sur la première image, j'arrive à envoyer un Cookie avec la valeur date, mais je ne parviens pas à faire en sorte qu'il s'affiche dans mon champ date.

    Et j'ai en plus le message d'erreur qui s'affiche en haut de page comme si je n'avais pas rempli mon champ date:

    Nom : formulaire.png
Affichages : 59
Taille : 20,3 Ko

    J'ai bien essayé la fonction "switchdate", mais je n'ai pas l'impression que le problème vienne de là.

    Auriez vous une idée?

    D'avance merci

    PS: Le but final étant ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $db = mysqli_connect($localhost,$login,$pwd,$dbName)  or die('Erreur de connexion SQL'.mysql_error());
     
    /* FI*/								
    $req = "SELECT HOUR(SEC_TO_TIME(SUM(TIME_TO_SEC(sep_day_solo)))) AS fi FROM logbook WHERE role= 'FI' AND date BETWEEN '$datestart' AND '$dateend'";
    $temps= $db -> query ($req) ; 
    $data = mysqli_fetch_assoc($temps);
    $somme=$data['fi'];

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je ne vois pas pourquoi tu t'embetes avec des cookies et des redirections.
    L'utilisateur choisi une date, il valide le formulaire et basta.

    Pour ton erreur "la variable du formulaire n'est pas déclarée", d’où vient-elle ?

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2008
    Messages : 150
    Points : 89
    Points
    89
    Par défaut
    Je m'embête avec les cookies tout simplement parceque si l'utilisateur choisit une date, et qu'il valide tout fonctionne en effet.

    SAUF QUE la date dans le Champ date revient à sa valeur par défaut...Ce qui n'est pas très classe...

    C'est pour ça que je veux récupérer la valeur entrée précédement et l'afficher en tant que value=""


    Concernant l'erreur, il s'agit de la création du cookie, le code en haut de page. Ce que je no comprends pas, puisque j'ai bien mon "If (isset($_POST['datestart'])) {" : Puisque j'ai un cookie créé. Non?

  4. #4
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 275
    Points
    3 275
    Par défaut
    Dans ton cas d'utilisation, privilégie les sessions.

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Indente ton code pour qu'elle soit lisible.

    Le champ de formulaire doit reprendre la valeur $_POST['datestart'] quand elle existe, le cookie ne sert à rien pour ce que tu veux faire.
    Pour l'erreur elle est due à ta redirection : la valeur $_POST n'existe plus après cette redirection.
    Donc retire la redirection et le cookie et fait simple.

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2008
    Messages : 150
    Points : 89
    Points
    89
    Par défaut
    Merci pour tes réponses! En effet je pense que je me complique la vie.

    J'ai modifié mon code de la sorte

    1. Viré tout ce qui touche au cookie
    2.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    if(isset($_POST['datestart']))      $datestart=($_POST['datestart']);
    else $datestart = "2009-12-01";
    ?>	
    <input class="inputs" name="datestart" type="date" value="<?php $datestart ?>">

    Mais il ne m'affiche pas ma date dans le input date après avoir fais un submit.

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2008
    Messages : 150
    Points : 89
    Points
    89
    Par défaut
    Quand je fais un echo:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    if(isset($_POST['datestart']))      $datestart=($_POST['datestart']);
    else $datestart = "2009-12-01";
    echo switchdate($datestart);
    ?>
    <input class="inputs" name="datestart" type="date" value="<?php ($datestart) ?>">
    J'obtiens bien ma valeur :

    Nom : Untitled.png
Affichages : 59
Taille : 4,0 Ko

    Mais rien ne s'insère dans mon input Date

    Est-ce que c'est possible d'y insérer une variable au moins?

  8. #8
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2008
    Messages : 150
    Points : 89
    Points
    89
    Par défaut
    Je crois que j'ai trouvé!!!

    en fait, il fallait tou simplement ajouter un "echo"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input class="inputs" name="datestart" type="date" value="<?php echo($datestart) ?>">
    Merci pour ton aide Sabotage, je pense que je me serais pris la tête longtemps si j'étais parti sur les cookies!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Cookies] Récupération des valeurs d'un cookie
    Par titoumimi dans le forum Langage
    Réponses: 2
    Dernier message: 17/01/2006, 11h58
  2. récupération d'une valeur dans une variable
    Par jh0483 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 17/08/2005, 10h49
  3. Récupération de la valeur d'une auto-incrémentation
    Par maldufleur dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 07/07/2005, 17h50
  4. Récupération de la valeur d'un champ au nom variable
    Par Oluha dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/02/2005, 16h13
  5. Récupération de la valeur visible d'une Liste déroulante
    Par Yaz dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 26/10/2004, 13h01

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