ERROR - Using $this when not in object context

Discussion in 'PHP' started by budhanes, Mar 28, 2008.

  1. #1
    I am getting a PHP error. I beleive the script I am using was designed for PHP 4??? But, I need to get past this error, as I am on PHP 5. Any help on a simple rewrite would be greatly appreciated!!! Here is the script and the error:

    ERROR - Using $this when not in object context. (Very last line of script)..

    SCRIPT:
    define('WORKING',true);
    define('LOGIN',true);
    $pps_root_path = './';
    $site_type = array(0=>1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1); //all

    require($pps_root_path . 'extension.inc');
    require($pps_root_path . 'common.inc.' . $phpEx);


    switch ($_GET['act']) {
    case 'login':
    if (!empty($_POST['username'])) {
    $sql = "SELECT UserStatus,ValidIP,UPreferedLang,UPreferedTpl FROM " . USER_TABLE . " " .
    "WHERE UUsername='" . $_POST['username'] . "' AND UPassword='" . $_POST['password'] . "'";
    $result = dbQueryCheck($sql,'standart');
    $row = $db->sql_fetchrow($result);

    if (!is_a($msg, 'MessageClass')) {
    $msg = new MessageClass();
    }

    //Check ValidIP
    if (!validateIP(get_ip(),$row['ValidIP']) AND trim($row['ValidIP']) != "") {
    $msg->msg_error($lang['MissingRights'],"","",__FILE__,__LINE__,$lang['MissingRightsTitle'],'standart');
    }

    //Logging
    if ($ppsSettings['log_cbx_logins'] == 1) {
    doLog(get_ip(),0,"User: " . $_POST['username'] . ", Password: " . $_POST['password'],1);
    }

    switch ($row['UserStatus']) {
    case 'isAdmin':
    $tmp_redirect = "admin";
    break;
    case 'isModerator':
    $tmp_redirect = "admin";
    break;
    case 'isAdv':
    $tmp_redirect = "adv";
    break;
    case 'isAff':
    $tmp_redirect = "aff";
    break;
    case 'isWaitingAdv':
    $msg->msg_error($lang['LoginWaiting'],"","",__FILE__,__LINE__,$lang['LoginWaitingTitle'],'standart');
    break;
    case 'isWaitingAff':
    $msg->msg_error($lang['LoginWaiting'],"","",__FILE__,__LINE__,$lang['LoginWaitingTitle'],'standart');
    break;
    case 'isInActive':
    $msg->msg_error($lang['LoginInactive'],"","",__FILE__,__LINE__,$lang['LoginInactiveTitle'],'standart');
    break;
    default:
    $msg->msg_error($lang['LoginError'],"","",__FILE__,__LINE__,$lang['LoginErrorTitle'],'standart');
    }

    if (empty($_GET['redirect'])) {
    $_GET['redirect'] = $tmp_redirect . "/";
    }

    //write cookie
    $userinfo = array();
    $userinfo['username'] = $_POST['username'];
    $userinfo['password'] = $_POST['password'];

    $designinfo = array();
    $designinfo['Language'] = $row['UPreferedLang'];
    $designinfo['Template'] = $row['UPreferedTpl'];

    if (writeCookie($ppsSettings['gen_cookie_name'],$userinfo,$ppsSettings['gen_cookieexpire'],1)) {
    if (!writeCookie($ppsSettings['gen_cookie_name'] . "_design",$designinfo,$ppsSettings['gen_cookieexpire'],1)) {
    //
    }
    $msg->msg_success($lang['LoginSuccess'],"","",__FILE__,__LINE__,$lang['LoginSuccessTitle'],'standart', $_GET['redirect'] . "?" . $urlArgs);
    }
    else {
    $msg->msg_error($lang['LoginError'],"","",__FILE__,__LINE__,$lang['LoginErrorTitle'],'standart');
    }
    }
    else {
    header("Location: " . $PHP_SELF . "?" . $urlArgs);
    exit;
    }
    break;
    case 'resend':
    //Resend form
    $smarty->template_dir = $ppsSettings['currentTemplatePath'];
    $smarty->assign('PPSName',$ppsSettings['gen_PPSName']);
    $smarty->assign('username',$_GET['username']);
    $smarty->assign('stylesheet',file_get_contents($ppsSettings['currentTemplatePath'] . 'style.css'));
    $smarty->assign('action',$PHP_SELF . "?act=doresend" . $urlArgs);

    //Output data
    displayOutput($smarty->fetch("sendpassword.tpl"),$ppsSettings['gen_GZIP_level']);
    break;
    case 'doresend':
    $sql = "SELECT UEmail AS email, UserID, UUsername AS username, UPassword AS password, UFirstName AS firstname, ULastName AS lastname " .
    " FROM " . USER_TABLE . " WHERE UUsername='" . $_POST['username'] . "'";
    $result = dbQueryCheck($sql,'standart');
    $row = $db->sql_fetchrow($result);

    $row['IP'] = get_ip();
    $row['CurrentUserID'] = 0;

    if (!is_a($msg, 'MessageClass')) {
    $msg = new MessageClass();
    }

    if (!empty($row['email'])) {
    //send email
    if (sendEmail('resend_password',$row,$ppsSettings['currentLanguage'])) {
    $msg->msg_success($lang['SendPasswordSuccess'],"","",__FILE__,__LINE__,$lang['SendPasswordSuccessTitle'],'standart', $PHP_SELF . "?" . $urlArgs);
    }
    else {
    $msg->msg_error($lang['SendPasswordError'],"","",__FILE__,__LINE__,$lang['SendPasswordErrorTitle'],'standart');
    }
    }
    else {
    $msg->msg_error($lang['UnknownUsername'],"","",__FILE__,__LINE__,$lang['UnknownUsernameTitle'],'standart');
    }
    break;
    default:
    //Login form
    $smarty->template_dir = $ppsSettings['currentTemplatePath'];
    $smarty->assign('PPSName',$ppsSettings['gen_PPSName']);
    $smarty->assign('username',$_GET['username']);
    $smarty->assign('stylesheet',file_get_contents($ppsSettings['currentTemplatePath'] . 'style.css'));
    $smarty->assign('U_SEND_PASSWORD',$PHP_SELF . "?act=resend" . $urlArgs);
    $smarty->assign('action',$PHP_SELF . "?act=login" . $urlArgs);

    //Output data
    displayOutput($smarty->fetch("login.tpl"),$this->ppsSettings['gen_GZIP_level']);
    }


    ?>
     
    budhanes, Mar 28, 2008 IP
  2. budhanes

    budhanes Peon

    Messages:
    245
    Likes Received:
    6
    Best Answers:
    0
    Trophy Points:
    0
    #2
    I got it...
    Needed to change last line from this:

    displayOutput($smarty->fetch("login.tpl"),$this->ppsSettings['gen_GZIP_level']);

    to this:

    displayOutput($smarty->fetch("login.tpl"),$ppsSettings['gen_GZIP_level']);
     
    budhanes, Mar 28, 2008 IP
  3. Xtrm2Matt

    Xtrm2Matt Active Member

    Messages:
    129
    Likes Received:
    4
    Best Answers:
    0
    Trophy Points:
    58
    #3
    This message comes up when you try to use $this when you aren't using a Class.

    Glad you sorted it :)
     
    Xtrm2Matt, Mar 29, 2008 IP