Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Web Development
  3. Linux, Apache, MySQL, PHP
  4. PHP Warning: Undefined variable $conn

PHP Warning: Undefined variable $conn

Scheduled Pinned Locked Moved Linux, Apache, MySQL, PHP
helpphpdata-structuresquestion
3 Posts 2 Posters 21 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Offline
    A Offline
    Aruna KN
    wrote on last edited by
    #1

    Following code is working fine up to PHP 7.4 but with PHP 8.1 it makes an error_log: PHP Warning: Undefined variable $conn Please suggest me a solution for this issue. The relevant code line is:

    if(!$conn) $conn = mysqli_connect(C_HOST,C_USER,C_PASS,C_BASE) or die($w[113]);

    Full code of the function is:

    function all_online_users()
    {
    if(!$conn) $conn = mysqli_connect(C_HOST,C_USER,C_PASS,C_BASE) or die($w[113]);

    $sec = 300;
    //exit;
    if(isset($_SESSION['m']))
    {
    $user = is_numeric($_SESSION['m']) ? $_SESSION['m'] : 0;
    $MyAccess = 0;

    }
    else
    {
    	$user = 0;
    	$MyAccess = -1;
    }
    $ip = ($user == 0) ? ip2int(ip()) : 0;
    

    mysqli_query($conn,"DELETE FROM ".C_MYSQL_ONLINE_USERS." WHERE (time < DATE_SUB(NOW(), INTERVAL ".$sec." SECOND) AND NOW() > ".$sec.") or time > NOW()");
    $result = @mysqli_query($conn,"SELECT * FROM ".C_MYSQL_ONLINE_USERS);
    $cnt=array();$adduser=1;$addguest=1;$users=0;
    while($result && $i = mysqli_fetch_array($result))
    {
    $cnt[$i['usertype']] = (isset($cnt[$i['usertype']])) ? $cnt[$i['usertype']] + 1 : 1;
    If(($MyAccess >= 0) && ($user == $i['user']))
    {
    $adduser=$addguest=0;
    }
    If(($MyAccess < 0) && ($ip == $i['ip']))
    {
    $adduser=$addguest=0;
    }
    }
    if($adduser || $addguest)
    {
    mysqli_query($conn,"INSERT INTO ".C_MYSQL_ONLINE_USERS." VALUES (NOW(),".$user.",'".$MyAccess."','".$ip."')");
    $cnt[$MyAccess] = (isset($cnt[$MyAccess])) ? $cnt[$MyAccess] + 1 : 1;
    }
    $k=0;while(isset($cnt[$k]))
    {
    $users = $cnt[$k] + $users;
    $k++;
    }
    if(isset($cnt['-1'])) define('ONLINE_GUESTS',$cnt['-1']);
    else define('ONLINE_GUESTS','0');
    define('ONLINE_USERS',$users);
    }

    all_online_users();

    L 1 Reply Last reply
    0
    • A Aruna KN

      Following code is working fine up to PHP 7.4 but with PHP 8.1 it makes an error_log: PHP Warning: Undefined variable $conn Please suggest me a solution for this issue. The relevant code line is:

      if(!$conn) $conn = mysqli_connect(C_HOST,C_USER,C_PASS,C_BASE) or die($w[113]);

      Full code of the function is:

      function all_online_users()
      {
      if(!$conn) $conn = mysqli_connect(C_HOST,C_USER,C_PASS,C_BASE) or die($w[113]);

      $sec = 300;
      //exit;
      if(isset($_SESSION['m']))
      {
      $user = is_numeric($_SESSION['m']) ? $_SESSION['m'] : 0;
      $MyAccess = 0;

      }
      else
      {
      	$user = 0;
      	$MyAccess = -1;
      }
      $ip = ($user == 0) ? ip2int(ip()) : 0;
      

      mysqli_query($conn,"DELETE FROM ".C_MYSQL_ONLINE_USERS." WHERE (time < DATE_SUB(NOW(), INTERVAL ".$sec." SECOND) AND NOW() > ".$sec.") or time > NOW()");
      $result = @mysqli_query($conn,"SELECT * FROM ".C_MYSQL_ONLINE_USERS);
      $cnt=array();$adduser=1;$addguest=1;$users=0;
      while($result && $i = mysqli_fetch_array($result))
      {
      $cnt[$i['usertype']] = (isset($cnt[$i['usertype']])) ? $cnt[$i['usertype']] + 1 : 1;
      If(($MyAccess >= 0) && ($user == $i['user']))
      {
      $adduser=$addguest=0;
      }
      If(($MyAccess < 0) && ($ip == $i['ip']))
      {
      $adduser=$addguest=0;
      }
      }
      if($adduser || $addguest)
      {
      mysqli_query($conn,"INSERT INTO ".C_MYSQL_ONLINE_USERS." VALUES (NOW(),".$user.",'".$MyAccess."','".$ip."')");
      $cnt[$MyAccess] = (isset($cnt[$MyAccess])) ? $cnt[$MyAccess] + 1 : 1;
      }
      $k=0;while(isset($cnt[$k]))
      {
      $users = $cnt[$k] + $users;
      $k++;
      }
      if(isset($cnt['-1'])) define('ONLINE_GUESTS',$cnt['-1']);
      else define('ONLINE_GUESTS','0');
      define('ONLINE_USERS',$users);
      }

      all_online_users();

      L Offline
      L Offline
      Lost User
      wrote on last edited by
      #2

      Try using the isset function:

      if(!isset($conn)) ...

      See PHP: isset - Manual[^]

      A 1 Reply Last reply
      0
      • L Lost User

        Try using the isset function:

        if(!isset($conn)) ...

        See PHP: isset - Manual[^]

        A Offline
        A Offline
        Aruna KN
        wrote on last edited by
        #3

        Thank you!

        1 Reply Last reply
        0
        Reply
        • Reply as topic
        Log in to reply
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes


        • Login

        • Don't have an account? Register

        • Login or register to search.
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • World
        • Users
        • Groups