SOS PHP Connexion

viecel -  
 viecel -
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. Yohan85 Messages postés 288 Statut Membre 25
     
    Bonsoir,

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

    Yohan
    0
    1. viecel
       
      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
  2. Yohan85 Messages postés 288 Statut Membre 25
     
    Oui mais est-ce sur le meme serveur qu'en local ou sur un autre serveur ?
    0
    1. viecel
       
      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
  3. Yohan85 Messages postés 288 Statut Membre 25
     
    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
    1. viecel
       
      Quand je dis en ligne, c'est le transfert par ftp sur le host d'hebergement a eu lieu
      0
  4. Yohan85 Messages postés 288 Statut Membre 25
     
    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
    1. viecel
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Yohan85 Messages postés 288 Statut Membre 25
     
    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
    1. viecel
       
      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
  7. Yohan85 Messages postés 288 Statut Membre 25
     
    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
    1. viecel
       
      Quel est le role de gethostbyadr() ?
      mon identifiabt dans la base n'est pas un id ; plutot un pseudo (username)
      0
  8. Yohan85 Messages postés 288 Statut Membre 25
     
    ou tu peux mettre un pseudo également si tu le souhaite
    0
    1. viecel
       
      OK!
      Merci beaucoup et la prochaine
      viecel
      0