ou est mon pb ?

Eléphant du PHP | 76 Messages

06 mars 2006, 20:04

bonjour
voila je galre depuis un moment et ca me gon... lol
en faite voila je m'explique jj creezun espace membre avec des sessions et une base de donnée tout marche bien sauf que voila regarder ma source ca sera plus facile pour comprendre
<?Session_start();
include('conf.php');
$date=date("Y-m-d");
$name=$_SESSION['login'];
$result=("SELECT compteur,mdate FROM membres_tbl WHERE login=\"$name\"");
$req = mysql_query($result) or die('Erreur SQL !<br>'.$result.'<br>'.mysql_error()); 
$ligne = mysql_fetch_array($req);


if (''.$ligne['mdate'].'' < $date  )  {
mysql_query("UPDATE membres_tbl SET compteur = 0 ,compteur=compteur+3, mdate='".$date."'   WHERE login = \"$name\""); 
require('membres.php');

}

if (''.$ligne['compteur'].''<= 0 ){
header('location:perdu.php');

}




if (''.$ligne['mdate'].''== $date ) {

include('membres.php');
}

?>
en faite si le jour change on rajoute 3 partie et si elle ne change pas il ne fait rien si par contre le compteur est a 0 cest perdu enfin je fait beaucoup de delphi et je pense que cest a peu pres la meme chose ou es l'erreur je ne vois pas la je suis bloqué merci de votre aide , au passge je debute en php merci de votre indulgence

Mammouth du PHP | 19672 Messages

06 mars 2006, 21:08

À mon avis la comparaison des dates est boiteuse et je saisis mal pourquoi tu mets à jour deux fois le compteur dans la même requête. Proposition:
<?php
session_start();
include('conf.php');

$date   = date("Y-m-d");
$name   = $_SESSION['login'];
$result = ("SELECT compteur, mdate FROM membres_tbl WHERE login='". $name."'");
$req    = mysql_query($result) or die('Erreur SQL !<br>'.$result.'<br>'.mysql_error());
$ligne  = mysql_fetch_array($req);

$db = explode("-", $ligne['mdate']);
$d1 = mktime(0, 0, 0, $db[1], $db[2], $db[0]);
$dm = explode("-", $date);
$d2 = mktime(0, 0, 0, $dm[1], $dm[2], $dm[0]);

if ($d1 < $d2)
{
    $compteur = $ligne['compteur'] + 3;
    mysql_query("UPDATE membres_tbl SET compteur = ". $compteur .", mdate = '". $date ."'   WHERE login = '". $name ."'");
    require('membres.php');
}
if ($ligne['compteur'] <= 0 )
{
    header('location:perdu.php');
}
if ($ligne['mdate'] == $date )
{
    include('membres.php');
}
?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 76 Messages

06 mars 2006, 21:10

merci de ta reponse pour le compteur je voudrait quil se mette a 0 avant de mettre 3 voila pourquoi je navait pas trouver dautre solution lol merci davance

Mammouth du PHP | 19672 Messages

06 mars 2006, 21:23

...je voudrais qu'il se mette a 0 avant de mettre 3...
:shock: c'est absolument sans intérêt et ça utilise une ressource du SGBD strictement pour rien : si tu affectes une valeur, la colonne prendra cette valeur, point barre. Tu n'as pas besoin d'assurer le coup en faisant au préalable une remise à zéro.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 76 Messages

06 mars 2006, 21:47

ok je comprend maintenat jai un autre pb tu a surement remarquer jai membres.php qui contient ceci :
<?

echo '<center><font color="#00ff00"><font size="5"><b>Bien le bonjour ', $name,' et bonne pêche à toi !!!<br><br></font></b>';

echo'<center><body bgcolor=#000000" text="#ffffff"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="256" height="380" id="jeux" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="jeux.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#000000" />
<embed src="jeux.swf" quality="high" bgcolor="#000000" width="256" height="380" name="jeux" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object></center>';

echo"<center><form methop='post' action='count.php'></center>";

