我遇到的问题是PHP会话在上传到godaddy(linux)托管环境时返回错误的值。这在我的wampserver(Windows 10)上本地工作绝对没问题。我只是想尝试使用Abrahams推特库,并且如上所述在本地工作。
代码非常简单: 2个档案, 的index.html:
<?php
error_reporting( E_ALL );
session_save_path('/home/aureagle/public_html/sgorilla.com/sessions');
session_start();
echo "<br>" . session_save_path() . "<br>";
require "twitteroauth/autoload.php";
use Abraham\TwitterOAuth\TwitterOAuth;
define('CONSUMER_KEY', 'xxx');
define('CONSUMER_SECRET', 'yyy');
define('OAUTH_CALLBACK', 'http://www.sgorilla.com/report.php');
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);
$request_token = $connection->oauth('oauth/request_token', array('oauth_callback' => OAUTH_CALLBACK));
$_SESSION['oauth_token'] = $request_token['oauth_token'];
$_SESSION['oauth_token_secret'] = $request_token['oauth_token_secret'];
$url = $connection->url('oauth/authorize', array('oauth_token' => $request_token['oauth_token']));
?>
...
点击的网址:
然后在用户从twitter返回后,调用report.html:
<?php
error_reporting( E_ALL );
session_save_path('/home/aureagle/public_html/sgorilla.com/sessions');
session_start();
var_dump($_SESSION);
echo "<br>";
echo "<br>" . session_save_path() . "<br>";
require "twitteroauth/autoload.php";
use Abraham\TwitterOAuth\TwitterOAuth;
define('CONSUMER_KEY', 'xxxx');
define('CONSUMER_SECRET', 'yyyy');
$request_token = [];
$request_token['oauth_token'] = $_SESSION['oauth_token'];
$request_token['oauth_token_secret'] = $_SESSION['oauth_token_secret'];
if (isset($_REQUEST['oauth_token']) && $request_token['oauth_token'] !== $_REQUEST['oauth_token']) {
// Abort! Something is wrong.
echo "<br>abort!";
}
_SESSION与之前完全不同,完全错误的auth值。我花了几个小时检查路径,更改路径,清除会话,删除会话 - 所有种类但由于某种原因会话不同。
Godaddy支持无法帮助(刚下电话)我已经花了一整天的时间。
有人可以给我一些建议吗?非常烦人的事情很简单,无法正常工作。
会话保存路径是/ tmp,将其更改为指定的路径不会改变任何内容(我确实看到会话出现,但奇怪的是在短暂的延迟之后是可疑的)。
正如您可以从脚本中看到的那样,Abort每次都会输出,因为值不会匹配。
关于下一步该尝试的任何想法?我也试过删除会话文件,但似乎没有任何区别。
TIA!