我的问题如下:
这是一种php的session处理机制是吗?可以每次去第三方平台去验证session是吗?这是入口文件index.php,我的php项目没有用框架,php和html混合的。
<code><?php require( dirname(__FILE__) . '/config.php' ); global $GLOBAL_SYSTEM; if(isset($_GET['userId']) && $_GET['userId'] != ""){ $user_name = $_GET['userId']; $param = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:lev="http://session.level1.services.sdk.actionsoft.com/"> <header><aws-auth xmlns="http://services.sdk.actionsoft.com/">fecaca56a326610b24626b163814a02c</aws-auth> <header></header> <body> <checksession> <userid>'.$_GET['userId'].'</userid> <sid>'.$_GET['sid'].'</sid> </checksession> </body> '; $sessionServer = "http://mzwa-123.6655.la:8090/services/SessionService"; if(defined('SSO_SESSION_SERVER')){ $sessionServer = SSO_SESSION_SERVER; } $securityServer = "http://mzwa-123.6655.la:8090/services/SecurityService"; if(defined('SSO_SECURITY_SERVER')){ $securityServer = SSO_SECURITY_SERVER; } $xmls = fetch($sessionServer, $param); if($xmls === false){ sd_redirect($GLOBAL_SYSTEM[PRODUCT_TYPE]["index"]); } $xml_values = ""; $parser = xml_parser_create('UTF-8'); xml_parse_into_struct($parser, trim($xmls), $xml_values); xml_parser_free($parser); foreach ($xml_values as $value){ if($value['tag'] == "RETURN"){ if($value['value'] == 'false'){ sd_redirect($GLOBAL_SYSTEM[PRODUCT_TYPE]["index"]); }elseif($value['value'] == 'true'){ $user = &sd_get_user($user_name); if (!empty($user) ) { $result = login_without_pwd_verify($user); $_SESSION["user"] = $user_name; if ($_SESSION["role"] == UserDao::$ROLE_CLOUD_USER) { if (I2System::isI2Cloud()){ sd_redirect("cloud/home.php"); }else{ sd_redirect($GLOBAL_SYSTEM[PRODUCT_TYPE]["index"]); } } else { sd_redirect("i2/home.php"); } } } break; } } }else{ sd_redirect($GLOBAL_SYSTEM[PRODUCT_TYPE]["index"]."?".$_SERVER["QUERY_STRING"]); } </header></code>
index.php文件fetch()函数所调用的文件
<code><?php require( dirname(__FILE__) . '/../config.php' ); function httpGet($url) { $tuCurl = curl_init(); curl_setopt($tuCurl, CURLOPT_URL, $url); curl_setopt($tuCurl, CURLOPT_HEADER, 0); curl_setopt($tuCurl, CURLOPT_VERBOSE, 0); curl_setopt($tuCurl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($tuCurl, CURLOPT_TIMEOUT, 5); $tuData = curl_exec($tuCurl); $retValue = ""; $httpCode = curl_getinfo($tuCurl, CURLINFO_HTTP_CODE); if ($tuData===false || $httpCode!=200) { $logger = &LoggerManager::getLogger('HttpClient'); $logger->error("HttpCode:".$httpCode.", Curl Error:".curl_error($tuCurl)); $retValue = "error"; } else { $retValue = $tuData; } curl_close($tuCurl); return $retValue; } function httpsRequest($url, $port=0, $param) { $tuCurl = curl_init(); curl_setopt($tuCurl, CURLOPT_URL, $url); if ($port!=0) { curl_setopt($tuCurl, CURLOPT_PORT , $port); } curl_setopt($tuCurl, CURLOPT_VERBOSE, 0); curl_setopt($tuCurl, CURLOPT_HEADER, 0); curl_setopt($tuCurl, CURLOPT_SSLVERSION, 3); curl_setopt($tuCurl, CURLOPT_POST, 1); curl_setopt($tuCurl, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($tuCurl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($tuCurl, CURLOPT_POSTFIELDS, $param); curl_setopt($tuCurl, CURLOPT_TIMEOUT, 5); $tuData = curl_exec($tuCurl); $retValue = ""; $httpCode = curl_getinfo($tuCurl, CURLINFO_HTTP_CODE); if ($tuData===false || $httpCode!=200) { $logger = &LoggerManager::getLogger('HttpClient'); $logger->error("HttpCode:".$httpCode.", Curl Error:".curl_error($tuCurl)); $retValue = "error"; } else { $retValue = $tuData; } curl_close($tuCurl); return $retValue; } function fetchAliPrice($param){ $url = "https://buy.aliyun.com/ajax/BillingAjax/getBuyPrice.json"; $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, $url); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 15); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Connection:keep-alive', 'User-Agent:'.$_SERVER["HTTP_USER_AGENT"], 'Referer: https://buy.aliyun.com/', 'Origin:https://buy.aliyun.com' )); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $param); $data = curl_exec($ch); curl_close($ch); return $data; } function fetch($url,$param){ $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, $url); // curl_setopt($ch, CURLOPT_HEADER, TRUE); //表示需要response header // curl_setopt($ch, CURLOPT_NOBODY, FALSE); //表示需要response body curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 15); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);// // curl_setopt($ch, CURLOPT_HTTPHEADER, array( // "Content-Type: application/soap+xml; charset=utf-8", // "Content-length: ".strlen($param) // )); // curl_setopt($ch, CURLOPT_HTTPHEADER, array( // 'Connection:keep-alive', // 'User-Agent:'.$_SERVER["HTTP_USER_AGENT"], // 'Referer: https://buy.aliyun.com/', // 'Origin:https://buy.aliyun.com' // )); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $param); if(!curl_errno($ch)){ $info = curl_getinfo($ch); // echo 'Took ' . $info['total_time'] . ' seconds to send a request to ' . $info['url']."\n"; } else { echo 'Curl error: ' . curl_error($ch); } $data = curl_exec($ch); // var_dump(curl_getinfo($ch)); curl_close($ch); return $data; } </code>
回复内容:
我的问题如下:
这是一种php的session处理机制是吗?可以每次去第三方平台去验证session是吗?这是入口文件index.php,我的php项目没有用框架,php和html混合的。
<code><?php require( dirname(__FILE__) . '/config.php' ); global $GLOBAL_SYSTEM; if(isset($_GET['userId']) && $_GET['userId'] != ""){ $user_name = $_GET['userId']; $param = '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:lev="http://session.level1.services.sdk.actionsoft.com/"> <header><aws-auth xmlns="http://services.sdk.actionsoft.com/">fecaca56a326610b24626b163814a02c</aws-auth> <header></header> <body> <checksession> <userid>'.$_GET['userId'].'</userid> <sid>'.$_GET['sid'].'</sid> </checksession> </body> '; $sessionServer = "http://mzwa-123.6655.la:8090/services/SessionService"; if(defined('SSO_SESSION_SERVER')){ $sessionServer = SSO_SESSION_SERVER; } $securityServer = "http://mzwa-123.6655.la:8090/services/SecurityService"; if(defined('SSO_SECURITY_SERVER')){ $securityServer = SSO_SECURITY_SERVER; } $xmls = fetch($sessionServer, $param); if($xmls === false){ sd_redirect($GLOBAL_SYSTEM[PRODUCT_TYPE]["index"]); } $xml_values = ""; $parser = xml_parser_create('UTF-8'); xml_parse_into_struct($parser, trim($xmls), $xml_values); xml_parser_free($parser); foreach ($xml_values as $value){ if($value['tag'] == "RETURN"){ if($value['value'] == 'false'){ sd_redirect($GLOBAL_SYSTEM[PRODUCT_TYPE]["index"]); }elseif($value['value'] == 'true'){ $user = &sd_get_user($user_name); if (!empty($user) ) { $result = login_without_pwd_verify($user); $_SESSION["user"] = $user_name; if ($_SESSION["role"] == UserDao::$ROLE_CLOUD_USER) { if (I2System::isI2Cloud()){ sd_redirect("cloud/home.php"); }else{ sd_redirect($GLOBAL_SYSTEM[PRODUCT_TYPE]["index"]); } } else { sd_redirect("i2/home.php"); } } } break; } } }else{ sd_redirect($GLOBAL_SYSTEM[PRODUCT_TYPE]["index"]."?".$_SERVER["QUERY_STRING"]); } </header></code>
index.php文件fetch()函数所调用的文件
<code><?php require( dirname(__FILE__) . '/../config.php' ); function httpGet($url) { $tuCurl = curl_init(); curl_setopt($tuCurl, CURLOPT_URL, $url); curl_setopt($tuCurl, CURLOPT_HEADER, 0); curl_setopt($tuCurl, CURLOPT_VERBOSE, 0); curl_setopt($tuCurl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($tuCurl, CURLOPT_TIMEOUT, 5); $tuData = curl_exec($tuCurl); $retValue = ""; $httpCode = curl_getinfo($tuCurl, CURLINFO_HTTP_CODE); if ($tuData===false || $httpCode!=200) { $logger = &LoggerManager::getLogger('HttpClient'); $logger->error("HttpCode:".$httpCode.", Curl Error:".curl_error($tuCurl)); $retValue = "error"; } else { $retValue = $tuData; } curl_close($tuCurl); return $retValue; } function httpsRequest($url, $port=0, $param) { $tuCurl = curl_init(); curl_setopt($tuCurl, CURLOPT_URL, $url); if ($port!=0) { curl_setopt($tuCurl, CURLOPT_PORT , $port); } curl_setopt($tuCurl, CURLOPT_VERBOSE, 0); curl_setopt($tuCurl, CURLOPT_HEADER, 0); curl_setopt($tuCurl, CURLOPT_SSLVERSION, 3); curl_setopt($tuCurl, CURLOPT_POST, 1); curl_setopt($tuCurl, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($tuCurl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($tuCurl, CURLOPT_POSTFIELDS, $param); curl_setopt($tuCurl, CURLOPT_TIMEOUT, 5); $tuData = curl_exec($tuCurl); $retValue = ""; $httpCode = curl_getinfo($tuCurl, CURLINFO_HTTP_CODE); if ($tuData===false || $httpCode!=200) { $logger = &LoggerManager::getLogger('HttpClient'); $logger->error("HttpCode:".$httpCode.", Curl Error:".curl_error($tuCurl)); $retValue = "error"; } else { $retValue = $tuData; } curl_close($tuCurl); return $retValue; } function fetchAliPrice($param){ $url = "https://buy.aliyun.com/ajax/BillingAjax/getBuyPrice.json"; $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, $url); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 15); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Connection:keep-alive', 'User-Agent:'.$_SERVER["HTTP_USER_AGENT"], 'Referer: https://buy.aliyun.com/', 'Origin:https://buy.aliyun.com' )); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $param); $data = curl_exec($ch); curl_close($ch); return $data; } function fetch($url,$param){ $ch = curl_init(); curl_setopt ($ch, CURLOPT_URL, $url); // curl_setopt($ch, CURLOPT_HEADER, TRUE); //表示需要response header // curl_setopt($ch, CURLOPT_NOBODY, FALSE); //表示需要response body curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 15); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);// // curl_setopt($ch, CURLOPT_HTTPHEADER, array( // "Content-Type: application/soap+xml; charset=utf-8", // "Content-length: ".strlen($param) // )); // curl_setopt($ch, CURLOPT_HTTPHEADER, array( // 'Connection:keep-alive', // 'User-Agent:'.$_SERVER["HTTP_USER_AGENT"], // 'Referer: https://buy.aliyun.com/', // 'Origin:https://buy.aliyun.com' // )); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $param); if(!curl_errno($ch)){ $info = curl_getinfo($ch); // echo 'Took ' . $info['total_time'] . ' seconds to send a request to ' . $info['url']."\n"; } else { echo 'Curl error: ' . curl_error($ch); } $data = curl_exec($ch); // var_dump(curl_getinfo($ch)); curl_close($ch); return $data; } </code>
第一次请求时去第三方验证,验证成功后放入session
下次请求时 如果 session 中有数据 就不用请求了
https://segmentfault.com/q/1010000004289927

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

在PHP中,可以利用implode()函数的第一个参数来设置没有分隔符,该函数的第一个参数用于规定数组元素之间放置的内容,默认是空字符串,也可将第一个参数设置为空,语法为“implode(数组)”或者“implode("",数组)”。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

Dreamweaver Mac版
视觉化网页开发工具

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

禅工作室 13.0.1
功能强大的PHP集成开发环境

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

SublimeText3 英文版
推荐:为Win版本,支持代码提示!