Actualisation de page
Utilisateur anonyme
-
arshi92 Messages postés 131 Date d'inscription Statut Membre Dernière intervention -
arshi92 Messages postés 131 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je cherche désespérément un moyen d'actualisation automatique de ma page qui actualise aussi le code php, je m'explique:
-je veux que la page en lecture s'actualise automatiquement régulièrement, pour ce faire, j'utilise le code suivant:
--> Cette partie à l'air de fonctionner puisuqe la page marque un temps de chargement tout les (ici) 5sec.
-je veux aussi que à chaque actualisation, le profil de l'utilisateur soit crédité de 1 (+1), pour ce faire, j'utilise le code suivant:
(je ne suis qu'un amateur et ce code est en partie trouvé sur internet, mais il fonctionne)
LE SOUCIS, c'est que le compte de l'utilisateur n'est crédité qu'une seule fois et non à chaque actualisation. Comment faire? Je veux que toute les 5 sec la variable points de l'utilisateur augmente de 1!
Merci pour votre aide :)
je cherche désespérément un moyen d'actualisation automatique de ma page qui actualise aussi le code php, je m'explique:
-je veux que la page en lecture s'actualise automatiquement régulièrement, pour ce faire, j'utilise le code suivant:
<?php $url=$_SERVER['REQUEST_URI']; header("Refresh: 5; URL=$url"); ?>
--> Cette partie à l'air de fonctionner puisuqe la page marque un temps de chargement tout les (ici) 5sec.
-je veux aussi que à chaque actualisation, le profil de l'utilisateur soit crédité de 1 (+1), pour ce faire, j'utilise le code suivant:
<?php session_start(); $host = 'XXX'; $user = 'XXX'; $pwd = 'XXX'; $dbname = 'XXX'; $charset = ";charset=UTF8"; try{ $bdd= new PDO("mysql:host=".$host.";dbname=".$dbname.$charset,$user,$pwd); $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); } $id = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL; $points = !empty($_SESSION['points']) ? intval($_SESSION['points']) : 0; if ($id) { $points++; $sql = "UPDATE membres SET points= '$points' WHERE id='$id'"; $datas = array(':points'=>$points, ':id'=>$id); try{ $prepare = $bdd->prepare($sql); $prepare->execute($datas); }catch(Exception $e){ echo 'Error ! ' . $e->getMessage(); } } ?>
(je ne suis qu'un amateur et ce code est en partie trouvé sur internet, mais il fonctionne)
LE SOUCIS, c'est que le compte de l'utilisateur n'est crédité qu'une seule fois et non à chaque actualisation. Comment faire? Je veux que toute les 5 sec la variable points de l'utilisateur augmente de 1!
Merci pour votre aide :)
A voir également:
- Actualisation de page
- Impossible de supprimer une page word - Guide
- Numéro de page word - Guide
- Imprimer tableau excel sur une page - Guide
- Page d'accueil - Guide
- Bordure de page word - Guide
1 réponse
Bonjour.
Les lignes :
$id = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL;
$points = !empty($_SESSION['points']) ? intval($_SESSION['points']) : 0;
veulent dire que :
- La variable $id prend la valeur de $_SESSION['id']. Si $_SESSION['id'] n'existe pas, $id prend la valeur NULL;
- La variable $points prend la valeur de $_SESSION['points']. Si $_SESSION['points'] n'existe pas, $points prend la valeur 0;
Donc tu dois récupérer à chaque fois les points du membre à partir de l'id du membre dans la base de données alors avec un peu de modifications ( tu devrais pouvoir adapter ) , ça donne.
<?php
//En cas de SESSION_START , toujours le mettre au début
session_start();
//Actualisation de la page
$url=$_SERVER['REQUEST_URI'];
header("Refresh: 5; URL=$url");
//Connexion à la base de données
try
{
$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', 'root');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
//id du membre (récupérable par une session , ça dépend de toi)
$id= 1;
//Requete de recuperation des points du membre
$reponse = $bdd->prepare('SELECT points from membres where id=?');
$reponse->execute(array($id));
//Récupere les données issue de la requete
$donnees = $reponse->fetchAll();
//Premiere ligne tu tableau ( En php de 0 à n-1 , n étant le nombre de lignes)
//Colonne de la table dont on récupère la valeur : points
$points = $donnees[0]['points'];
if ($id) {
$points++;
$sql = "UPDATE membres SET points= '$points' WHERE id='$id'";
$datas = array(':points'=>$points, ':id'=>$id);
try{
$prepare = $bdd->prepare($sql);
$prepare->execute($datas);
}catch(Exception $e){
echo 'Error ! ' . $e->getMessage();
}
}
?>
Les lignes :
$id = !empty($_SESSION['id']) ? $_SESSION['id'] : NULL;
$points = !empty($_SESSION['points']) ? intval($_SESSION['points']) : 0;
veulent dire que :
- La variable $id prend la valeur de $_SESSION['id']. Si $_SESSION['id'] n'existe pas, $id prend la valeur NULL;
- La variable $points prend la valeur de $_SESSION['points']. Si $_SESSION['points'] n'existe pas, $points prend la valeur 0;
Donc tu dois récupérer à chaque fois les points du membre à partir de l'id du membre dans la base de données alors avec un peu de modifications ( tu devrais pouvoir adapter ) , ça donne.
<?php
//En cas de SESSION_START , toujours le mettre au début
session_start();
//Actualisation de la page
$url=$_SERVER['REQUEST_URI'];
header("Refresh: 5; URL=$url");
//Connexion à la base de données
try
{
$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', 'root');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
//id du membre (récupérable par une session , ça dépend de toi)
$id= 1;
//Requete de recuperation des points du membre
$reponse = $bdd->prepare('SELECT points from membres where id=?');
$reponse->execute(array($id));
//Récupere les données issue de la requete
$donnees = $reponse->fetchAll();
//Premiere ligne tu tableau ( En php de 0 à n-1 , n étant le nombre de lignes)
//Colonne de la table dont on récupère la valeur : points
$points = $donnees[0]['points'];
if ($id) {
$points++;
$sql = "UPDATE membres SET points= '$points' WHERE id='$id'";
$datas = array(':points'=>$points, ':id'=>$id);
try{
$prepare = $bdd->prepare($sql);
$prepare->execute($datas);
}catch(Exception $e){
echo 'Error ! ' . $e->getMessage();
}
}
?>