echo"<center><input type='submit' value='Rejouer'><br>";
echo" Nombre de partie(s) journaliere : ";
echo ''.$ligne['compteur'].'';

echo"<br />";
echo'<a href="deconnection.php?action=deconnexion">';
echo"Déconnexion";
echo"</a></center>";

mysql_close();


?>

</body>
</html>
voila quand lutilisateur ce connect pour la premiere fois dans la journée ca lui met bien cest parties dans la bd ainsi que la date merci pour ca dailleur mais le souci ca ne le fait pas en temp reel je suis obliger de cliquer sur rejouer pour que echo ''.$ligne['compteur'].'' affiche bien ce quil yas dans la bd qd il se connecte la premiere fois echo ''.$ligne['compteur'].''; affiche 0 malgré que dans la bd il y as bien 3 tu vois ce que ca peut etre ? dans mon flash la source est toutes bete japelle 3 fichier php donc voici le code source si ca pe taider :
<?session_start();
include('conf.php');
  
mysql_query("UPDATE membres_tbl SET compteur = compteur+1  WHERE login = '".$_SESSION['login']."'"); 
  
           
?>
en faite suivant limage selectionner dans le flash ca rajoute 1 point ou 2 point et ainsi de suite jespere avoir ete clair cest tellement pas evident dexpliquer correctement lol merci davance

Mammouth du PHP | 19672 Messages

06 mars 2006, 21:57

Ce qui m'aiderait, c'est que tu écrives en français avec une ponctuation, pas en jargon SMS, c'est insupportable :?

Autre chose, commence donc par faire un code html conforme à défaut d'être valide. D'autre part, tu es pas obligé de mettre ça en PHP partout :
<?
?>
<body bgcolor="#000000" text="#ffffff">
<center><font color="#00ff00"><font size="5"><b>Bien le bonjour ', <?php echo($name); ?>,' et bonne pêche à toi !!!<br><br></font></b>

<center><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="256" height="380" id="jeux" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="jeux.swf" />
<param name="quality" value="high" />
<param name="bgcolor" value="#000000" />
<embed src="jeux.swf" quality="high" bgcolor="#000000" width="256" height="380" name="jeux" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object></center>
<center><form methop='post' action='count.php'>

<center><input type='submit' value='Rejouer'><br>
Nombre de partie(s) journaliere : 
<?php echo($ligne['compteur']); ?>

<br />
<a href="deconnection.php?action=deconnexion">
Déconnexion
</a></center>
<?php
mysql_close();
?>
</body>
</html>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 76 Messages

06 mars 2006, 22:05

oui cest vrai ce nest pas tellement francais , en faite jte rexplique
quand l'utilisateur se connect pour jouer le compteur reste a 0 et pourtant dans la bse il es bien a 3 par contre si tu appuie sur le bouton rejouer il met bien le compteur corectement voila ma question en faite jai limpression que cela ne se met pas a jour en temp reel
Merci davance de ta patience cest sympa !!!

Mammouth du PHP | 19672 Messages

06 mars 2006, 23:06

Oui, c'est vrai, ce nest pas tellement francais , en fait, je t'explique
Quand l'utilisateur se connecte pour jouer, le compteur reste a 0 et pourtant dans la base, il est bien a 3, par contre si tu appuies sur le bouton rejouer, il met bien le compteur correctement. Voila ma question : en fait, j'ai l'impression que cela ne se met pas à jour en temp réel
Merci d'avance de ta patience, c'est sympa !!!
C'est si dur que ça d'écrire en français ??? Est-ce que tu réalises que si tu codes comme tu écris, il est normal que ton programme ne fonctionne pas correctement ???

Bon, ton code maintenant: je t'ai fait une première modification mais ce code n'est pas conforme : j'ai dû déplacer une balise <body> en début de fichier, le formulaire n'est pas fermé, il y a des chevauchements de paires de balises, bref, c'est la zone complète. Commence par concevoir ton interface proprement, ensuite, tu pourras y ajouter les éléments dynamiques.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 76 Messages

07 mars 2006, 15:08

bon je vais essayer de voir cela , merci de ton aide