LifeType 中文開發論壇

支援 => 安裝與設定 => 主題作者是: xsxiaobao 於 九月 29, 2005, 01:27:15 上午



主題: 关于error_incorrect_user_id错误
作者: xsxiaobao九月 29, 2005, 01:27:15 上午
我的plog经常出现这个错误,1.0.1和1.0.2版本都会出现这个错误:error_incorrect_user_id ,我在google中搜索了一下,好象N多网站都是这个错误,不知道是什么缘故。sqllog日志如下:

1.0.1时出现这个错误:
generated the following error message =
You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near '垮崕' at line 7
29-09-2005 01:20:57 ERROR - The following query =
SELECT u.id AS id, u.user AS user, u.password AS password, u.email AS email,
                                 u.about AS about, u.full_name AS full_name, u.properties AS properties,
                                 u.resource_picture_id AS resource_picture_id,
                                 IF(p.permission_id = 1, 1, 0 ) AS site_admin,
                                 u.status AS status
                          FROM yupoo_users u LEFT JOIN yupoo_users_permissions p ON u.id = p.user_id
                          WHERE u.id = 闃垮崕


升级到1.0.2后出现这个错误。
29-09-2005 01:51:21 ERROR - The following query =
SELECT u.id AS id, u.user AS user, u.password AS password, u.email AS email,
                                 u.about AS about, u.full_name AS full_name, u.properties AS properties,
                                 u.resource_picture_id AS resource_picture_id,
                                 IF(p.permission_id = 1, 1, 0 ) AS site_admin,
                                 u.status AS status
                          FROM yupoo_users u LEFT JOIN yupoo_users_permissions p ON u.id = p.user_id
                          WHERE u.id = 2b265f43856f4b17b6cac484ff1fd903 ORDER BY blog_id
generated the following error message =
Unknown column '2b265f43856f4b17b6cac484ff1fd903' in 'where clause'



主題: Re: 关于error_incorrect_user_id错误
作者: markwu九月 29, 2005, 11:41:32 上午
這錯誤是因為在 custom url 或是 search engine frandly url 中,使用 userid 來當作參數傳到 pLog 裡面。但是這個 user ID 並不存在。

可能發生的情況是這個 user 本來是 active,但是後來被 disable 了,原本用到這個 userid 的 cusome url 都會出現這個錯誤。

不知道你的網站是怎麼在使用的,所以我只能這樣猜。

你可以看一下這一段錯誤訊息是由

/class/action/defaultaction.class.php 中拋出來的。

程式碼:
            if( $this->_userId > 0) {
                $user = $users->getUserInfoFromId( $this->_userId );
                if( !$user ) {
                    $this->_view = new ErrorView( $this->_blogInfo );
                    $this->_view->setValue( 'message', 'error_incorrect_user_id' );
                    $this->setCommonData();
                    return false;
                }
            }

Mark


主題: Re: 关于error_incorrect_user_id错误
作者: xsxiaobao九月 29, 2005, 08:31:10 下午
谢谢管理员的解答。
我现在才2个用户,都是激活状态,URL设置为有利于搜索引擎。
.htaccess文件已经修改,
我郁闷的是一会能访问,一会又不能访问。



主題: Re: 关于error_incorrect_user_id错误
作者: markwu九月 30, 2005, 12:03:43 上午
我從剛剛,每隔 10-20 分鐘 看一次你的 blog ... 並沒有你說的情形發生啊!你是用哪網址瀏覽你的網頁才看到這樣的情形呢?

Mark


主題: Re: 关于error_incorrect_user_id错误
作者: xsxiaobao九月 30, 2005, 03:43:18 下午
我從剛剛,每隔 10-20 分鐘 看一次你的 blog ... 並沒有你說的情形發生啊!你是用哪網址瀏覽你的網頁才看到這樣的情形呢?

Mark

受到启发,我找到问题原因了,是我的另一个应用用了全局cookies,所以冲突了,读取了另一个应用的userid,但plog好象自己并不创建cookies。

