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 :

Valeurs qui ne se mettent pas à jour dans un template


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 146
    Points : 52
    Points
    52
    Par défaut Valeurs qui ne se mettent pas à jour dans un template
    B'jour!

    Je viens vous demander de l'aide car je suis en train d'abandonner un projet qui me tenait à coeur à cause d'un problème de templates.

    Pour comprendre toutes mes explications, le mieux est d'aller voir directement sur http://maviesanstabac.ifrance.com/ où vous pouvez voir une version de test. Pour se logger mettez "essai" dans les deux champs.

    Sur mon site, on peut changer certains paramètres (date d'arret de fumer) et en fonction de ça, les économies réalisées sont calculées et affichées sur la partie droite du site (un autre template).

    Vous constaterez, qu'au dela du bug de template au moment du log et du délog (sans doute lié à mon soucis d'ailleurs), une fois que vous aurez modifié la date d'arret de fumer: les valeurs ne sont pas mises à jour immédiatement. Elles ne le sont qu'au bout de plusieurs clics sur le lien "accueil"...

    Je sais que vous n'avez pas accès aux sources du site, je vous donnerai accès si vraiment quelqu'un est ok pour m'aider, mais en plus, je pense que je n'ai pas codé très proprement (c'est mon premier projet que je tente avec templates).

    Donc pour le début, j'aimerai savoir si vous repérez un bug évident, rien qu'en voyant la manière avec laquelle le site réagit?

    Je vous remercie très sincèrement de l'aide que vous pourrez m'apporter.

    David

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Quel est le systeme de template utilisé?
    Peux tu nous mettre la partie du code source qui déclenche cette erreur ?

    C'est pas qu'on veut pas t'aider, c'est qu'on ne peut pas avec juste les infos que tu as donné !

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 146
    Points : 52
    Points
    52
    Par défaut
    Bonjour!

    Merci de vous pencher sur mon problème!

    Pour ce qui est du système de templates utilisés, je ne sais pas trop quoi répondre. Déjà que je ne suis pas exceptionnel en PHP, je le suis encore moins en terminologie!

    Pour ce qui est du code, je me permets de vous copier toute la page d'index, parce que je ne vois pas trop trop quoi choisir dedans:

    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
     
    <?php
    session_start();
    define('ROOT','.'); //On définit une seule fois la racine du répertoire, au cas où on changerait de dossier
    include_once('classes/template.classe.php'); //On inclut (une seule fois) la classe template, qui est le moteur de templates
    include_once('commun/fonctions.php');
    mysql_connect("localhost", "root", "");
    mysql_select_db("sanstabac"); // Sélection de la base sanstabac
     
    ?>
    <title>Ma Vie Sans Tabac</title>
    <link rel="stylesheet" media="screen" type="text/css" title="Design" href="StyleEtControles/essaiindex.css" />
    <?php
     
    $vue = new Template(ROOT.'templates'); // On créé une instance de la classe template, passez en paramètre le répertoire ou se trouvent tous vos fichiers templates
     
    $reponse = mysql_query("SELECT * FROM utilisateurs WHERE utilisateur_id='".$_SESSION['utilisateur_id']."'");
    $donnees = mysql_fetch_array($reponse);
     
     
     
    $vue->assign_vars(array(
    	'CIGARETTES' =>		$_SESSION['cigarettesPasFumees'],
    	'ECONOMIES' =>		$_SESSION['eco'],
    	'LOGIN' =>		$donnees['utilisateur_login'],
    	'Y' => date("Y", $donnees['utilisateur_timestampArret']),
    	'm' =>  date("m", $donnees['utilisateur_timestampArret']),
    	'd' =>  date("d", $donnees['utilisateur_timestampArret']),
    	'H' =>  date("H", $donnees['utilisateur_timestampArret']),
    	'i' =>  date("i", $donnees['utilisateur_timestampArret']),
    	'timestampArret' => $donnees['utilisateur_timestampArret'],
    	'nbreCigarettesJour' =>  $donnees['utilisateur_nbreCigarettesJour'],
    	'tagada' => calculerTemps()
     
     
    ));
     
     
    $vue->set_filenames(array(
    'menu' => 'templates/menu.tpl'
    ));
    $vue->pparse('menu');
     
    if ($_SESSION['connecte']) {
     
    		$vue->set_filenames(array(
    			'identification' => 'templates/economies.tpl'
    			));
     
    }
    	else {
     
    		$vue->set_filenames(array(
    			'identification' => 'templates/identification.tpl'
    			));
     
     
    }
     
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    //// Ici on va définir la manière dont les actions vont être réalisées. Puisque c'est via les adresses (dans le GET) que toutes les actions vont avoir lieu, on va définir la manière de la lire. Chaque page de controleur va avoir la liste des choix précédée de switch "   ($_GET['page']){   " ////
     
    if(!isset($_GET['page'])){
    	$_GET['page']="init"; //On met la variable $_GET['page']égale à "init" au cas où elle n'est pas déjà définie.
    }
     
    if($_GET['page']=="init"){
    	$vue->set_filenames(array('contenu' => 'templates/accueil.tpl')); //On précise d'ailleurs le template à afficher par défaut
    }
     
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    include_once('controleurs/index.controleur.php');
    include_once('controleurs/configurerEconomies.controleur.php');
     
     
    $vue->pparse('contenu');  //Pour afficher un template on l'appelle.
     
     
     
    $vue->pparse('identification');
     
    $vue->set_filenames(array(
    'piedDePage' => 'templates/piedDePage.tpl'
    ));
    $vue->pparse('piedDePage');
     
     
    mysql_close(); // Déconnexion de MySQL
    ?>
    Notez que la partie de droite, où les valeurs doivent se mettre à jour, se nomme economies.tpl.

    Au moment de l'identification, c'est le code suivant qui est exécuté:

    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
    $reponse = mysql_query("SELECT * FROM utilisateurs WHERE utilisateur_login='".$_POST['utilisateur_login']."' AND utilisateur_mdp='".$_POST['utilisateur_mdp']."';");
     
    $donnees = mysql_fetch_array($reponse);
     
     
    echo "Bienvenue ". $donnees['utilisateur_login'];
     
    if ($donnees != null) {
    $_SESSION['connecte'] = true;
    $_SESSION['utilisateur_id'] = $donnees['utilisateur_id'];
    $_SESSION['utilisateur_nbreCigarettesJour'] = $donnees['utilisateur_nbreCigarettesJour'];
     
     
    }
    $vue->set_filenames(array( //On met dans un tableau un template. Il suffira d'appeler la variable correspondante (accueil)
    'contenu' => 'templates/accueil.tpl' //On fait, en fait, référence à un template grace à une variable.
    ));		
     
    		break;
    Voilà, j'ai tenté d'être le plus précis possible dans mes commentaires. Si vous avez besoin de la moindre précision, ou si vous avez la moindre question, n'hésitez pas à me demander, je tenterai de vous répondre. Je le ferai rapidement en plus, étant donné que je suis en vacances.

    Dans tous les cas, merci beaucoup encore! Parce que je suis en train de laisser mon petit site dont j'étais presque fier, à cause de ça

    Bonne soirée et joyeux Noel

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Août 2007
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 197
    Points : 135
    Points
    135
    Par défaut


    Est ce que c'est vraiment un bug lors de l'identification????

    D'autre part, le calcul economie et nombre de cigarettes est calculé par rapport a quoi?

    j'ai fait un test, avec arret dans 15 jours avec 20 cigarettes / jours
    et il me donne plus de 4000 cigarettes... je ne pense pas deja comprendre comment fonctionne ton site....

    Joyeux Noel

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 146
    Points : 52
    Points
    52
    Par défaut
    B'jour!

    En effet, je ne suis pas certain que ça soit lié à l'indentification puisque le problème se produit aussi quand on change les valeurs (comme tu l'as fait).

    Tiens, quel bazar, si on met 15 jours d'arret, ou même un an, ça passe pas, il faut mettre une date bien plus ancienne.... Je pense sincèrement que l'erreur n'est pas liée à ça, et que j'ai du me planter dans la gestion des augmentations des prix des cloppes. Je reverrais ça après.

    Je verrais bien un problème d'ordre d'execution des tâches, une histoire d'actualisation des données qui se fait après l'affichage, ou je sais pas quoi... Mais c'est bien le problème, je ne sais pas quoi!

    Ma page d'index vous parrait clean?

    Merci beaucoup de votre aide encore une fois!

    David!

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 146
    Points : 52
    Points
    52
    Par défaut
    Et je crois surtout que je vais finir par refaire mon site, pas à pas, en testant à chaque fois l'identification et en notant ce qui se passe à chaque ajout d'élément supplémentaire. Ca sera sans doute le plus simple je crois...

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 146
    Points : 52
    Points
    52
    Par défaut
    J'avance petit à petit, et je me rends compte qu'il vous manque sans doute des infos, du code, mais je ne peux pas me permettre de copier/coller tout mon code ici...

    Pour le moment, l'identification se passe mieux qu'avant. En effet, au moment de valider l'identification, les économies s'affichent directement, mais les valeurs ne sont pas à jour. il faut encore actualiser la page une fois avant qu'elles le soient. Ca me pose problème car je n'arrive pas à trop à mettre à jour les valeurs avant qu'elles apparaissent... Et c'est le même problème si on modifie la date d'arrêt.

    J'ai réussi à trouver d'où vient le problème des dates (valeurs farfelues si on met une date d'arret trop récente). J'en ai rectifié une partie, pas la totalité encore, mais je veux terminer le probleme de mise à jour des données avant.

    Je n'ai pas mis à jour ma version web, je veux essayer de trouver la solution par moi-même si je le peux. Si je n'y arrive pas, je vous le dirai

    Bon après midi à tous!

    David

Discussions similaires

  1. Index de formule qui ne se mettent pas à jour
    Par invivus dans le forum Excel
    Réponses: 1
    Dernier message: 22/11/2013, 16h37
  2. Formules qui ne se mettent pas à jour
    Par ANOVA dans le forum Excel
    Réponses: 5
    Dernier message: 08/04/2011, 10h09
  3. Réponses: 2
    Dernier message: 27/05/2008, 10h30
  4. Réponses: 11
    Dernier message: 25/04/2006, 02h30
  5. [VBA-E] Liaisons qui ne se mettent pas à jour (macro trop rapide?)
    Par minikisskool dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 21/11/2005, 10h36

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