begin process at 2012 05 27 20:05:06
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Base de données

 > QUI EST EN LIGNE ? RAPELLE DES COOKIES

QUI EST EN LIGNE ? RAPELLE DES COOKIES


 Information sur la source

Note :
7,33 / 10 - par 6 personnes
7,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Base de données Niveau :Débutant Date de création :24/04/2004 Date de mise à jour :27/05/2004 18:01:29 Vu :3 756

Auteur : letrucaso

Ecrire un message privé
Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

 Description

Bonjour,

Voici un code que j'ai créer car je trouvais pas mal de solutions a mon probleme, de liste des utilisateurs qui sont en ligne, mais celle-ci n'etait pas adapté a mes besoins.

Source

  • <?
  • /*avant tou j'utilise des fichier pour les parametre de connection a la bdd et pour les parametre visuel des pages.*/
  • require("connect.php");
  • require("style.php");
  • mysql_connect($sqlad, $sqllog, $sqlpwd) or die("Mauvais login ou pass ou adresse sql => impossibilité de connection a la base de données.");
  • mysql_select_db($sqlbase) or die("Impossible de se connecter à la base de données.");
  • echo "
  • <html>
  • <head>
  • <title>$titre</title>
  • <meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
  • <style type=\"text/css\">
  • <!--
  • body,td,th {
  • font-family: $police;
  • font-size: $taillepol;
  • color: $colorpol;
  • font-weight: $weightpol;
  • }
  • body {
  • background-color: $backcolor;
  • }
  • a {
  • font-size: $taillepol;
  • color: $colorlink;
  • font-weight: $weightpol;
  • }
  • a:visited {
  • color: $colorlink;
  • }
  • a:hover {
  • color: $colorlinkh;
  • }
  • a:active {
  • color: $colorlinkh;
  • }
  • -->
  • </style></head>
  • <body>
  • </body>
  • </html>";
  • /* Voila bon maintenant passons au system de reconnaissance de mode selectionné (invité ou personne enregistrée) */
  • if (isset($_COOKIE['pseudocookie'])) {
  • /* quand on se log en tant qu'invité seul le cookie pseudocookie est cree les autre sont suprimés. Quand on se log en tant que membre troi variable sont recuperer de la base et mise dans les cookie : le pseudo, le pass, et le niveau ensuite je verifie bien tou (c'est vrai que ca rajoute du temps pour les petites connection mais c'est tellement peu lol) et donc la je verifie toutes les variables.
  • PS : de plus pour ceux qui ne le savent pas :
  • - pour creer un cookie on fait comme ca :
  • setcookie('nom_du_cookie',''valeur_du_cookie'',time()+le temps de durer du cookie ,"l'endroit ou le cookei sera actif");
  • exemple :
  • setcookie('pseudocookie','' . $textlogonpseud . '',time()+86400,"/")or exit();
  • ici le cookie sera appellé pseudocookie aura la valeur de la variable $textlogonpseud et durera 24 heures (86400 secondes) dans le domaine entier du site ou alors la page est arreter par la fonction exit.
  • - pour lire un cookie moi j'utilise les variable $_COOKIE['nom_du_cookie'] comme ci dessous c'est assez simple.
  • - pour les effacer il suffit de faire ca :
  • setcookie("nom_du_cookie","",time()-temps de durer du cookie,"l'endroit ou le cookei sera actif");
  • ce qui a poru but d'amener le cookie a expiration.
  • exemple :
  • setcookie("pseudocookie","",time()-86400,"/");
  • voila pour les rappelles sur les cookies donc revenons a toute la verification
  • */
  • if($_COOKIE['pseudocookie']!=NULL) {
  • $pseudo_en_cours=$_COOKIE['pseudocookie'];
  • if (isset($_COOKIE['passcookie'])) {
  • if ($_COOKIE['passcookie']!=NULL) {
  • $pass_en_cours=$_COOKIE['passcookie'];
  • $sql="SELECT * FROM chat_membre WHERE pseudo='$pseudo_en_cours'";
  • $reponse=mysql_query($sql);
  • if (mysql_num_rows($reponse)!=0) {
  • /* ici je vien de verifier si le pseudo exister bien dans la base de données */
  • $sqll="SELECT * FROM chat_membre WHERE pass='$pass_en_cours' AND pseudo='$pseudo_en_cours'";
  • $reponse=mysql_query($sql);
  • if (mysql_num_rows($reponse)!=0) {
  • qui_online();
  • }
  • else {
  • echo "<center>Mauvais Mot-de-passe.<br><a href='index.php'>Retour</a>";
  • }
  • }
  • else {
  • echo "<center>Mauvais Pseudo.<br><a href='index.php'>Retour</a>";
  • }
  • }
  • else {
  • qui_online();
  • }
  • }
  • else {
  • qui_online();
  • }
  • }
  • else {
  • echo "<center>Veuillez au moin vous loguer en tant qu'invité.<br><a href='index.php'>Retour</a>";
  • }
  • }
  • else {
  • echo "<center>Veuillez au moin vous loguer en tant qu'invité.<br><a href='index.php'>Retour</a>";
  • }
  • /*
  • Voila la verification est enfin fini.... C'est long lol passons a la fonction
  • */
  • function qui_online() {
  • $pseudos=$_COOKIE['pseudocookie']; //je recupere le pseudo
  • $ip=$_SERVER['REMOTE_ADDR']; //Je recupere l'ip
  • $temps_en_cours=time(); //Je recupere le temps actuel
  • $tempsrafraiche=5; //temps d'effacement des personnes
  • $sql="SELECT * FROM chat_conn WHERE pseudo='$pseudos'";
  • $reponse=mysql_query($sql);
  • if (mysql_num_rows($reponse)==0) {
  • /*
  • Si la personne n'existe pas encore alors on l'ajoute.
  • */
  • $sql8="INSERT INTO chat_conn VALUES('', '$temps_en_cours', '$pseudos', '$ip')";
  • mysql_query($sql8);
  • }
  • else {
  • /*
  • Sinon on met a jour son temps pour evité qu'il soit effacé
  • */
  • $sql9="UPDATE chat_conn SET temps='$temps_en_cours' WHERE pseudo='$pseudos'";
  • mysql_query($sql9);
  • }
  • $sql="SELECT * FROM chat_conn";
  • $reponse=mysql_query($sql);
  • /*
  • je recupere tous mes connectés.
  • je suprime ceux en trop.
  • */
  • while ( $donnees=mysql_fetch_array($reponse) ) {
  • /*
  • verification du temps et supression si le temps imparti est ecoulé
  • */
  • $temps_en_cours2=$temps_en_cours-$tempsrafraiche;
  • if ( $donnees['temps'] < $temps_en_cours2) {
  • $tempsefface=$donnees['temps'];
  • $sql="DELETE FROM chat_conn WHERE temps='$tempsefface'";
  • mysql_query($sql);
  • }
  • }
  • $sql3="SELECT * FROM chat_conn";
  • $reponse1=mysql_query($sql3);
  • /*
  • je rerecupere tous mes connecté ce coup si il ne reste que les personne encore la.
  • et je les affiche dans une liste avec un lien vers un profil.
  • */
  • while ( $liste=mysql_fetch_array($reponse1) ) {
  • $recupid=$liste['pseudo'];
  • $sql2="SELECT * FROM chat_membre WHERE pseudo='$recupid'";
  • $reponse2=mysql_query($sql2);
  • if (mysql_num_rows($reponse2)!=0) {
  • echo "<center><a href='profilaff.php?pseudoprof=" . $recupid . "'>" . $recupid . "</a></center><br>";
  • }
  • else {
  • echo "<center>" . $recupid . "</center><br>";
  • }
  • }
  • }
  • ?>
