Vous n'êtes pas identifié.

Annonce

#1 Afficher suivant la connexion ou pas du 11-04-2011 03:51:04

tydoo
c00lnaute passionné
Lieu: Montpellier (34)
Date d'inscription: 08-01-2011
Messages: 76
Site web

Afficher suivant la connexion ou pas

Bonjour a tous !! Ca fait très lgt :p

J’espère que vous aller tous bien =)

Voila je reviens vers vous, car je penche sur un asser gros problème que je ne résous pas :(

Voila je voudrais afficher une image (un rond vert ) sur la photos des membre connecter.

Pour le moment ca marche, mais le système ne me conviens pas. En effet, quand un membre se connecte, il met a jour le champ 'online' qui se trouve en BDD pour l'on enregistrement.

Sur l'image, je test si dans le champ online du membre, il est a 1, j'affiche ce rond. Si il est a 0, je n'affiche pas.

Et lors de la déconnexion, le membre remet a jour la BDD, et met un 0 dans le champ online pour son propre enregistrement.

Mais ce que je cherche a faire, c'est tester la connexion avec les $_SESSION ou les $_COOKIES.

J'aimerais afficher ce rond si la personne est réélement sur le site. C'est a dire si je me connecter, et que je ferme simplement le navigateur, je passe offline sur le site. Et si je me remet sur le site (sans me reconnecter, car je le suis déjà) il va afficher le rond ver et me repasser en online

Voila j’espère avoir été asser clair dans mes explication :)

MERCI A VOUS :)

Dernière modification par tydoo (11-04-2011 03:56:05)


Hors ligne

 

11-04-2011 03:51:04

Mister $$$
Créer un site


#2 Re Afficher suivant la connexion ou pas du 11-04-2011 11:14:21

c00lman
Administrateur
Date d'inscription: 16-08-2007
Messages: 1631
Site web

Re: Afficher suivant la connexion ou pas

Salut tydoo,

Peut être en utilisant l'évènement "unload" en Javascript associé à une fonction qui te permettrait de détruire la session à la fermeture du navigateur...par contre ça tue la session donc le membre est obligé de se reconnecter!

Hors ligne

 

#3 Re Afficher suivant la connexion ou pas du 11-04-2011 13:08:12

tydoo
c00lnaute passionné
Lieu: Montpellier (34)
Date d'inscription: 08-01-2011
Messages: 76
Site web

Re: Afficher suivant la connexion ou pas

et si ca tuer simplmeent un cookies ?


Hors ligne

 

#4 Re Afficher suivant la connexion ou pas du 11-04-2011 14:50:01

c00lman
Administrateur
Date d'inscription: 16-08-2007
Messages: 1631
Site web

Re: Afficher suivant la connexion ou pas

Hein ...quoi tu dis...j'ai rien comprit?

Hors ligne

 

#5 Re Afficher suivant la connexion ou pas du 11-04-2011 16:05:04

tydoo
c00lnaute passionné
Lieu: Montpellier (34)
Date d'inscription: 08-01-2011
Messages: 76
Site web

Re: Afficher suivant la connexion ou pas

Ta solution me parais super. Mais au lieux de détruire une session, ca détruisais un cookies nomé "online" et des que tu reviens ca le remet


Hors ligne

 

#6 Re Afficher suivant la connexion ou pas du 11-04-2011 17:14:11

mic54800
Super Modérateur ^^
Lieu: Brainville (54)
Date d'inscription: 25-08-2007
Messages: 819
Site web

Re: Afficher suivant la connexion ou pas

Si je ne me trompe pas, ça devrait être impossible :
on ne peut pas détruire un cookie si l'utilisateur n'est plus sur le site...
et ton serveur ne pourra pas chercher si un cookie existe sur un PC d'une manière autonome...

C'est un problème plutôt sympa, qui ne devrait pas être si facile que ça à résoudre...
Je pense qu'il faudrait se pencher sur les sessions et mener une étude pour savoir ce qu'il est possible de faire avec elles.

Au pire des cas, tu peux faire un test d'utilisation (à chaque fois que le membre change de page, il actualise son timestamp dans la BDD et toi, tu vas chercher si le timestamp a moins de 10min (par exemple) et si c'est le cas, tu considère que le membre est en ligne).
Cette solution est simple à mettre en place mais ne reflète pas vraiment la réalité...

Hors ligne

 

#7 Re Afficher suivant la connexion ou pas du 11-04-2011 17:18:27

tydoo
c00lnaute passionné
Lieu: Montpellier (34)
Date d'inscription: 08-01-2011
Messages: 76
Site web

