Fonction Time En Php Actualiser automatique

Fermé
bobyde13 - 22 nov. 2007 à 04:53
 soggos - 4 janv. 2009 à 15:24
Bonjour,
voila je fait un nouveau site web ce sera donc un jeu de culture de cannabis virtuel voici mon code php. Je ne comprend pas comment faire pour que ce code s'execute tout seul avec la fonction time a un nombre de seconde determiné!

Voici le Code source pour ma page

<?
function cocaine9(){
global $userrow, $numqueries;
$page = "<center>Drugs Shop</center>";
$id = $userrow['id'];
$charname=$userrow['charname'];
$plant = $userrow["plant"];
$gold = $userrow["gold"]; }
if ($userrow["plant"] = 0) { die("Vous navez pas asser de cocaine.<a href='index.php'>Sortire</a>"); }
$ied = (time()+15);
if($userrow['plant'] = 1 && time() - $ied) {
$gold2 = $userrow ["gold"] + "200000";
doquery("UPDATE {{table}} SET gold=+$gold2 WHERE id=".$userrow["id"], "users");
{ die("votre argent a augmenté de 200.000$ !.<a href='index.php'>Sortire</a>"); }
}
?>

Voila si vous pourriez maider un peu ce serais pas de refus ^^ merci
A voir également:

5 réponses

Bonjour,

j'ai juste un probleme de comprehension, pour moi cette fonction d'execute cote serveur une seule fois et la page arrive cote client, or ce script devrait etre cote client. 2 possibilites :

1- le garder cote serveur mais mettre le temps en variable de session et rafraichir regulierement
2- faire du javascript cote client

Irem
0
Bonjour,
Non Je crois que Il y a Moyen Seulement Avec La Fonction Time()+ Dans La Page *.php Peut Regeneré Le Code Automatiquement . Aller Svp Quelqun Aider Moi.
0
Salut à tous,

Cette fonction me branche, je suis en train de faire souhaiter un bon anniversaire à mes clients, le jour J bien sur, mais je n'arrive pas à faire actualiser la fonction automatiquement coté serveur une fois par jour.

Merci à l'avance

Harris
0
Salut,

Tu devrais peut-etre te renseigner sur les crontab ^^
et voir si ton hebergeur les supporte.

Cordialement.
Lochy
0
Bonjour à tous...
Pour "bobyde13", le PHP c'est bien, mais pour une actualisation auto toutes les 5 secondes par exemple AJAX t'aidera , voilà en gros ce que tu peux faire (sorry script à l'arrache à corriger surement ) :
1 => sur la page que tu affiches, mets l'endroit d'affichage de ta fonction dans un "<div>" avec une "id"
ex : '<div id="maFonctionAAfficher"> </div>'
2 => tu vas créer une page php qui contient ta fonction et l'affiche :
"maPageAffichage.php" :
<?php
// on suppose que la connection à la base est instensiée
function cocaine9(){
global $userrow, $numqueries;
$page = "<center>Drugs Shop</center>";
$id = $userrow['id'];
$charname=$userrow['charname'];
$plant = $userrow["plant"];
$gold = $userrow["gold"]; }
if ($userrow["plant"] = 0) { die("Vous navez pas asser de cocaine.<a href='index.php'>Sortire</a>"); }
$ied = (time()+15);
if($userrow['plant'] = 1 && time() - $ied) {
$gold2 = $userrow ["gold"] + "200000";
doquery("UPDATE {{table}} SET gold=+$gold2 WHERE id=".$userrow["id"], "users");
{ die("votre argent a augmenté de 200.000$ !.<a href='index.php'>Sortire</a>"); }
}
// maintenant, tu vérifis si une variable post existe, tu appelle cette fonction
// toujour dans la même page bien sûr
if(isset($_POST['gogo']
cocaine9();
// fin de cette page
?>
3 => enfin tu crées une fonction AJAX/JAVASCRIPT soit directement dans ta premiere page (ou le <div id=..> existe) ou dans un fichier à part que tu appelles au début de cette page :
// fonction de création d'un objet XMLHTTPrequest
function getXhr() // creation de mon OBJET XMLHttpRequest
{
var http_request = null ;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType('text/xml');
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}

if (!http_request) {
alert('Abandon :( Impossible de créer une instance XMLHTTP');
return false;
}
return http_request;
}
// ensuite la fonction qui va demander a la page "maPageAffichage.php" d'afficher dans le "div" ta fonction
function affiche()
{
obTtc = getXhr(); // je crée un objet
obTtc.onreadystatechange = function(){ // j'analyse la réponse du serveur
if(obTtc.readyState == 4 && obTtc.status == 200){ // là tous les statuts sont OK
var l = obTtc.responseText;
// ci dessous je demande à ce que mon "div" soit 'rempli' par ce que je veux
document.getElementById("maFonctionAAfficher").innerHTML = unescape(l);
}
}
obTtc.open("POST","/* URL DE TA PAGE \"maPageAffichage.php\"",true);
obTtc.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
obTtc.send("gogo="+ok); // j'envoie mon POST gogo avec une valeur arbitraire, voire nulle
}
l'astuce maintenant, dans la balise "body" de ta page initiale tu appelles cette fonction toutes les X secondes
par exemple tu fais
'<body onLoad="setTimeOut(affiche(),5000);"> // ici ton "div" et juste lui et non pas ta page
// sera mis à jour toutes les 5 secondes

/* _________________________________________________________________________
__________________________________________________________________________ */

pour HARRIS,
le truc est beaucoup plus simple, puisque tu veux un changement journalier, le mieux d'après moi serait de créer une table avec une valeur unique (ou un fichier texte avec fopen etc...)
dans laquelle tu enregistres la date du jour du type "date('dmY')"
et à chaque ouverture de page tu compares si la date du jour est la même que celle enregistrée...
si c'est la même tu changes rien
sinon tu updates ta table et envois ton affichage
exemple
// date du jour
$laDate = date('dmY');
$query = mysql_query("SELECT COUNT(*) FROM ma_table WHERE ladate = '$laDate');
$result = mysql_fetch_rows($query);
if($result[0] == 0) // Ben là la date n'est pas la même :o(
{
mysql_query("UPDATE ma_table SET ladate = '$laDate' WHERE id = '1'"); // je mets ma table à jour
// je change mon affichage
$monObjet->affichageChange();
}

// -------------------------------------------------------------------
J'espère vous avoir un peu aidé...


à plus

Sk@p
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
je pense que ton problème se situe dans Tes if() parceque au lieu de comparer tu tu affectes
0
rafraichir une page tout les X seconde:
<meta http-equiv="Refresh" content="30"> // 30secondes
0