还有session中变量名冲突,也会造成这种错误。。。

但我还没找到plog中使用cookies地方,再继续找找,谢谢管理员



主題: Re: 关于error_incorrect_user_id错误
作者: markwu十月 03, 2005, 12:05:16 下午
我從剛剛,每隔 10-20 分鐘 看一次你的 blog ... 並沒有你說的情形發生啊!你是用哪網址瀏覽你的網頁才看到這樣的情形呢?

Mark

受到启发,我找到问题原因了,是我的另一个应用用了全局cookies,所以冲突了,读取了另一个应用的userid,但plog好象自己并不创建cookies。

还有session中变量名冲突,也会造成这种错误。。。

但我还没找到plog中使用cookies地方,再继续找找,谢谢管理员



不客氣!

BTW,pLog 目前只使用 session並沒有使用任何 cookies 喔!

Mark


主題: Re: 关于error_incorrect_user_id错误
作者: xsxiaobao十月 03, 2005, 08:48:43 下午
我找到原因了,问题在这个代码中。

程式碼:
        function getRequest()
        {
        if( phpversion() >= "4.1.0" )
            $requestVars = $_REQUEST;
            else {
            $postVars = HttpVars::getPost();
                $getVars  = HttpVars::getGet();
                $cookieVars = HttpVars::getCookie();

                $requestVars = array_merge( $getVars, $postVars, $cookieVars );
            }

            return $requestVars;
        }


我打印了$_REQUEST[userId],他可以取到我的cookies中userId的值。
开始认为是gpc_order = "GPC"的问题,我把php.ini中的设置改成这样也还是不行
程式碼:
gpc_order = "GP"	


我现在只好使用这个代码:
程式碼:
        function getRequest()
        {
            $postVars = HttpVars::getPost();
                $getVars  = HttpVars::getGet();
                $cookieVars = "";

                $requestVars = array_merge( $getVars, $postVars, $cookieVars );

            return $requestVars;
        }

就是不明白问题出在哪里?


主題: Re: 关于error_incorrect_user_id错误
作者: markwu十月 03, 2005, 09:02:40 下午
能請你做個實驗嗎?



程式碼:
$getVars  = HttpVars::getGet();
$cookieVars = HttpVars::getCookie();

改為

程式碼:
$getVars  = HttpVars::getGet();
$cookieVars = HttpVars::getCookie();
print_r($getVars);
print_r($cookieVars );

因為我滿好奇他的內容的。

我再猜 $_REQUEST 與 $_COOKIE 中都有 userid, 而 當兩個 arraymerge 後 $_REQUEST 中的值被 $_COOKIE 給 override。

pLog 雖然沒用 cookie,但是竟然被 cookie 來影響 :-P 。呵呵!你這樣改應改是沒問題的!

Mark


主題: Re: 关于error_incorrect_user_id错误
作者: xsxiaobao十月 04, 2005, 12:45:18 上午
当然可以了 :-D
打印出来的话:
程式碼:
Cookies:
Array ( [plogsession] => 131b62b6b0b801b5a234e80d4804c759  [userId] => 2b265f43856f4b17b6cac484ff1fd903  )
Get:
Array()
Post:
Array()
Session:
Array ( [SessionInfo] => sessioninfo Object ( [_props] => Array ( [summaryLang] => zh_CN ) [_objId] => [log] => ) )
$_REQUEST:
Array ( [plogsession] => 131b62b6b0b801b5a234e80d4804c759  [userId] => 2b265f43856f4b17b6cac484ff1fd903  )
本身的确是Cookies有值,GET和POST都没值,因为我访问的是首页。

我奇怪的是为什么我在php.ini中设置了gpc_order = "GP",而且在php_info()中也能看到这个改变参数。
为什么$_REQUEST 还能读到我cookies中的值.

明天开始出去玩几天 ,回来再研究。。。