Re: Afficher suivant la connexion ou pas

SALut mic =)

Ta solution me parais la plus probable enfaite =) Je vais me pencher sur ce codage =)


Hors ligne

 

#8 Re Afficher suivant la connexion ou pas du 11-04-2011 20:37:07

c00lman
Administrateur
Date d'inscription: 16-08-2007
Messages: 1631
Site web

Re: Afficher suivant la connexion ou pas

mic54800 a écrit:

on ne peut pas détruire un cookie si l'utilisateur n'est plus sur le site...
et ton serveur ne pourra pas chercher si un cookie existe sur un PC d'une manière autonome...

Sauf si il détecte la fermeture du navigateur et qu'il "balance" en arrière plan un script permettant de détruire celui-ci.

Code:

<html> 
<head> 

<script type="text/javascript">
<!--
function bonjour()
{
alert("Salut");
}
function aurevoir()
{
alert("Byby");
}
-->
</script> 

</head> 
<body onload="bonjour()" onUnload="aurevoir()"> 
<p>mon texte</p>
</body> 
</html>

On peut très bien imaginer que le site fonctionne avec 1 cookie et une session ou 2 sessions.
Une session de connexion normal pour loguer l'internaute au site.
Une session de présence sur le site.
L'internaute quitte le site ou ferme le navigateur » la session de présence par l'intermédiaire de la fonction aurevoir() change un paramètre en bd (0= absent et 1=présent) tout en gardant la session de connexion active.
L'internaute revient sur le site, la connexion est toujours active » la fonction bonjour() rentre en action et change un paramètre en bd.

Bon, ceci dit, ce n'est que de la théorie 014 ...

Hors ligne

 

#9 Re Afficher suivant la connexion ou pas du 11-04-2011 20:46:29

tydoo
c00lnaute passionné
Lieu: Montpellier (34)
Date d'inscription: 08-01-2011
Messages: 76
Site web

Re: Afficher suivant la connexion ou pas

Donc si on met en apliquation en DBB :

Code:

<html> 
<head> 

<script type="text/javascript">

$user_id = $_SESSION['id'];

<!--
function bonjour()
{
mysql_query(" UPDATE membre SET 
online='1'
WHERE 
id_membre = '$user_id'
");
}
function aurevoir()
{
mysql_query(" UPDATE membre SET 
online='0'
WHERE 
id_membre = '$user_id'
");
}
-->
</script> 

</head> 
<body onload="bonjour()" onUnload="aurevoir()"> 
<p>mon texte</p>
</body> 
</html>

ca c'est possible ?

Dernière modification par tydoo (11-04-2011 20:47:12)


Hors ligne

 

#10 Re Afficher suivant la connexion ou pas du 11-04-2011 21:08:57

mic54800
Super Modérateur ^^
Lieu: Brainville (54)
Date d'inscription: 25-08-2007
Messages: 819
Site web

Re: Afficher suivant la connexion ou pas

@tydoo :
Là, tu me fais peur !!!!
PHP != JS
Tu nous colle du PHP dans du JS, et encore pire, tu ne déclare pas qu'il s'agit de PHP .... Beuuurk !!!

@c00lman :
En effet, ça se vaut, mais pour moi qui garde constamment mes dixaines d'onglets d'ouvert dans mon navigateur, ça veut dire que quand je met celui-ci en veille (la nuit) le site m'affichera en ligne si je ne me trompe pas ?
Dans ce cas, il faut coupler ton script à mon idée de timing (ça fait pas un peu le mec qui ne veut jamais avoir tord ? :p)
Au lieu d'utiliser PHP + SQL, je pensais à un fichier unique pour chaque membre qui contiendrait 1 ou 0 (ça serait plus simple à coder ça), on modifie ce script avec les fonctions bonjour() et aurevoir()...

Les idées fusent, il y aura peut-être un résultat intéressant à la fin ? ^^

Hors ligne

 

#11 Re Afficher suivant la connexion ou pas du 11-04-2011 21:14:55

tydoo
c00lnaute passionné
Lieu: Montpellier (34)
Date d'inscription: 08-01-2011
Messages: 76
Site web

Re: Afficher suivant la connexion ou pas

oui je sais pour le PHP et JS ^^ J’étais juste pour le principe xD ^^

Effectivement de tres bonne idée couplet pourrais aboutir au script PARFAIT ! Mais ca veut dire que il va faloir crée un fichier a chaque inscription .. Lourd derrière ..


Hors ligne

 

#12 Re Afficher suivant la connexion ou pas du 11-04-2011 21:30:08

c00lman
Administrateur
Date d'inscription: 16-08-2007
Messages: 1631
Site web

Re: Afficher suivant la connexion ou pas

mic54800 a écrit:

@tydoo :
Là, tu me fais peur !!!!

content (130) moi aussi il me fait peur 015

mic54800 a écrit:

En effet, ça se vaut, mais pour moi qui garde constamment mes dixaines d'onglets d'ouvert dans mon navigateur, ça veut dire que quand je met celui-ci en veille (la nuit) le site m'affichera en ligne si je ne me trompe pas ?

Exacte.

mic54800 a écrit:

Dans ce cas, il faut coupler ton script à mon idée de timing

Je pense que ça devrait être une bonne idée également. Du coup, il faudrait également signaler au membre en ligne inactif depuis trop longtemps qu'il est considéré comme "non présent" sur le site, ce qui engendre une action de sa part pour redevenir en "actif", donc présent.

mic54800 a écrit:

(ça fait pas un peu le mec qui ne veut jamais avoir tord ? :p)

Grave content (130) arfff

Tu crois que le coup du fichier unique pour chaque membre serait mieux que PHP+SQL...? Perso. je n'en sais trop rien .. faut voir!

Maintenant qu'il y a les idées, faut voir si notre chers tydoo va si coller icon_mrgreen ou pas razz !

Hors ligne

 

#13 Re Afficher suivant la connexion ou pas du 11-04-2011 21:43:42

tydoo
c00lnaute passionné
Lieu: Montpellier (34)
Date d'inscription: 08-01-2011
Messages: 76
Site web

Re: Afficher suivant la connexion ou pas

Si si je vais m'y coller !!!!!!!! =) =)


Hors ligne

 

#14 Re Afficher suivant la connexion ou pas du 11-04-2011 21:48:07

mic54800
Super Modérateur ^^
Lieu: Brainville (54)
Date d'inscription: 25-08-2007
Messages: 819
Site web

Re: Afficher suivant la connexion ou pas

Je parlais du fichier parce qu'il est plus simple de modifier un fichier en JS qu'une BDD non ?
J'ai comme un doute là ^^

Hors ligne

 

#15 Re Afficher suivant la connexion ou pas du 11-04-2011 21:53:19

c00lman
Administrateur
Date d'inscription: 16-08-2007
Messages: 1631
Site web

Re: Afficher suivant la connexion ou pas

tydoo a écrit:

Effectivement de tres bonne idée couplet pourrais aboutir au script PARFAIT ! Mais ca veut dire que il va faloir crée un fichier a chaque inscription .. Lourd derrière ..

Lourd en quoi ?
Lors de l'inscription du membre :

Code:

<?php
$fp = fopen("membre-6.txt", 'w');
//le fichier existe
if(file_exists("$fp")); 
{ 
//traitement du fichier
}
//Si le fichier n'existe pas encore il le crée automatiquement
?>

Le code au dessus, c'est à vue de nez ...un gros "pifomètre".

fopen() : lire et écrire dans un fichier

tydoo a écrit:

Si si je vais m'y coller !!!!!!!! =) =)

Cool big_smile

mic54800 a écrit:

Je parlais du fichier parce qu'il est plus simple de modifier un fichier en JS qu'une BDD non ?

Heuuuuuu, j'en sais rien du tout ... je suis toujours une grosse b*rne en Js 014

Hors ligne

 

#16 Re Afficher suivant la connexion ou pas du 11-04-2011 22:07:56

tydoo
c00lnaute passionné
Lieu: Montpellier (34)
Date d'inscription: 08-01-2011
Messages: 76
Site web

Re: Afficher suivant la connexion ou pas

Lourd du coté que si j'ai 1 millions de membre j'aurais 1 million de fichier ..


Hors ligne

 

#17 Re Afficher suivant la connexion ou pas du 11-04-2011 22:13:30

tydoo
c00lnaute passionné
Lieu: Montpellier (34)
Date d'inscription: 08-01-2011
Messages: 76
Site web

Re: Afficher suivant la connexion ou pas

le code de singup est deja bien lourd ..

Code:

<?php
require_once('../script/config.php');

if(isset($_POST["Valider"])) {

mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe"); 
mysql_select_db("$nom_de_la_base") 
or die('Impossible de s&eacute;lectionner une base de donn&eacute;e. Assurez vous d\'avoir correctement remplit les donn&eacute;es de connections.'); 

//DEFINITION DES VARIABLES
$login = mysql_real_escape_string(htmlspecialchars(stripcslashes(trim($_POST["login"]))));
$pass = mysql_real_escape_string(htmlspecialchars(stripcslashes(trim($_POST["pass"])))); 
$pass2 = mysql_real_escape_string(htmlspecialchars(stripcslashes(trim($_POST["pass2"]))));
$email = mysql_real_escape_string(htmlspecialchars(stripcslashes(trim($_POST["email"]))));
$sex = mysql_real_escape_string(htmlspecialchars(stripcslashes(trim($_POST["sex"])))); 
$age = mysql_real_escape_string(htmlspecialchars(stripcslashes(trim($_POST["age"])))); 
$ville = mysql_real_escape_string(htmlspecialchars(stripcslashes(trim($_POST["ville"])))); 
$classe = mysql_real_escape_string(htmlspecialchars(stripcslashes(trim($_POST["classe"]))));
$ip_singup = $_SERVER["REMOTE_ADDR"];
$date_singup = time();

if(empty($login)) {
header ('location: ../singup/?singup=v_pseudo');
}
elseif (strlen($login) < 4) {
header ('location: ../singup/?singup=4_pseudo');
}
elseif (strlen($login) > 15) {
header ('location: ../singup/?singup=15_pseudo');
}
elseif (empty($pass)) {
header ('location: ../singup/?singup=v_pass');
}
elseif (strlen($pass) < 4) {
header ('location: ../singup/?singup=4_pass');
}
elseif (empty($pass2)) {
header ('location: ../singup/?singup=v_pass2');
}

elseif ($pass != $pass2) {
header ('location: ../singup/?singup=pass_pass2');
}
elseif(empty($email)) {
header ('location: ../singup/?singup=v_email');
}
elseif($sex == 'Choisis :') {
header ('location: ../singup/?singup=v_sex');
}
elseif($age == 'Choisis :') {
header ('location: ../singup/?singup=v_age');
}
elseif (empty($ville)) {
header ('location: ../singup/?singup=v_ville');
}
elseif($classe == 'NULL') {
header ('location: ../singup/?singup=v_classe');
}
else {
//TEST LOGIN
$result = mysql_query("SELECT login FROM membre WHERE login='$login'");
if(mysql_num_rows($result)>=1) {
header ('location: ../singup/?singup=p_pseudo');
}

else {

$test_email_exite = mysql_query("SELECT email FROM membre WHERE email ='$email'" );
if(mysql_num_rows($test_email_exite)>=1) {
header ('location: ../singup/?singup=p_email');
}

else {
//INSIDE BDD MEMBRE
$in_bdd_membre= mysql_query(" INSERT INTO membre VALUES ( 
'', 
'$login',
'$login',
'$pass',
'membre',
'membre',
'1',
'0',
'',
'0',
'$email',
'$ville',
'$age',
'$sex',
'$classe',
'1',
'',
'',
'0',
'0',
'',
'',
'',
'',
'',
'',
'0',
'1',
'10',
'$date_singup',
'$ip_singup',
'$date_singup',
'$ip_singup'
) "); 

if (!$in_bdd_membre) { 
die('Requête invalide (bdd membre) : ' . mysql_error()); 
}
else {
$recup_id_user = mysql_query("SELECT * FROM membre WHERE login ='$login'" );
while($b1 = mysql_fetch_array($recup_id_user)) { 
$user_id = $b1['id'];
}

//----------------------------
//INSIDE BDD FEED1
//AVATAR
$in_bdd_feed_avatar = mysql_query(" INSERT INTO feed VALUES ( 
'',
'$user_id',
'$user_id',
'$date_singup',
'avatar',
'',
'0',
'0',
'0'
)"); 


//sing up
$in_bdd_feed_singup = mysql_query(" INSERT INTO feed VALUES ( 
'',
'$user_id',
'$user_id',
'$date_singup',
'compte',
'singup',
'1',
'0',
'0'
)"); 

//photo
$in_bdd_feed_photo = mysql_query(" INSERT INTO feed VALUES ( 
'',
'$user_id',
'$user_id',
'$date_singup',
'photo',
'',
'0',
'0',
'0'
)"); 
}
if (!$in_bdd_feed_photo && !$in_bdd_feed_singup && !$in_bdd_feed_photo) { 
die('Requête invalide (bdd feed avatar): ' . mysql_error()); 
}
else {
$fichier = fopen("../script/tipsy.js","a+");
$ecriture_fichier = fwrite($fichier,"\$(function(){\$('#home_point".$user_id."').tipsy({gravity:'nw'});});"."\r");
fclose($fichier); 
}

if (!$ecriture_fichier) { 
die('Requête invalide (ECRITURE FICHIER) : ' . mysql_error()); 
}
else {
//LOGIN ET CLOSE
session_start();
$_SESSION['login'] = $login;
$_SESSION['id'] = $user_id;
mysql_close(); 

header ('location: step/1');
}
}}}}
else {
header('location: ../403');
}
?>

Hors ligne

 

#18 Re Afficher suivant la connexion ou pas du 11-04-2011 22:16:24

c00lman
Administrateur
Date d'inscription: 16-08-2007
Messages: 1631
Site web

Re: Afficher suivant la connexion ou pas

Penses tu que ce sois plus lourd que toutes les images que tes futurs membres vont uploader sur chacun de leurs comptes respectifs ..?

En faite c'est toi qui voit, nous on t'apporte d'éventuelles solutions ensuite c'est toi qui gère la chose comme tu l'entends wink .

Hors ligne

 

#19 Re Afficher suivant la connexion ou pas du 11-04-2011 22:29:19

tydoo
c00lnaute passionné
Lieu: Montpellier (34)
Date d'inscription: 08-01-2011
Messages: 76
Site web

Re: Afficher suivant la connexion ou pas

Moi j'aime vraiment votre solution, mais c'étais jute pour savoir ^^


Hors ligne

 

#20 Re Afficher suivant la connexion ou pas du 12-04-2011 07:06:00

mic54800
Super Modérateur ^^
Lieu: Brainville (54)
Date d'inscription: 25-08-2007
Messages: 819
Site web

Re: Afficher suivant la connexion ou pas

1024 membres = 1024 fichiers de 1ko = 1mo de fichier en tout ....
Avant que ton site n'atteigne déjà 1024 membres, de l'eau aura coulé sous les ponts ^^
Ceci-dit, je ferais des testes quand j'en aurais le temps (en ce moment, j'ai trop de boulot pour ça...)

Hors ligne

 

#21 Re Afficher suivant la connexion ou pas du 12-04-2011 10:19:14

c00lman
Administrateur
Date d'inscription: 16-08-2007
Messages: 1631
Site web

Re: Afficher suivant la connexion ou pas

@tydoo,
Pourquoi tu renvoies les erreurs du formulaire par un "header location" au lieu d'utiliser une simple variable?

Code:

if(empty($login)) {
$erreur_login = 'Login manquant!';
}

Il y a un truc super désagréable dans ton formulaire d'inscription ... c'est la perte des informations saisies lors d'une erreur, il faut tout se retaper à chaque fois!

Hors ligne

 

#22 Re Afficher suivant la connexion ou pas du 12-04-2011 14:55:32

tydoo
c00lnaute passionné
Lieu: Montpellier (34)
Date d'inscription: 08-01-2011
Messages: 76
Site web

Re: Afficher suivant la connexion ou pas

Ba enfaite le script d'inscription se trouve sur une page anexe a la page singup. Donc pour revenir a la page de singup, je doit revenir sur la page par un header


Hors ligne

 

#23 Re Afficher suivant la connexion ou pas du 12-04-2011 15:22:30

tydoo
c00lnaute passionné
Lieu: Montpellier (34)
Date d'inscription: 08-01-2011
Messages: 76
Site web

Re: Afficher suivant la connexion ou pas

Enfaite j'ai des test live pour voir si les info sont bonne. Donc ca aide vraiment le membre a cliquer sur valider et de verifier si tout marche bien

http://tydoo.free.fr/singup/


Hors ligne

 

#24 Re Afficher suivant la connexion ou pas du 12-04-2011 16:11:34

c00lman
Administrateur
Date d'inscription: 16-08-2007
Messages: 1631
Site web

Re: Afficher suivant la connexion ou pas

J'avais remarqué tes contrôles lors de la saisie et c'est plutôt pas mal icon_mrgreen mais moi je te parle du faite que si il y a une erreur lors de l'inscription, le membre est obligé de tout recommencer puisque ton formulaire ne garde pas en mémoire la saisie.

Sinon pour ton site, j'ai un meilleurs titre .. Faceschool siffle ... il y a comme qui dirait une légère ressemblance avec un site très connut...

Hors ligne

 

#25 Re Afficher suivant la connexion ou pas du 12-04-2011 17:27:01

tydoo
c00lnaute passionné
Lieu: Montpellier (34)
Date d'inscription: 08-01-2011
Messages: 76
Site web

Re: Afficher suivant la connexion ou pas

a non ^^ Il n'y a que la page d'inscription qui ressemble a facebook ! Sinon le reste, c'est totale perso !! ^^


Hors ligne

 

Propulsé par PunBB
© Copyright 2007
Forum créer un site

Partenaires de « créer un site internet »