更新三江源子平台中的curl和accountcontroller中的功能

This commit is contained in:
Li Jianxuan 2013-11-28 02:30:13 +00:00
parent 603dfd8781
commit 2a37cec905
2 changed files with 52 additions and 73 deletions

View File

@ -1,4 +1,8 @@
<?php <?php
use Helpers\View;
use Users\Member;
use Users\Account;
class AccountController extends Zend_Controller_Action class AccountController extends Zend_Controller_Action
{ {
function preDispatch() function preDispatch()
@ -285,8 +289,7 @@ class AccountController extends Zend_Controller_Action
function loginAction() function loginAction()
{ {
include_once("helper/view.php");
$success=false; $success=false;
$options = array( $options = array(
@ -319,75 +322,30 @@ class AccountController extends Zend_Controller_Action
$this->view->href = $tohref; $this->view->href = $tohref;
} }
$captcha = $this->loadCaptcha(); //登录表单提交
$submit = $this->_getParam("submit"); if(!$submit)
if(!empty($submit))
{ {
$username = trim($this->_request->getParam('username')); return false;
$password = trim($this->_request->getParam('password'));
$captchaword = trim($this->_request->getParam('captcha'));
if(empty($username))
{
$this->setCaptcha($captcha);
$this->view->error = "请输入用户名";
return true;
}
if(empty($password))
{
$this->setCaptcha($captcha);
$this->view->error = "请输入密码";
return true;
}
if(empty($captchaword))
{
$this->setCaptcha($captchaword);
$this->view->error = "请输入验证码";
return true;
}
if(!isset($_SESSION['captcha']))
{
$_SESSION['captcha'] = md5(time());
}
if ($captchaword != $_SESSION['captcha']) {
$this->setCaptcha($captcha);
$this->view->error = "验证码错误";
return true;
}
if (!$this->login($username,$password))
{
$this->setCaptcha($captcha);
$this->view->error = "用户名或密码错误";
$this->view->userid = $username;
return true;
}
else
{
if(!empty($tohref))
{
view::Post($this,"登录成功,正在跳转",$tohref);
return true;
}
if($options['module']=="default" && $options['controller'] == "account" && $options['action'] == "login")
{
view::Post($this,"登录成功,正在跳转",'/');
return true;
}else{
view::Post($this,"登录成功,正在跳转",$_SERVER['REQUEST_URI']);
return true;
}
}
}else{
$this->setCaptcha($captcha);
} }
$param = array(
'username' => '',
'password' => ''
);
$curl = new Curl();
$curl->port = 80;
$curl->initOptions(array('verifyssl'=>false));
$curl->H = array(
'X-Requested-With: XMLHttpRequest'
);
$data = $curl->request($main_url,$param,"POST");
$cache_data = json_decode($data['response'],true);
view::Dump($cache_data,false);
return true;
} }
function loadCaptcha() function loadCaptcha()

View File

@ -4,19 +4,25 @@ namespace Helpers;
class Curl class Curl
{ {
private $options; private $options;
public $port = 80;
public $H;
public function __construct($options = array()) public function __construct($options = array())
{ {
$this->options = array_merge(array(
}
public function initOptions($options = array())
{
$this->options = array_merge(array(
'debug' => false, 'debug' => false,
'http_port' => '80', 'http_port' => $this->port,
'user_agent' => 'Westdc DataService', 'user_agent' => 'Westdc DataService',
'timeout' => 20, 'timeout' => 20,
'curlopts' => null, 'curlopts' => null,
'verifyssl' => true, 'verifyssl' => true,
), $options); ), $options);
} }
/** /**
* Send a request to the server, receive a response * Send a request to the server, receive a response
* *
@ -69,6 +75,11 @@ class Curl
} else { } else {
$headers[] = 'Content-Length: 0'; $headers[] = 'Content-Length: 0';
} }
if(!empty($this->H) && is_array($this->H) && count($this->H) > 0)
{
$headers = array_merge($headers,$this->H);
}
$this->debug('send '.$httpMethod.' request: '.$url); $this->debug('send '.$httpMethod.' request: '.$url);
@ -81,6 +92,16 @@ class Curl
CURLOPT_HTTPHEADER => $headers, CURLOPT_HTTPHEADER => $headers,
CURLOPT_SSL_VERIFYPEER => $options['verifyssl'], CURLOPT_SSL_VERIFYPEER => $options['verifyssl'],
); );
if($this->port === 443)
{
/*$curlOptions += array(
CURLOPT_SSLVERSION => 3,
CURLOPT_SSLCERT => "../application/module/Open/apache.pem",
CURLOPT_SSLKEY => "../application/module/Open/apache.key",
CURLOPT_CAINFO => "../application/module/Open/apache.pem"
);*/
}
if (ini_get('open_basedir') == '' && ini_get('safe_mode') != 'On') { if (ini_get('open_basedir') == '' && ini_get('safe_mode') != 'On') {
$curlOptions[CURLOPT_FOLLOWLOCATION] = true; $curlOptions[CURLOPT_FOLLOWLOCATION] = true;