I have this error that comes up in the browser when I try to connect to a twitter app:
Fatal error: Can not use method return value in write context in /home/abc/public_html/publisher2/application/controllers/twitterapp.php on line 41
on line 41 is the following:
$oauth_token = empty($this->session->userdata('oauth_request_token')) ? $_SESSION['oauth_request_token'] : $this->session->userdata('oauth_request_token');
What do you consider the error to be?
The content of the complete file is this:
<?php session_start();
class TwitterApp extends Controller {
private $_consumer_key = CONSUMER_KEY;
private $_consumer_secret = CONSUMER_SECRET;
function TwitterApp()
{
parent::Controller();
$this->load->library('twitter');
}
public function index()
{
$tokens['access_token'] = NULL;
$tokens['access_token_secret'] = NULL;
// GET THE ACCESS TOKENS
$to = $this->twitter->TwitterOAuth($this->_consumer_key, $this->_consumer_secret, $oauth_token = false, $oauth_token_secret = false);
//Request tokens from twitter
$OAUTH_CALLBACK = site_url('twitterapp/callback/ch/');
$tok = $this->twitter->getRequestToken($OAUTH_CALLBACK);
// Set session
$_SESSION['oauth_request_token'] = $token = $tok['oauth_token'];
$_SESSION['oauth_request_token_secret'] = $tok['oauth_token_secret'];
/* Build the authorization URL*/
$request_link = $this->twitter->getAuthorizeURL($tok['oauth_token']);
header("Location: $request_link");
}
public function callback()
{
$userid = $this->session->userdata('user_id');
$oauth_token = empty($this->session->userdata('oauth_request_token')) ? $_SESSION['oauth_request_token'] : $this->session->userdata('oauth_request_token');
$oauth_token_secret = empty($this->session->userdata('oauth_request_token_secret')) ? $_SESSION['oauth_request_token_secret'] : $this->session->userdata('oauth_request_token_secret');
$this->twitter->TwitterOAuth($this->_consumer_key, $this->_consumer_secret, $oauth_token, $oauth_token_secret);
$url = parse_url($_SERVER['REQUEST_URI']);
parse_str($url['query'], $params);
// get access token and secret
$info = $this->twitter->getAccessToken($params['oauth_verifier']);
// Get account details
$userInfo = $this->twitter->get("users/show", array("user_id" => $info['user_id']));
//d($userInfo,1);
if($params['denied'])
{
$this->session->set_userdata(array("type" => "error", "message" => "You said no thanks..."));
}elseif(!$userid){
$this->session->set_userdata(array("type" => "error", "message" => "Please login before adding facebook profile."));
redirect('login'); exit;
}
else if($userInfo->errors[0]->message)
{
$this->session->set_userdata(array("type" => "error", "message" => "Sorry! You have following errors: " .$userInfo->errors[0]->message ));
}
else
{
$profile_id = $info['user_id'];
$query = $this->db->get_where( "profile", array( 'profile_type' => 'twitter', 'profile_id' => $profile_id ) );
$profile = $query->row_array();
if($query->num_rows() == 0 ) {
// Save account info.
$this->db->insert("profile", array( "profile_id" => $info['user_id'], "profile" => $info['screen_name'], "display_name" => $userInfo->name, "autho_token" => $info['oauth_token'], "autho_token_secret" => $info['oauth_token_secret'], "profile_picture" => $userInfo->profile_image_url, "profile_type" => 'twitter', "user_id" => $userid ));
}else{
$updata["profile"] = $info['screen_name'];
$updata["display_name"] = $userInfo->name;
$updata["autho_token"] = $info['oauth_token'];
$updata["autho_token_secret"] = $info['oauth_token_secret'];
$updata["profile_picture"] = $userInfo->profile_image_url;
$this->db->update("profile", $updata, array( 'profile_type' => 'twitter', "profile_id" => $profile_id ));
if($profile['user_id'] != $userid)
$this->session->set_userdata(array("type" => "error", "message" => "Sorry! This account is already taken by another person."));
}
}
redirect('connector');
}
}
?>