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 :

bug sur un attribut GET [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de legrandse
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Décembre 2010
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 354
    Par défaut bug sur un attribut GET
    Bonjour à tous,

    Je me casse la tête sur un bug causé par un attribut GET dont je ne comprend pas l'erreur et forcément ne trouve pas de solutions.

    En résumé:

    un système de tirage au sort est calculé sur base de time()+valeur rand(0,2000) et ce time()+rand(0,2000) est inséré dans une table.

    Ensuite, on compare le time() à celui qui est stocké dans la table.

    2 scénarios possibles:
    time() >= à celui de la table. Alors dans ce cas il fait apparaitre une <div> avec un message "machin"

    sinon fait apparaitre une autre <div> avec message "blabla"

    Mais en réalité alors que la condition est bien vérifiée il m'affiche à chaque fois le message "blabla"

    Le problème vient de la ligne 48 qui envoi header("Location: eid.php?joined");
    et le traitement du GET à partir de la ligne 148.


    la ligne 150
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if(!empty($tirage->futurwin)){
    est vérifiée via un echo.

    Donc si $tirage donne un résultat alors il doit m'afficher la DIV alert-warning.
    Or ce n'est pas le cas, il m'affiche la DIV alert-success et je deviens fou.

    Si qqu'un peut m'aider sur ce bug ce serait sympa.



    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
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    <?php
    session_start();
    include ("connexion.php");  
    $rand = strtoupper(trim($_SESSION['rando']['rando']));
    $time = date('Y');
     
    //calcul du temps pour le tirage tombola
    $stmt = $connexion->query("SELECT * FROM gghf_time_tirage WHERE status = 0 AND UNIX_TIMESTAMP() >= futurwin  LIMIT 1 ");
    $tirage = $stmt->fetch(PDO::FETCH_OBJ);
    echo $tirage->futurwin.'<br/>';
    echo time().'<br/>';
    //affiche gagnant tombola
    $stmt_winner = $connexion -> query ("SELECT * FROM gghf_rando WHERE rando='$rand' AND annee= '$time' ORDER BY sid DESC LIMIT 1");
    $gagnant = $stmt_winner->fetch(PDO::FETCH_OBJ);
     
     
     
     
    //inistialisation du formulaire code barre
    if(isset($_POST['newid'])){
     
    	  $newid = $_POST['newid'];	
    	  //Liste en arrière plan des NEWID pour le controle et validité
    	  $listbiker = $connexion->query("SELECT * FROM gghf_table WHERE newid='$newid'");
    	  $count = $listbiker->rowcount(); 
    	  $data = $listbiker->fetch(PDO::FETCH_OBJ);
    	  $listbiker->closeCursor(); 
     
    	  $listrando=$connexion->query("SELECT * FROM gghf_rando WHERE newid='$newid' AND rando='$rand' AND annee= '$time' ");
    	  $listrando->setFetchMode(PDO::FETCH_OBJ);
    	  $count2=$listrando->rowcount(); 
    	  $listrando->closeCursor(); 
     
     
     
    			//Trouve les NEWID qui ne sont pas encore enregistrés dans une rando
    			if (empty($newid)) {
    				$error[] = "le champ ne peut être vide !";
    				}
    			else if 
    				($count==1 && $count2==0){ //interroge la table pour savoir si les coordonnées bikers sont encore valables
    					if ($data->updata ==1) {
    						header ("Location: update.php?newid=$newid");
    					}
    					else { //autrement insère le code barre
    						$insert = $connexion->exec("INSERT INTO gghf_rando (annee, rando, id, nom, prenom, rue, code, postal,email, newid, winbiker) VALUES('$time', '$rand', '".addslashes($data->id)."', '".addslashes($data->nom)."', '".addslashes($data->prenom)."', '".addslashes($data->rue)."', '$data->code', '$data->postal', '$data->email', '$data->newid', '$data->winbiker')");
     
    					header("Location: eid.php?joined");
    					}
    			}
     
     
    }
     
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>S&eacute;lection Randonn&eacute;e</title>
    <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css" type="text/css">
    <link rel="stylesheet" href="style.css" type="text/css">
    <script type="text/javascript" src="bootstrap/js/jquery-1.11.3-jquery.min"></script>
    <script type="text/javascript" src="bootstrap/js/bootstrap.min.js"></script>
    <script type="text/javascript">
    function focus()
      {
      document.getElementById('newid').focus()
      }
    </script>
     
    <script type="text/javascript">
    function attention()
    {
    	resultat=window.confirm('Attention, le tirage de la tombola ne se fait que le dimanche à 11h30, voulez-vous continuer ?');
    	if (resultat==1)
    	{
    		return true;
    	}
    	else
    	{
    		return false;
    	}
    }
    </script>
     
    <script type="text/javascript">
    function supprimer()
    {
    	resultat=window.confirm('Etes-vous certain de vouloir supprimer ce biker ?');
    	if (resultat==1)
    	{
    		return true;
    	}
    	else
    	{
    		return false;
    	}
    }
    </script>
     
    <script type="text/javascript">
    window.setTimeout(function() {
        $("#alert").fadeTo(500, 0).slideUp(500, function(){
            $(this).remove(); 
        });
    }, 2000);
     
    window.setTimeout(function() {
    $("#success").fadeTo(500, 0).slideUp(500, function(){
            $(this).remove(); 
        });
    }, 1000);
     
    </script>
     
     
    </head>
    <body onLoad="focus()">
    <div class="container">
    	 <div class="row">
              <div class="col-sm-3">
    			<img class="logo" src="images/logogghfvanilla.png" alt="Fond">
        	 </div>
              <div class="col-sm-9">
                  <div class="panel panel-primary">
                      <div class="panel-heading">
                      		<h3 class="panel-title">Sélection automatique randonnée : <?php echo $rand ?></h3>
                  	  </div>
                  <div class="panel-body">
     
                        <div class="form-container"> 
                          <form name="formulaire" method="post" >
     
    						   <?php
                            if(isset($error))
                            {
                                foreach($error as $error)
                                {
                                ?>
                                <div class="alert alert-danger" id="alert">
                                <i class="glyphicon glyphicon-warning-sign"></i> &nbsp; <?php echo $error; ?> !
                                </div>
                            <?php }
                            }
     
                            else if(isset($_GET['joined']))
                            {
                            	if(!empty($tirage->futurwin)){
    						?>
                                <div class="alert alert-warning alert-dismissable" id="tirage">
                                <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>
                                    <i class="glyphicon glyphicon-log-in"></i> &nbsp; Bravo ! <?php echo $gagnant->nom.' '.$gagnant->prenom; ?> est tiré au sort à la tombola. Veuillez svp lui donner l'enveloppe correspondante.
                                </div>
                               <?php  $stmt_updatetirage = $connexion->exec("UPDATE gghf_time_tirage SET status = 1 WHERE UNIX_TIMESTAMP() > futurwin  ");  //passe à la tranche horaire suivante
     
    								  //$sth->execute();
    			     }
    			     else { ?>	
                            	<div class="alert alert-success" id="success">
                                    <i class="glyphicon glyphicon-log-in"></i> &nbsp; Opération enregistrée ! 
                                </div>
    			<?php }
                        }?> 
     
                                <div class="form-group">
                                <input type="texte" name="newid" title="Scanner entre 0 et 5cm du chronocode" placeholder="Code barre de la carte ou recherche par le nom" id="newid" class="form-control" />
                            </form>
                            </div>
                        </div>

  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
    Par défaut
    sinon fait apparaitre une autre <div> avec message "blabla"
    Où est cette affichage dans le code que tu nous montres ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé Avatar de legrandse
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Décembre 2010
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 354
    Par défaut
    ici

    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
                            if(isset($error))
                            {
                                foreach($error as $error)
                                {
                                ?>
                                <div class="alert alert-danger" id="alert">
                                <i class="glyphicon glyphicon-warning-sign"></i> &nbsp; <?php echo $error; ?> !
                                </div>
                            <?php }
                            }
     
                            else if(isset($_GET['joined']))
                            {
                            	if(!empty($tirage->futurwin)){
    						?>
                                <div class="alert alert-warning alert-dismissable" id="tirage">
                                <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>
                                    <i class="glyphicon glyphicon-log-in"></i> &nbsp; Bravo ! <?php echo $gagnant->nom.' '.$gagnant->prenom; ?> est tiré au sort à la tombola. Veuillez svp lui donner l'enveloppe correspondante.
                                </div>
                               <?php  $stmt_updatetirage = $connexion->exec("UPDATE gghf_time_tirage SET status = 1 WHERE UNIX_TIMESTAMP() > futurwin  ");  //passe à la tranche horaire suivante
     
    								 
    			     }
    			     else { ?>	
                            	<div class="alert alert-success" id="success">
                                    <i class="glyphicon glyphicon-log-in"></i> &nbsp; Opération enregistrée ! 
                                </div>
    			<?php }
                        }?>

  4. #4
    Membre éclairé Avatar de legrandse
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Décembre 2010
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 354
    Par défaut
    Ah je viens de trouver une piste.

    Dès que j'élimine ?joined de l'url çà fonctionne pour le prochain enregistrement.

    Oui mais chaque nouvel enregistrement génère une url de type .com?joined

  5. #5
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    Pourquoi tu ne mets pas une valeur à joined ?

    header("Location: eid.php?joined=1");

  6. #6
    Membre éclairé Avatar de legrandse
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Décembre 2010
    Messages
    354
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Décembre 2010
    Messages : 354
    Par défaut
    Merci pour ta réponse.

    qu'est-ce que çà change au traitement si je rajoute joined=1 ?

    Je vais avoir ceci:
    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
    else if(isset($_GET['joined=1']))
                            {
                            	if(!empty($tirage->futurwin)){
    						?>
                                <div class="alert alert-warning alert-dismissable" id="tirage">
                                <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>
                                    <i class="glyphicon glyphicon-log-in"></i> &nbsp; Bravo ! <?php echo $gagnant->nom.' '.$gagnant->prenom; ?> est tiré au sort à la tombola. Veuillez svp lui donner l'enveloppe correspondante.
                                </div>
                               <?php  $stmt_updatetirage = $connexion->exec("UPDATE gghf_time_tirage SET status = 1 WHERE UNIX_TIMESTAMP() > futurwin  ");  //passe à la tranche horaire suivante
     
    							}
    							else { ?>	
                            	<div class="alert alert-success" id="success">
                                    <i class="glyphicon glyphicon-log-in"></i> &nbsp; Opération enregistrée ! 
                                </div>
     
    						<?php 
    							}
    Mais le traitement de GET reste le même non ?
    Je ne vois pas trop ce qu'il faut faire avec ta suggestion.

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

Discussions similaires

  1. IE bug sur mise à jour attribut onclick en js
    Par andong dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/08/2007, 13h58
  2. question sur les attributs javascript
    Par PAYASS59 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 20/04/2005, 13h34
  3. Bug sur glColor3i !
    Par ZiZouJH dans le forum OpenGL
    Réponses: 23
    Dernier message: 04/06/2004, 10h21
  4. Bug sur la prorpiété required d'un TField avec ADO ???
    Par denrette dans le forum Bases de données
    Réponses: 6
    Dernier message: 04/11/2003, 11h04
  5. Page de rapport de bug sur le site de Sun
    Par piff dans le forum Général Java
    Réponses: 1
    Dernier message: 03/03/2003, 18h12

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