shell bypass 403
<?php
App::uses('PagesController', 'Controller');
class InmueblesController extends PagesController {
public $components = array('Session');
public function home() {
//Variables recibidas en URL
$this->setInmueblesMap();
// debug($this->params);
if(empty($this->Session->read()['Vista']['vista']) || ($this->Session->read()['Vista']['vista'] != 'mapa' && $this->Session->read()['Vista']['vista'] != 'grid' && $this->Session->read()['Vista']['vista'] != 'lista')) {
$this->Session->write('Vista.vista', 'lista');
}else {
$this->Session->write('Vista.vista', $this->Session->read()['Vista']['vista']);
$vista = $this->Session->read()['Vista']['vista'];
if(!empty($this->params->query['vista']) && $this->params->query['vista'] == 'mapa') {
$this->Session->write('Vista.vista', 'mapa');
}elseif(!empty($this->params->query['vista']) && $this->params->query['vista'] == 'grid') {
$this->Session->write('Vista.vista', 'grid');
}elseif(!empty($this->params->query['vista']) && $this->params->query['vista'] == 'lista') {
$this->Session->write('Vista.vista', 'lista');
}
}
//Listado de inmuebles
$conditions = array('Inmueble.publicado' => true);
array_push($this->uses, 'Slider', 'InmuebleListadoFiltro', 'Inmueble', 'InmuebleTipo', 'InmuebleInmuebleListado', 'Localidad', 'Provincia', 'Zona');
$this->set('buscadorGestiones', $this->App->getInmueblesGestionesSelect());
$this->set('buscadorTipos', $this->InmuebleTipo->find('list',
array(
'conditions' => array('InmuebleTipo.tipo_id' => 0, 'AND' => array(
)),
'fields' => array('InmuebleTipo.id', 'InmuebleTipo.nombre'),
'order' => $this->App->getOrden('InmuebleTipo'))));
// Condicion si tiene tipo inmueble
if(!empty($this->params->query['id_tipo_inmueble'])) {
$conditionTipo = $this->params->query['id_tipo_inmueble'];
}else {
$conditionTipo = '';
}
// Condicion si tiene localidad
if(!empty($this->params->query['id_localidad'])) {
$conditionLocalidad = $this->params->query['id_localidad'];
}else {
$conditionLocalidad = '';
}
$this->set('buscadorProvincias', $this->App->getProvinciasSelect());
/** LOCALIDADES **/
if(!empty($this->params->query['id_provincia'])) {
$conditionsLocalidades = array('id_provincia' => $this->params->query['id_provincia']);
}else {
$conditionsLocalidades = array();
}
$this->set('buscadorLocalidades', $this->App->getLocalidadesSelect($conditionsLocalidades));
/** LOCALIDADES **/
/** ZONAS **/
if(!empty($this->params->query['id_localidad'])) {
$conditionsZonas = array('localidad_id' => $this->params->query['id_localidad']);
}else {
$conditionsZonas = array('localidad_id' => 'NO MOSTRAR');
}
$this->set('buscadorZonas', $this->App->getZonasSelect($conditionsZonas));
/** ZONAS **/
(!empty($this->params->query['id_gestion'])) ? $gestion = $this->params->query['id_gestion'] : $gestion = '%'.''.'%';
/******** Si viene por buscador de palabras *****/
if(!empty($this->params->query['dataKeywords'])) {
$conditions['Inmueble.publicado'] = true;
//Buscamos la palabras si contiene provincia
$arrayProvincia = array();
foreach(explode(' ', $this->params->query['dataKeywords']) as $dataKeywordProvincia) {
$dataKeywordsProvincia = $this->Provincia->find('all', array('conditions' => array('nombre LIKE' => $dataKeywordProvincia)));
foreach ($dataKeywordsProvincia as $dataKeywordProvincia) {
array_push($arrayProvincia, $dataKeywordProvincia['Provincia']['id']);
}
if(!empty($arrayProvincia)) {
$conditions['Inmueble.id_provincia'] = $arrayProvincia;
break;
}
}
//Buscamos la palabras si contiene localidad
$arrayLocalidad = array();
foreach(explode(' ', $this->params->query['dataKeywords']) as $dataKeywordLocalidad) {
$dataKeywordsLocalidad = $this->Localidad->find('all', array('conditions' => array('nombre LIKE' => $dataKeywordLocalidad)));
foreach ($dataKeywordsLocalidad as $dataKeywordLocalidad) {
array_push($arrayLocalidad, $dataKeywordLocalidad['Localidad']['id']);
}
if(!empty($arrayLocalidad)) {
$conditions['Inmueble.id_localidad'] = $arrayLocalidad;
break;
}
}
// Sin dividir palabras
if(empty($arrayLocalidad)) {
$dataKeywordsLocalidad = $this->Localidad->find('all', array('conditions' => array('nombre LIKE' => $dataKeywordLocalidad)));
foreach ($dataKeywordsLocalidad as $dataKeywordLocalidad) {
array_push($arrayLocalidad, $dataKeywordLocalidad['Localidad']['id']);
}
if(!empty($arrayLocalidad)) {
$conditions['Inmueble.id_localidad'] = $arrayLocalidad;
break;
}
}
//Buscamos la palabras si contiene zona
if(empty($arrayLocalidad)) {
$arrayZona = array();
foreach(explode(' ', $this->params->query['dataKeywords']) as $dataKeywordZona) {
$dataKeywordsZona = $this->Zona->find('all', array('conditions' => array('nombre LIKE' => $dataKeywordZona)));
foreach ($dataKeywordsZona as $dataKeywordZona) {
array_push($arrayZona, $dataKeywordZona['Zona']['id']);
}
if(!empty($arrayZona)) {
$conditions['Inmueble.id_zona'] = $arrayZona;
break;
}
}
}
//Buscamos la palabras si contiene tipo de inmueble
$arrayInmuebleTipo = array();
foreach(explode(' ', $this->params->query['dataKeywords']) as $dataKeywordInmuebleTipo) {
$dataKeywordsInmuebleTipo = $this->InmuebleTipo->find('all', array('conditions' => array('nombre LIKE' => '%'.$dataKeywordInmuebleTipo. '%')));
foreach ($dataKeywordsInmuebleTipo as $dataKeywordInmuebleTipo) {
array_push($arrayInmuebleTipo, $dataKeywordInmuebleTipo['InmuebleTipo']['id']);
}
if(!empty($arrayInmuebleTipo)) {
$conditions['Inmueble.id_tipo_inmueble'] = $arrayInmuebleTipo;
break;
}
}
//Buscamos la palabras si contiene titulo_corto
if(empty($arrayProvincia) && empty($arrayLocalidad) && empty($arrayZona) && empty($arrayInmuebleTipo)) {
$arrayInmuebleTitulo = array();
$dataKeywordsInmuebleTitulo = $this->Inmueble->find('all', array('conditions' => array('titulo_corto LIKE' => '%'.$this->params->query['dataKeywords']. '%')));
foreach ($dataKeywordsInmuebleTitulo as $dataKeywordInmuebleTitulo) {
array_push($arrayInmuebleTitulo, $dataKeywordInmuebleTitulo['Inmueble']['id']);
}
if(!empty($arrayInmuebleTitulo)) {
$conditions['Inmueble.id'] = $arrayInmuebleTitulo;
}
}
if(empty($arrayProvincia) && empty($arrayLocalidad) && empty($arrayZona) && empty($arrayInmuebleTipo) && empty($arrayInmuebleTitulo)) {
//Buscamos la palabras si contiene descripcion
$arrayInmuebleDescripcion = array();
$dataKeywordsInmuebleDescripcion = $this->Inmueble->find('all', array('conditions' => array('descripcion LIKE' => '%'.$this->params->query['dataKeywords']. '%')));
foreach ($dataKeywordsInmuebleDescripcion as $dataKeywordInmuebleDescripcion) {
array_push($arrayInmuebleDescripcion, $dataKeywordInmuebleDescripcion['Inmueble']['id']);
}
if(!empty($arrayInmuebleDescripcion)) {
$conditions['Inmueble.id'] = $arrayInmuebleDescripcion;
}
}
/* $conditions['Inmueble.descripcion LIKE'] = '%'. $this->params->query['dataKeywords'] .'%';
$conditions['Inmueble.titulo_corto LIKE'] = '%'. $this->params->query['dataKeywords'] .'%'; */
//debug($conditions);
}else {
$conditions = array(
'id_tipo_inmueble LIKE' => (!empty($this->params->query['id_tipo_inmueble'])) ? $this->params->query['id_tipo_inmueble'] : '%'.''.'%',
'titulo_corto LIKE' => (!empty($dataKeywordsLocalidad) || empty($this->params->query['dataKeywords'])) ? '%'."".'%' : '%'.$this->params->query['dataKeywords'].'%',
'descripcion LIKE' => (!empty($dataKeywordsLocalidad) || empty($this->params->query['dataKeywords'])) ? '%'."".'%' : '%'.$this->params->query['dataKeywords'].'%',
'id_provincia LIKE' => (!empty($this->params->query['id_provincia'])) ? $this->params->query['id_provincia'] : '%'.''.'%',
'id_localidad LIKE' => (!empty($this->params->query['id_localidad'])) ? $this->params->query['id_localidad'] : '%'.''.'%',
'id_zona LIKE' => (!empty($this->params->query['id_zona'])) ? $this->params->query['id_zona'] : '%'.''.'%',
'id_gestion LIKE' => (!empty($this->params->query['id_gestion']) && $this->params->query['id_gestion'] == '1') ? '1' : $gestion,
'banos >=' => (!empty($this->params->query['banos'])) ? $this->params->query['banos'] : '%'.''.'%',
'precio >=' => (!empty($this->params->query['precio_min'])) ? $this->params->query['precio_min'] : '0',
'precio <=' => (!empty($this->params->query['precio_max'])) ? $this->params->query['precio_max'] : '10000000000',
'superficie >=' => (!empty($this->params->query['superficie_min'])) ? $this->params->query['superficie_min'] : '0',
'superficie <=' => (!empty($this->params->query['superficie_max'])) ? $this->params->query['superficie_max'] : '10000000000',
'habitaciones >=' => (!empty($this->params->query['habitaciones'])) ? $this->params->query['habitaciones'] : '%'.''.'%',
'tour_virtual LIKE' => !empty($this->params->query['tour_virtual']) && $this->params->query['tour_virtual'] == 'on' ? '%http%' : '%'.''.'%',
'referencia LIKE' => !empty($this->params->query['referencia']) ? '%'.$this->params->query['referencia'].'%' : '%'.''.'%',
'publicado' => true
);
}
if(!empty($this->params->query['jardin']) && $this->params->query['jardin'] == 'on') {
$conditions['jardin'] = 1;
}
if(!empty($this->params->query['ascensor']) && $this->params->query['ascensor'] == 'on') {
$conditions['ascensor'] = 1;
}
if(!empty($this->params->query['terraza']) && $this->params->query['terraza'] == 'on') {
$conditions['terraza'] = 1;
}
if(!empty($this->params->query['garaje']) && $this->params->query['garaje'] == 'on') {
$conditions['garaje'] = 1;
}
if(!empty($this->params->query['calefaccion']) && $this->params->query['calefaccion'] == 'on') {
$conditions['calefaccion'] = '%%';
}/*else {
$conditions['calefaccion'] = '0';
}*/
if(!empty($this->params->query['piscina']) && $this->params->query['piscina'] == 'on') {
$conditions['piscina'] = 1;
}
$numTotalInmuebles = $this->Inmueble->find('all', array('conditions' => $conditions));
$this->set('numTotalInmuebles', $numTotalInmuebles);
$this->set('noNoticias', true);
// Vista Mapa
if($this->params->parametros == 'vista-mapa' || $this->Session->read()['Vista']['vista'] == 'mapa') {
$this->Session->write('Vista.vista', 'mapa');
$vista = 'mapa';
$inmuebles = $this->Inmueble->find('all', array('conditions' => $conditions, 'order' => (!empty($this->params->query['order'])) ? $this->params->query['order'] : '', 'limit' => '10000'));
//Quitamos limites dado que el listado principal puede tener una gran cantidad de inmuebles
ini_set('memory_limit', '-1');
ini_set('max_execution_time', 0);
$inmuebleHelper = new InmuebleHelper(new View());
$listadoMapa = array('totales' => 0, 'items' => array());
foreach ($inmuebles as $l) {
if (!empty($l['Inmueble']['geolocalizacion'])) {
$listadoMapa['totales'] ++;
$geo = explode(',', $l['Inmueble']['geolocalizacion']);
if(!empty($l['InmuebleGaleria'][0]['url'])) {
$imagen = $inmuebleHelper->getImagen($l['InmuebleGaleria'][0]['url'], 242, 178);
}
$listadoMapa['items'][] = array(
'titulo' => $inmuebleHelper->trimText($l['Inmueble']['descripcion'], 45),
'referencia' => $l['Inmueble']['referencia'],
'gestion' => $l['Inmueble']['id_gestion'],
'precio' => $inmuebleHelper->getPrecio($l['Inmueble']),
'banos' => $l['Inmueble']['banos'],
'imagen' => $imagen,
'habitaciones' => $l['Inmueble']['habitaciones'],
'superficie_util' => $l['Inmueble']['superficie_util'],
'url' => $inmuebleHelper->url(array('controller' => $this->params->controller, 'action' => 'detalle', 'inmueble' => $l['Inmueble']['seo'])),
'latitud' => $geo[0],
'longitud' => $geo[1],
);
}
}
$this->set('listado', $listadoMapa);
$this->javascripts[] = 'https://maps.google.com/maps/api/js?sensor=false';
$this->javascripts[] = 'https://www.google.com/jsapi';
$this->javascripts[] = 'infobox';
$this->javascripts[] = 'gmaps.lib';
$this->javascripts[] = 'frontend/inmuebles-mapa';
// Vista Grid
}elseif($this->params->parametros == 'vista-grid' || $this->Session->read()['Vista']['vista'] == 'grid') {
$this->Session->write('Vista.vista', 'grid');
$vista = 'grid';
//Obtenemos la información de las páginas que tiene el listado
$this->set('numTotalInmuebles', $numTotalInmuebles);
$limit = 12;
$pagTotales = ceil(count($numTotalInmuebles) / $limit);
$pagActual = (int) $this->getParamsSession('pagina', 1);
if ($pagActual < 1) { //si solicitamos páginas por debajo de la 1
$pagActual = 1;
} elseif ($pagActual > $pagTotales) { //si solicitamos páginas por encima del total de páginas
$pagActual = $pagTotales;
}
$this->set('paginaActual', $pagActual);
$this->set('paginaTotales', $pagTotales);
$this->paginate = array('conditions' => $conditions, 'limit' => $limit, 'order' => (!empty($this->params->query['order'])) ? $this->params->query['order'] : $this->App->getOrden('Inmueble'), 'page' => $pagActual);
$listado = $this->paginate('Inmueble');
$this->set('listado', $listado);
// Vista Lista
}elseif($this->params->parametros == 'vista-lista' || $this->Session->read()['Vista']['vista'] == 'lista' || empty($this->Session->read('Vista.vista'))) {
$this->Session->write('Vista.vista', 'lista');
$vista = 'lista';
//Obtenemos la información de las páginas que tiene el listado
$this->set('numTotalInmuebles', $numTotalInmuebles);
$limit = 12;
$pagTotales = ceil(count($numTotalInmuebles) / $limit);
$pagActual = (int) $this->getParamsSession('pagina', 1);
if ($pagActual < 1) { //si solicitamos páginas por debajo de la 1
$pagActual = 1;
} elseif ($pagActual > $pagTotales) { //si solicitamos páginas por encima del total de páginas
$pagActual = $pagTotales;
}
$this->set('paginaActual', $pagActual);
$this->set('paginaTotales', $pagTotales);
$this->paginate = array('conditions' => $conditions, 'limit' => $limit, 'order' => (!empty($this->params->query['order'])) ? $this->params->query['order'] : $this->App->getOrden('Inmueble'), 'page' => $pagActual);
$listado = $this->paginate('Inmueble');
$this->set('listado', $listado);
}
$this->set('vista', $vista);
$this->render('/Pages/inmuebles');
}
public function detalle() {
array_push($this->uses, 'Inmueble');
$inmueble = $this->Inmueble->findBySeoAndPublicado('/'.$this->params->inmueble, true);
$similares = $this->Components->load('Inmueble')->getSimilares($inmueble, $this->getParamsSession('inmueblesConditions'));
$this->set('similares', $similares);
//Comprobamos si hemos encontrado el inmueble
if (empty($inmueble)) {
$this->Session->setFlash('No se ha encontrado el inmueble al que deseas acceder.' . $this->btnClose, 'default', array('class' => 'alert alert-danger'));
$this->redirect(array('controller' => 'pages', 'action' => 'error'));
}
if ($this->request->is('post') && !empty($this->request->data['Contacto'])) {
array_push($this->uses, 'Contacto');
$this->Contacto->create();
$this->request->data['Contacto']['pagina'] = 'Inmueble';
$this->request->data['Contacto']['entidad'] = 'inmueble';
$this->request->data['Contacto']['entidad_id'] = $inmueble['Inmueble']['id'];
if($this->__checkRecaptchaResponse($this->request->data['g-recaptcha-response'])){
if ($this->Contacto->save($this->request->data)) {
//Email
$Email = new CakeEmail(Configure::read('App.env'));
$Email->to(Configure::read('App.email'))
->subject('Contacto en la web de ' . Configure::read('App.nombre'))
->template('contacto')
->emailFormat('html')
->viewVars(array('fecha' => date('d/m/Y G:i'), 'contacto' => $this->request->data['Contacto'], 'entidad' => $inmueble['Inmueble']))
->send();
$this->Session->setFlash('/obj-inmueble', 'default', array(), 'ga');
$this->Session->setFlash('Gracias por completar el formulario de contacto, nos pondremos en contacto con usted para atenderte lo antes posible.' . $this->btnClose, 'default', array('class' => 'alert alert-success'));
$this->redirect(array('controller' => 'inmuebles', 'action' => 'detalle', 'inmueble' => $inmueble['Inmueble']['seo']));
} else {
$this->errores = $this->Contacto->validationErrors;
}
} else {
// Usuario NO ha resuelto recaptcha GOOGLE
$this->Session->setFlash('Debe pasar la validación del Captcha para poder enviar el formulario.' . $this->btnClose, 'default', array('class' => 'alert alert-danger'));
}
}
$this->set('noNoticias', true);
$this->set('inmueble', $inmueble);
$this->set('provincias', $this->App->getProvinciasSelect());
$this->set('localidades', $this->App->getLocalidadesSelect(array('Localidad.id_provincia' => $inmueble['Inmueble']['id_provincia'])));
$this->set('estados', $this->App->getInmueblesEstadosSelect());
$this->set('gestiones', $this->App->getInmueblesGestionesSelect());
$this->set('tipos', $this->App->getInmueblesTiposSelect());
//Metas
$this->metas['title'] = strip_tags($inmueble['Inmueble']['titulo_corto']. ' - Altamira21');
$this->metas['description'] = $inmueble['Inmueble']['descripcion']. ' - Altamira21';
$this->stylesheets[] = 'https://code.interactivaclic.com/bxslider/4.2.3/jquery.bxslider.min.css';
$this->stylesheets[] = 'https://code.interactivaclic.com/lightGallery/1.1.4/css/lightGallery.css';
$this->javascripts[] = 'https://code.interactivaclic.com/bxslider/4.2.3/jquery.bxslider.min.js';
$this->javascripts[] = 'https://code.interactivaclic.com/lightGallery/1.1.4/js/lightGallery.min.js';
$this->javascripts[] = 'https://maps.google.com/maps/api/js?sensor=false';
$this->javascripts[] = 'frontend/galeria';
$this->render('/Pages/inmueble');
}
public function referencia() {
array_push($this->uses, 'Inmueble');
$inmuebles = $this->Inmueble->find('all', array('conditions' => array('Inmueble.publicado' => true, 'Inmueble.referencia' => $this->params->referencia)));
//Comprobamos si hemos encontrado algún inmueble
if (empty($inmuebles)) {
$this->Session->setFlash('No se ha encontrado la referencia introducida.' . $this->btnClose, 'default', array('class' => 'alert alert-danger'));
$this->redirect(array('controller' => 'inmuebles', 'action' => 'home'));
}
$this->set('listado', $inmuebles);
//Obtenemos los IDs de las entidades para después actualizar el nº de impresiones
foreach ($inmuebles as $e) {
$this->impresiones['inmuebles'][] = $e['Inmueble']['id'];
}
//Migas
$this->migas['Inmuebles con la referencia: ' . $this->params->descriptor] = array('controller' => $this->params->controller, 'action' => $this->params->action, 'referencia' => $this->params->referencia);
$this->render('/Pages/referencia');
}
private function getListadoInmuebles($conditions = array()) {
}
//Método que genera las condiciones de las áreas
private function getFiltroArea(&$conditions, $campo, $seoID = null) {
if (!empty($this->params->query[$campo]) && !empty($seoID[$this->params->query[$campo]]) && empty($this->params->query['localidad'])) {
//Buscamos las localidades del área seleccionada
array_push($this->uses, 'Localidad');
$localidadesIDs = $this->Localidad->find('list', array('fields' => array('Localidad.id', 'Localidad.id'), 'conditions' => array('Localidad.id_area' => $seoID[$this->params->query[$campo]])));
$conditions['Inmueble.id_localidad'] = array_merge(array(0), $localidadesIDs);
}
}
//Método que genera las condiciones de los campos en caso que sean rangos
private function getFiltroRango(&$conditions, $campo, $campoTabla = null) {
if (empty($campoTabla)) {
$campoTabla = $campo;
}
if (!empty($this->params->query["$campo-desde"]) || !empty($this->params->query["$campo-hasta"])) {
$desde = (!empty($this->params->query["$campo-desde"])) ? $this->params->query["$campo-desde"] : null;
$hasta = (!empty($this->params->query["$campo-hasta"])) ? $this->params->query["$campo-hasta"] : null;
if (empty($hasta)) {
$conditions["Inmueble.$campoTabla >="] = $desde;
} elseif (empty($desde)) {
$conditions["Inmueble.$campoTabla <"] = $hasta;
} else {
$conditions["Inmueble.$campoTabla >="] = $desde;
$conditions["Inmueble.$campoTabla <"] = $hasta;
}
if (array_key_exists('NOT', $conditions)) {
$conditions['NOT'] = array();
}
$conditions['NOT']["Inmueble.$campoTabla"] = 0;
}
}
//Método que genera las condiciones de las habitaciones y baños
private function getFiltroValores(&$conditions, $campo, $campoTabla, $valores, $valoresLast) {
if (!empty($this->params->query[$campo])) {
foreach ($valores as $k => $v) {
if ($this->params->query[$campo] == Inflector::slug($v, '-')) {
if ($valoresLast == $v) { //último elemento
$conditions["Inmueble.$campoTabla >="] = $k;
$this->filtro[$campo] = array($v => 0);
} else {
$conditions["Inmueble.$campoTabla"] = $k;
$this->filtro[$campo] = array($v => 0);
}
}
}
}
}
private function getFiltroExtras(&$conditions) {
if (!empty($this->params->query['extras'])) {
$extras = explode('-', $this->params->query['extras']);
foreach ($extras as $e) {
$conditions["Inmueble." . str_replace(array('aireacondicionado'), array('aire_acondicionado'), $e)] = true;
}
}
}
//Método que pasa a la vista un array con valores obtenidos de la propia tabla
private function getArrayValores($elementosNum, $campo, $vista) {
$out = array();
if (!empty($elementosNum[$campo])) {
$out = array_keys($elementosNum[$campo]);
sort($out);
}
$this->set($vista, $out);
}
private function setInmueblesMap() {
//Gestión
if (!empty($this->params->gestion)) {
$this->params->query['gestion'] = $this->params->gestion;
}
//Tipo
if (!empty($this->params->tipo) && $this->params->tipo != 'inmuebles') {
$this->params->query['tipo'] = $this->params->tipo;
}
//Estado
if (!empty($this->params->estado)) {
$this->params->query['estado'] = $this->params->estado;
}
//Parametros
if (!empty($this->params->parametros)) {
$this->getInmueblesMapParams($this->params->parametros);
}
}
private function getInmueblesMapParams($query) {
foreach (explode('_', $query) as $p) {
if (substr_count($p, 'pagina-')) {
$this->params->query['pagina'] = str_replace(array('pagina-'), null, $p);
} elseif (substr_count($p, 'vista-')) {
$this->params->query['vista'] = str_replace(array('vista-'), null, $p);
} elseif (substr_count($p, 'orden-')) {
$this->params->query['orden'] = str_replace(array('orden-'), null, $p);
} elseif (substr_count($p, 'precio-desde-')) {
$this->params->query['precio-desde'] = str_replace(array('precio-desde-'), null, $p);
} elseif (substr_count($p, 'precio-hasta-')) {
$this->params->query['precio-hasta'] = str_replace(array('precio-hasta-'), null, $p);
} elseif (substr_count($p, 'extras-')) {
$this->params->query['extras'] = str_replace(array('extras-'), null, $p);
} elseif (substr_count($p, '-habitacion')) {
$this->params->query['habitacion'] = $p;
} elseif (substr_count($p, '-bano')) {
$this->params->query['bano'] = $p;
} elseif (substr_count($p, 'busqueda-')) {
$this->params->query['busqueda'] = str_replace(array('busqueda-'), null, $p);
}
}
}
private function __checkRecaptchaResponse($response){
// verifying the response is done through a request to this URL
$url = 'https://www.google.com/recaptcha/api/siteverify';
// The API request has three parameters (last one is optional)
$data = array('secret' => '6LeT4HYgAAAAAEBBSxodXmdxlPjy17kh8F4P5HDF',
'response' => $response,
'remoteip' => $_SERVER['REMOTE_ADDR']);
// use key 'http' even if you send the request to https://...
$options = array(
'http' => array(
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
'method' => 'POST',
'content' => http_build_query($data),
),
);
// We could also use curl to send the API request
$context = stream_context_create($options);
$json_result = file_get_contents($url, false, $context);
$result = json_decode($json_result);
return $result->success;
}
}