<?

/*avant tou j'utilise des fichier pour les parametre de connection a la bdd et pour les parametre visuel des pages.*/


require("connect.php");
require("style.php");

mysql_connect($sqlad, $sqllog, $sqlpwd) or die("Mauvais login ou pass ou adresse sql => impossibilité de connection a la base de données.");
mysql_select_db($sqlbase) or die("Impossible de se connecter à la base de données.");

echo "
<html>
<head>
<title>$titre</title>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">
<style type=\"text/css\">
<!--
body,td,th {
	font-family: $police;
	font-size: $taillepol;
	color: $colorpol;
	font-weight: $weightpol;
}
body {
	background-color: $backcolor;
}
a {
	font-size: $taillepol;
	color: $colorlink;
	font-weight: $weightpol;
}
a:visited {
	color: $colorlink;
}
a:hover {
	color: $colorlinkh;
}
a:active {
	color: $colorlinkh;
}
-->
</style></head>

<body>

</body>
</html>";

/* Voila bon maintenant passons au system de reconnaissance de mode selectionné (invité ou personne enregistrée) */

if (isset($_COOKIE['pseudocookie'])) { 

/* quand on se log en tant qu'invité seul le cookie pseudocookie est cree les autre sont suprimés. Quand on se log en tant que membre troi variable sont recuperer de la base et mise dans les cookie : le pseudo, le pass, et le niveau ensuite je verifie bien tou (c'est vrai que ca rajoute du temps pour les petites connection mais c'est tellement peu lol) et donc la je verifie toutes les variables. 

PS : de plus pour ceux qui ne le savent pas : 

- pour creer un cookie on fait comme ca :
setcookie('nom_du_cookie',''valeur_du_cookie'',time()+le temps de durer du cookie ,"l'endroit ou le cookei sera actif");

exemple : 

setcookie('pseudocookie','' . $textlogonpseud . '',time()+86400,"/")or exit();

ici le cookie sera appellé pseudocookie aura la valeur de la variable $textlogonpseud et durera 24 heures (86400 secondes) dans le domaine entier du site ou alors la page est arreter par la fonction exit.

- pour lire un cookie moi j'utilise les variable $_COOKIE['nom_du_cookie'] comme ci dessous c'est assez simple.

- pour les effacer il suffit de faire ca : 

setcookie("nom_du_cookie","",time()-temps de durer du cookie,"l'endroit ou le cookei sera actif");

ce qui a poru but d'amener le cookie a expiration.

exemple : 

setcookie("pseudocookie","",time()-86400,"/");

voila pour les rappelles sur les cookies donc revenons a toute la verification 
*/


if($_COOKIE['pseudocookie']!=NULL) {
$pseudo_en_cours=$_COOKIE['pseudocookie'];

if (isset($_COOKIE['passcookie'])) {

if ($_COOKIE['passcookie']!=NULL) {
$pass_en_cours=$_COOKIE['passcookie'];
$sql="SELECT * FROM chat_membre WHERE pseudo='$pseudo_en_cours'";
$reponse=mysql_query($sql);

if (mysql_num_rows($reponse)!=0) { 

/* ici je vien de verifier si le pseudo exister bien dans la base de données */

$sqll="SELECT * FROM chat_membre WHERE pass='$pass_en_cours' AND pseudo='$pseudo_en_cours'";
$reponse=mysql_query($sql);

if (mysql_num_rows($reponse)!=0) {
qui_online();
}

else {
echo "<center>Mauvais Mot-de-passe.<br><a href='index.php'>Retour</a>";
}

}

else {
echo "<center>Mauvais Pseudo.<br><a href='index.php'>Retour</a>";
}

}

else {
qui_online();
}

}

else {
qui_online();
}

}

else {
echo "<center>Veuillez au moin vous loguer en tant qu'invité.<br><a href='index.php'>Retour</a>";
}

}

