Compteur avec login
Mme Cartier
-
Mme cartier -
Mme cartier -
Bonjour,
J'ai un petit problème. Je voudrai créer un compteur qui empêche mes élèves de revenir deux fois sur la même page pendant 1 à 2 semaines (car ce sont des tests et que je ne veux pas qu'ils se souviennent des réponses). Il me faut donc un compteur qui puisse fonctionner uniquement avec le login et non pas l'adresse IP car les élèves sont souvent frères et soeurs donc sur le même ordinateur.
Merci beaucoup si vous pouvez m'aider.
Pour plus de renseignements, je me tiens prête.
J'ai un petit problème. Je voudrai créer un compteur qui empêche mes élèves de revenir deux fois sur la même page pendant 1 à 2 semaines (car ce sont des tests et que je ne veux pas qu'ils se souviennent des réponses). Il me faut donc un compteur qui puisse fonctionner uniquement avec le login et non pas l'adresse IP car les élèves sont souvent frères et soeurs donc sur le même ordinateur.
Merci beaucoup si vous pouvez m'aider.
Pour plus de renseignements, je me tiens prête.
Configuration: Windows XP Firefox 2.0.0.11
6 réponses
-
bonsoir,
une base de données qui conserve le login et la date de connexion, interrogée lors d'une tentative de connexion peut régler le problème. -
-
qaund quelqu'un se connecte, vous conservez son mail et son heure de connexion dans une base de données à condition qu'il ne se soit déjà connecter pendnat une période définie.
cela suppose que vous connaissiez Php, mysql pour géere tout cela. -
J'ai un peu progressé dans mon problème : je fais appel à ma bdd (avec nom et prénom de l'élève) et j'essaie d'incrémenter le nombre représentant le nombre de fois où il a visité la page C11. Il refuse de me l'incrémenter. Comment faire?
Dans ma bdd, j'ai une ligne nom; prenom; pass; C11;
Voici mon script une fois que l'élève a été identifié :
$connection = mysql_connect('cartiers.free.fr', 'cartiers', '****') or die(mysql_error());
mysql_select_db('cartiers', $connection) or die(mysql_error());
$req = "SELECT * FROM stock_eleve WHERE nom = '".addslashes($nom)."' AND prenom = '".addslashes($prenom)."'";
$resultat=mysql_query($req,$connexion);
$C11 = $data['C11'];
if ($C11 == 0) {
echo "page C.1_1 : 1er accès";
$req_maj="UPDATE stock_eleve SET $C11 =$C11 ++ 1, date=now(), heure=curtime() WHERE nom = '".addslashes($nom)."' AND prenom = '".addslashes($prenom)."'";
mysql_query($req_maj,$connexion);
}
elseif ($C11 > 0) {
$req_ins="INSERT INTO stock_eleve (C11,C11,date,heure) VALUES ('C11',1,now(),curtime() )";
mysql_query($req_ins,$connexion);
echo "page C_1_1 : $C11 ème accès le $ligne[date] à $ligne[heure]";
}
Merci de me dire ce qui ne va pas -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
hum, pour commencer:
$resultat=mysql_query($req,$connexion);
$C11 = $data['C11'];
passage de $resultat à $data? y a-t-il du code entre ces deux actions?
dans la requête màj, la syntaxe SQL devrait être UPDATE nomdetable SET nomdechamp=valeur
$C11 n'est pas un nom de champ valide. de même, $C11 ++ 1 ne veut rien dire pour mysql.
et il y a d'autres erreurs de syntaxe à mon avis. -
C11 c'est une colonne de ma bdd comme nom et prenom. A l'origine, j'ai initialisé C11 à 0 car l'élève n'est pas venu sur la page C11.
Je voudrai alors récupérer ce nombre. Que dois-je écrire à la place de $C11? C11 ou quoi d'autre? J'ai essayé diverses notations.
Non, il n'y a pas de code entre $résultat et $C11.
J'ai essayé ça aussi :
$req = "SELECT * FROM stock_eleve WHERE nom = '".addslashes($nom)."' AND prenom = '".addslashes($prenom)."'";
$resultat=mysql_query($req,$connexion);
$ligne= mysql_fetch_array($resultat);
if ($C11 == 0) {
echo "page C.1_1 : 1er accès";
$C11 = ++ $ligne[C11];
$req_maj="UPDATE stock_eleve SET C11='$C11', date=now(), heure=curtime() WHERE nom = '".addslashes($nom)."' AND prenom = '".addslashes($prenom)."'";
mysql_query($req_maj,$connexion);
echo "page C_1_1 : $C11 ème accès le $ligne[date] à $ligne[heure]";
}
else
{
echo "page C_1_1 : $C11 ème accès le $date à $heure";
}
Mais pas plus de résultat. Je suis perdue.