我使用YII作为PHP框架。其中有一个功能是查询附近的人。
我的代码是这样做的:
class NearByController extends Controller { //发现附近的人。这里还没有做筛选。distance在哪里? public function actionIndex() { $latitude= UserRefreshForm::model()->getLatitude(); $longitude=UserRefreshForm::model()->getLongitude(); $criteria=new CDbCriteria(); $nearPersons=MGetNear::getNearPersonsNoOrder(); $criteria->select=' t.*, (ACOS(SIN(('.$latitude.'* 3.1415) / 180 ) *SIN((tbl_myr_refresh.latitude * 3.1415) / 180 ) +COS(('.$latitude.'* 3.1415) / 180 ) * COS((tbl_myr_refresh.latitude * 3.1415) / 180 ) *COS(('.$longitude .'* 3.1415) / 180 - (tbl_myr_refresh.longitude * 3.1415) / 180 ) ) * 6378.137) as distance'; $criteria->join='LEFT JOIN tbl_myr_refresh ON tbl_myr_refresh.userId=t.userId'; $criteria->addInCondition('t.userId',$nearPersons); $criteria->order='distance ASC'; $UserModel=User::model(); $total=$UserModel->count($criteria); $pager=new CPagination($total); $pager->pageSize=10; $pager->applyLimit($criteria); $userList=$UserModel->findAll($criteria); p($userList); }
我是使用Mysql来计算距离的。
但是当我打印出来的时候发现没有distance这个属性:
Array ( [0] => User Object ( [password1] => [password2] => [geohash] => [_new:CActiveRecord:private] => [_attributes:CActiveRecord:private] => Array ( [userId] => 3 [username] => [password] => c3284d0f94606de1fd2af172aba15bf3 [email] => 741691740@qq.com [phoneNumber] => [birthday] => 1992-11-01 [gender] => 1 [homeland] => 四川南充 [wantWhere] => [registerDate] => 2014-06-27 [smallAvatar] => smallAvatar140385273350016.jpg [bigAvatar] => bigAvatar140385273350016.jpg [qrcode] => [isStudent] => 1 [wentWhere] => [md5] => f2300adcae381de30ae58c8f4309dda9 [sessionId] => o5fcapmo7clfiiua717n1aa525 [iemi] => 123456789 ) [_related:CActiveRecord:private] => Array ( ) [_c:CActiveRecord:private] => [_pk:CActiveRecord:private] => 3 [_alias:CActiveRecord:private] => t [_errors:CModel:private] => Array ( ) [_validators:CModel:private] => [_scenario:CModel:private] => update [_e:CComponent:private] => [_m:CComponent:private] => ) )
也就是Yii只把user表中有的打印出来了。但是distance这个属性没有打印出来!
求救。YII大神告诉我该如何获得这个distance属性?
回复内容:
我使用YII作为PHP框架。其中有一个功能是查询附近的人。
我的代码是这样做的:
class NearByController extends Controller { //发现附近的人。这里还没有做筛选。distance在哪里? public function actionIndex() { $latitude= UserRefreshForm::model()->getLatitude(); $longitude=UserRefreshForm::model()->getLongitude(); $criteria=new CDbCriteria(); $nearPersons=MGetNear::getNearPersonsNoOrder(); $criteria->select=' t.*, (ACOS(SIN(('.$latitude.'* 3.1415) / 180 ) *SIN((tbl_myr_refresh.latitude * 3.1415) / 180 ) +COS(('.$latitude.'* 3.1415) / 180 ) * COS((tbl_myr_refresh.latitude * 3.1415) / 180 ) *COS(('.$longitude .'* 3.1415) / 180 - (tbl_myr_refresh.longitude * 3.1415) / 180 ) ) * 6378.137) as distance'; $criteria->join='LEFT JOIN tbl_myr_refresh ON tbl_myr_refresh.userId=t.userId'; $criteria->addInCondition('t.userId',$nearPersons); $criteria->order='distance ASC'; $UserModel=User::model(); $total=$UserModel->count($criteria); $pager=new CPagination($total); $pager->pageSize=10; $pager->applyLimit($criteria); $userList=$UserModel->findAll($criteria); p($userList); }
我是使用Mysql来计算距离的。
但是当我打印出来的时候发现没有distance这个属性:
Array ( [0] => User Object ( [password1] => [password2] => [geohash] => [_new:CActiveRecord:private] => [_attributes:CActiveRecord:private] => Array ( [userId] => 3 [username] => [password] => c3284d0f94606de1fd2af172aba15bf3 [email] => 741691740@qq.com [phoneNumber] => [birthday] => 1992-11-01 [gender] => 1 [homeland] => 四川南充 [wantWhere] => [registerDate] => 2014-06-27 [smallAvatar] => smallAvatar140385273350016.jpg [bigAvatar] => bigAvatar140385273350016.jpg [qrcode] => [isStudent] => 1 [wentWhere] => [md5] => f2300adcae381de30ae58c8f4309dda9 [sessionId] => o5fcapmo7clfiiua717n1aa525 [iemi] => 123456789 ) [_related:CActiveRecord:private] => Array ( ) [_c:CActiveRecord:private] => [_pk:CActiveRecord:private] => 3 [_alias:CActiveRecord:private] => t [_errors:CModel:private] => Array ( ) [_validators:CModel:private] => [_scenario:CModel:private] => update [_e:CComponent:private] => [_m:CComponent:private] => ) )
也就是Yii只把user表中有的打印出来了。但是distance这个属性没有打印出来!
求救。YII大神告诉我该如何获得这个distance属性?
(ACOS(SIN(('.$latitude.'* 3.1415) / 180 ) *SIN((tbl_myr_refresh.latitude * 3.1415) / 180 ) COS(('.$latitude.'* 3.1415) / 180 ) * COS((tbl_myr_refresh.latitude * 3.1415) / 180 ) *COS(('.$longitude .'* 3.1415) / 180 - (tbl_myr_refresh.longitude * 3.1415) / 180 ) ) * 6378.137) as distance
别名必须是该表中已经有的字段拿来借用一下,否则的话是row对象中获取不到这个值

绝对会话超时从会话创建时开始计时,闲置会话超时则从用户无操作时开始计时。绝对会话超时适用于需要严格控制会话生命周期的场景,如金融应用;闲置会话超时适合希望用户长时间保持会话活跃的应用,如社交媒体。

服务器会话失效可以通过以下步骤解决:1.检查服务器配置,确保会话设置正确。2.验证客户端cookies,确认浏览器支持并正确发送。3.检查会话存储服务,如Redis,确保其正常运行。4.审查应用代码,确保会话逻辑正确。通过这些步骤,可以有效诊断和修复会话问题,提升用户体验。

session_start()iscucialinphpformanagingusersessions.1)ItInitiateSanewsessionifnoneexists,2)resumesanexistingsessions,and3)setsasesessionCookieforContinuityActinuityAccontinuityAcconActInityAcconActInityAcconAccRequests,EnablingApplicationsApplicationsLikeUseAppericationLikeUseAthenticationalticationaltication and PersersonalizedContentent。