else {
echo "<center>Veuillez au moin vous loguer en tant qu'invité.<br><a href='index.php'>Retour</a>";

} 

/*
Voila la verification est enfin fini.... C'est long lol passons a la fonction 
*/

function qui_online() {

$pseudos=$_COOKIE['pseudocookie']; //je recupere le pseudo
$ip=$_SERVER['REMOTE_ADDR'];          //Je recupere l'ip
$temps_en_cours=time();                    //Je recupere le temps actuel
$tempsrafraiche=5;                             //temps d'effacement des personnes

$sql="SELECT * FROM chat_conn WHERE pseudo='$pseudos'";
$reponse=mysql_query($sql);

if (mysql_num_rows($reponse)==0) {

/*
Si la personne n'existe pas encore alors on l'ajoute.
*/

$sql8="INSERT INTO chat_conn VALUES('', '$temps_en_cours', '$pseudos', '$ip')";
mysql_query($sql8);

}

else {

/*
Sinon on met a jour son temps pour evité qu'il soit effacé
*/
 
$sql9="UPDATE chat_conn SET temps='$temps_en_cours' WHERE pseudo='$pseudos'";
mysql_query($sql9);
}

$sql="SELECT * FROM chat_conn";
$reponse=mysql_query($sql);

/*
je recupere tous mes connectés.
je suprime ceux en trop.
*/

while ( $donnees=mysql_fetch_array($reponse) ) {

/*
verification du temps et supression si le temps imparti est ecoulé
*/

$temps_en_cours2=$temps_en_cours-$tempsrafraiche;

if ( $donnees['temps'] < $temps_en_cours2) {
$tempsefface=$donnees['temps'];
$sql="DELETE FROM chat_conn WHERE temps='$tempsefface'";
mysql_query($sql);

}

}

$sql3="SELECT * FROM chat_conn";
$reponse1=mysql_query($sql3);

/*
je rerecupere tous mes connecté ce coup si il ne reste que les personne encore la.
et je les affiche dans une liste avec un lien vers un profil.
*/

while ( $liste=mysql_fetch_array($reponse1) ) {

$recupid=$liste['pseudo'];
$sql2="SELECT * FROM chat_membre WHERE pseudo='$recupid'";
$reponse2=mysql_query($sql2);

if (mysql_num_rows($reponse2)!=0) {
echo "<center><a href='profilaff.php?pseudoprof=" . $recupid . "'>" . $recupid . "</a></center><br>";

}
else {
echo "<center>" . $recupid . "</center><br>";

}
}
}


