SOS PHP Connexion

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
Configuration: Windows XP
Internet Explorer 6.0

7 réponses

  1. Bonsoir,

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

    Yohan
    1. 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
  2. Oui mais est-ce sur le meme serveur qu'en local ou sur un autre serveur ?
    1. 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)
  3. 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 ?
    1. Quand je dis en ligne, c'est le transfert par ftp sur le host d'hebergement a eu lieu
  4. 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
    1. 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 ?
  5. 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.
    1. 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)
      }
      }

      ?>
  6. 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

    }
    1. Quel est le role de gethostbyadr() ?
      mon identifiabt dans la base n'est pas un id ; plutot un pseudo (username)
  7. ou tu peux mettre un pseudo également si tu le souhaite
    1. OK!
      Merci beaucoup et la prochaine
      viecel