2010-11-07 6 views
1

Ce script fonctionne en ligne, mais pas en ligne via WAMP ...script PHP fonctionne en ligne, mais pas en ligne

function current_user() 
    { 
     static $current_user; 
     if(!$current_user) 
     { 
      if($_SESSION['userID']) 
      { 
       $userID = intval($_SESSION['userID']); 
       $query = "SELECT * 
          FROM `users` 
          WHERE `id` = $userID"; 
       $data = mysql_query($query); 
       if(mysql_num_rows($data)) 
       { 
        $current_user = mysql_fetch_assoc($data); 
        return $current_user; 
       } 
      } 
     } 
     return $current_user; 
    } 

Lorsque cette fonction est appelée, je reçois le message d'erreur suivant ...

Notice: Undefined index: userID in C:\wamp\www\alpha\_includes\session.php on line 38 

La ligne 38 est $userID = intval($_SESSION['userID']);

L'erreur se produit uniquement lorsque la variable SESSION userID n'est pas définie. Cela et quand la fonction est appelée via une page de mon ordinateur de test hors ligne (en cours d'exécution WAMP).


En note, ce n'est pas mon script. Le mérite revient à Jim Hoskins de Think Vitamin Membership.

+0

Correction du titre .... script PHP fonctionne en ligne, mais pas hors ligne. – SgtOJ

+0

Renomme '$ userID' en' $ somethingwhichisnotasessionkey', n'importe quelle différence? – Harmen

Répondre

3

Vous avez activé les notifications sur un serveur, mais pas sur l'autre. Cet avis vous indique simplement que vous essayez de lire un élément de tableau qui n'existe pas.

Au lieu de cela, essayez cette

if(isset($_SESSION['userID'])) 
+0

Merci. Je me suis rendu compte que juste quelques secondes avant que vous ayez posté votre réponse quand toujours affiché sa réponse. J'ai eu une erreur de vérification. Merci encore. – SgtOJ

3

C'est un avis, pas une erreur. Pour corriger:

if (isset($_SESSION['userID']) && $_SESSION['userID']) 
+0

Merci. Je demandais pourquoi il montre hors ligne mais pas en ligne. Vous répondez indirectement à ma question. Je me souviens que mes php.ini sont différents entre en ligne et hors ligne. – SgtOJ

+0

J'aimerais vous donner le crédit pour aider. Cependant, Paul a la bonne réponse. Merci pour votre réponse rapide. – SgtOJ

0

changement if($_SESSION['userID'])-if(isset($_SESSION['userID'])) d'abord vérifier si la variable de session « userID » est réglé avant de l'utiliser.

Essayez ce code

function current_user() 
    { 
     static $current_user; 
     if(!$current_user) 
     { 
      if($_SESSION['userID']) 
      { 
       $userID = intval($_SESSION['userID']); 
       $query = "SELECT * 
          FROM `users` 
          WHERE `id` = $userID"; 
       $data = mysql_query($query); 
       if(mysql_num_rows($data)) 
       { 
        $current_user = mysql_fetch_assoc($data); 
        return $current_user; 
       } 
      } 
     } 
     return $current_user; 
    } 
Questions connexes