?>

 Conclusion

Voila j'espere que c'est clair et lisible etc si vous avez des questions ou autre poster un commentaires :) sinon a+ j'espere que ca aidera des gens.


 Sources de la même categorie

Source avec Zip ORM : DAO, ACTIVERECORD ET DBLIST par Reldan
Source avec une capture CET EXTRAIT PERMET D'AJOUTER DANS UN TABLEAU UNE AGRÉGATION ... par Denis007
EXPORT DE BASE AU FORMAT CSV par remib74
Source avec Zip RECHERCHE DES DOUBLONS DANS UNE TABLE MYSQL EN SÉLECTIONNANT... par aladec2007
[CRON] INSERT ON DUPLICATE KEY UPDATE par pierreSabatier

Commentaires et avis

Commentaire de fser le 25/04/2004 02:27:54

ça n'a pas l'air mal ...
je vais tester quelquechose de similaire.
Bravo !
7.5/10 =&gt; 8 :)

Commentaire de nerim le 27/05/2004 16:49:06

Si j'ai bien compris, tu testes séparément l'existence du pseudo puis celle du pass. Donc si le pass saisi existe, tu considère que c'est Ok même si la passe correspond à un autre pseudo.

Sinon, comme je débute en PHP, je ne sais pas QUAND tes cookies sont écrits (j'ai cru lire qu'on ne pouvait les ecrire qu'au chargement d'une page donc ça ne peut pas être à la fin de ta page de login...)

Ta page de login doit donc contenir un form qui transmet par $POST les infos de log à la page appelée.

Y a-t-il une page intermédiaire qui écrit les cookies puis qui appelle ensuite la page d'exploitation ?

Par ailleurs, puisque tu ajoutes dans ta base chaque nouveau connecté, tu stockes donc sur le serveur la liste des connectés, à quoi servent alors les cookies ?

Merci de m'aider à comprendre

JC

Commentaire de letrucaso le 27/05/2004 17:58:48

ALors pour te repondre

1) oui il y a bien une page intermediaire qui cree les cookies entre le click du lien et l'arriver sur la page.

2) Tu as entierement raison j'ai louper mon copier coller de ma source je vien de verifier! merci pour cette precision. je vais changer ca de suite.

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,328 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales