SOS PHP Connexion

Fermé
viecel - 2 janv. 2009 à 23:29
 viecel - 3 janv. 2009 à 00:59
Bonjour,
Je suis Célestin VIEYRA je m'esaye en conception web en PHP sous IIS.
J'ai un problème qui est comment détecter en php l'existance d'un connecté en ligne c'est à dire une session ?
le script que j'utilise marche en local mais pas en ligne ; voici le script text
<?php
IF (isset($_SESSION) && (!empty($_SESSION['MM_Username'])))
{
session_start();
$sid=session_id();
$snom=session_name();
}
?>
en début de page

Bien vouloir m'aider car celà me bloque.

Merci pour votre aide

viecel
Cotonou Bénin

7 réponses

Yohan85 Messages postés 280 Date d'inscription samedi 7 avril 2007 Statut Membre Dernière intervention 16 mai 2011 25
2 janv. 2009 à 23:32
Bonsoir,

Quand vous dites que le script ne fonctionne pas en ligne, c'est sur une machine différente ?

Yohan
0
Merci à toi Yohan pour ta promptitude
Ceci survient quant je mets le site en ligne
la section qui doit s'afficher quand il y a un connecté n'apparait pas quand on se connecte
0
Yohan85 Messages postés 280 Date d'inscription samedi 7 avril 2007 Statut Membre Dernière intervention 16 mai 2011 25
3 janv. 2009 à 00:01
Oui mais est-ce sur le meme serveur qu'en local ou sur un autre serveur ?
0
Je ne comprends pas bien votre question.
Je m'explique encore
Ceci marche en local sur mon poste de conception (serveur local) ;
mais une fois lesite mis en ligne, quand on se connecte la session qui doit montrer au connecté sa sesion n'apparait pas (autre serveur probablement)
0
Yohan85 Messages postés 280 Date d'inscription samedi 7 avril 2007 Statut Membre Dernière intervention 16 mai 2011 25
3 janv. 2009 à 00:13
En faite quand vous dites en ligne c'est que les fichiers restent sur votre serveur local ou vous les envoyez vers un autre serveur par le biai du FTP ?
0
Quand je dis en ligne, c'est le transfert par ftp sur le host d'hebergement a eu lieu
0
Yohan85 Messages postés 280 Date d'inscription samedi 7 avril 2007 Statut Membre Dernière intervention 16 mai 2011 25
3 janv. 2009 à 00:20
dans ce cas il faut vérifier que votre hébergeur autorise les sessions PHP.

faites un phpinfo(); sur l'hébergement pour vérifier
0
OK !
Mais si ton inquétude se trouve vérifiée ; comment pus je me prendre dans ce cas ; c'est à dire si la session n'est pas autorisée chez pon hébergeur et que sur le poste de navigation les coukis aussi ne le sont pas ?
0

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

Posez votre question
Yohan85 Messages postés 280 Date d'inscription samedi 7 avril 2007 Statut Membre Dernière intervention 16 mai 2011 25
3 janv. 2009 à 00:30
Vous pouvez faire avec une table SQL qui peut etre lu et écrite a chaque affichage du site et utiliser un id pour chaque PC en utilisant l'adresse IP et d'autre infos utilisateur et y mettre un md5 derrière par exemple.
0
Merci !
c'est juste l'idée que j'ai eu et j'étais entrain de concevoir un code pour ce faire.
voici le code si tu peux lire et comprendre et me le corriger celà me fairait plaisir


<?php require_once('../Connections/cbconnet.php'); ?>
<?php
$colname_ses_encours = "-1";
if (isset($_SESSION['MM_Username'])) {
$colname_ses_encours = (get_magic_quotes_gpc()) ? $_SESSION['MM_Username'] : addslashes($_SESSION['MM_Username']);
}
mysql_select_db($database_cbconnet, $cbconnet);
$query_ses_encours = sprintf("SELECT * FROM lasession WHERE sesion = '%s' ORDER BY id ASC", $colname_ses_encours);
$ses_encours = mysql_query($query_ses_encours, $cbconnet) or die(mysql_error());
$row_ses_encours = mysql_fetch_assoc($ses_encours);
$totalRows_ses_encours = mysql_num_rows($ses_encours);

mysql_free_result($ses_encours);

IF ((!isset($_SESSION) And (Empty($_SESSION['MM_Username']))) // Si personne n'est connecté à cette IP
{
$_ENV['session_exist']=False;
}
Else // Si il y a un connecte à cette IP
{ // alors vérifier si la session MM_Username est dans la base des connextés courants
// et le témoin mis à True
$_ENV['session_exist']=True;
IF ($row_ses_encours>0) // Si la session existe dans la base alors elle est chargé
{
$sesion=$ses_encours['sesion'];
$nom_session=$ses_encours['nom'];
$prenom_session=$ses_encours['prenoms'];
$membre_session=$ses_encours['membre'];
}
Else
{ // Si la session n'existe pas dans la base alors elle est ajoutée à la base des connextés

( Cette partie n'est pas encore faite si tu peux me l'achever à ta manière)
}
}

?>
0
Yohan85 Messages postés 280 Date d'inscription samedi 7 avril 2007 Statut Membre Dernière intervention 16 mai 2011 25
3 janv. 2009 à 00:44
Else
{ // Si la session n'existe pas dans la base alors elle est ajoutée à la base des connextés
if(!session_start())
{
$id_visiteur = md5($_SERVER["HTTP_USER_AGENT"].$_SERVER["REMOTE_ADDR"].gethostbyadr());

// Vérification que le user n'est pas dans la SQL

// Si oui Utilisateur est alors connecté

// Si non on l'ajoute dans la SQL

}
0
Quel est le role de gethostbyadr() ?
mon identifiabt dans la base n'est pas un id ; plutot un pseudo (username)
0
Yohan85 Messages postés 280 Date d'inscription samedi 7 avril 2007 Statut Membre Dernière intervention 16 mai 2011 25
3 janv. 2009 à 00:54
ou tu peux mettre un pseudo également si tu le souhaite
0
OK!
Merci beaucoup et la prochaine
viecel
0