设置httponly标志对会话cookie至关重要,因为它能有效防止XSS攻击,保护用户会话信息。具体来说,1)httponly标志阻止JavaScript访问cookie,2)在PHP和Flask中可以通过setcookie和make_response设置该标志,3)尽管不能防范所有攻击,但应作为整体安全策略的一部分。

phpsessions solvathepromblymaintainingStateAcrossMultipleHttpRequestsbyStoringDataTaNthEserVerAndAssociatingItwithaIniquesestionId.1)他们储存了AtoredAtaserver side,通常是Infilesordatabases,InseasessessionIdStoreDistordStoredStoredStoredStoredStoredStoredStoreDoreToreTeReTrestaa.2)

tostartaphpsession,usesesses_start()attheScript'Sbeginning.1)placeitbeforeanyOutputtosetThesessionCookie.2)useSessionsforuserDatalikeloginstatusorshoppingcarts.3)regenerateSessiveIdStopreventFentfixationAttacks.s.4)考虑使用AttActAcks.s.s.4)

会话再生是指在用户进行敏感操作时生成新会话ID并使旧ID失效,以防会话固定攻击。实现步骤包括:1.检测敏感操作,2.生成新会话ID,3.销毁旧会话ID,4.更新用户端会话信息。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

Dreamweaver CS6
视觉化网页开发工具

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

WebStorm Mac版
好用的JavaScript开发工具

记事本++7.3.1
好用且免费的代码编辑器

Atom编辑器mac版下载
最流行的的开源编辑器