Skip to content

IF Shorthand (if corto, if acortado)

Php

 

 

Basic True / False Declaration

$is_admin = ($user['permissions'] == 'admin') ? true : false;

Conditional Welcome Message

echo 'Welcome '.($user['is_logged_in'] ? $user['first_name'] : 'Guest').'!';

Conditional Items Message

echo 'Your cart contains '.$num_items.' item'.($num_items != 1 ? 's' : '').'.';

Conditional Error Reporting Level

error_reporting($WEBSITE_IS_LIVE ? 0 : E_STRICT);

Conditional Basepath

echo '<base href="http'.($PAGE_IS_SECURE ? 's' : '').'://mydomain.com" />';

Nested PHP Shorthand

echo 'Your score is:  '.($score > 10 ? ($age > 10 ? 'Average' : 'Exceptional') : ($age > 10 ? 'Horrible' : 'Average') );

Leap Year Check

$is_leap_year = ((($year % 4) == 0) && ((($year % 100) != 0) || (($year %400) == 0)));

Conditional PHP Redirect

header('Location: '.($valid_login ? '/members/index.php' : 'login.php?errors=1')); exit();
Continue reading "IF Shorthand (if corto, if acortado)"

Verificar contenido URL

Php

 

 

 

En este ejemplo se busaca la palabra 'cadena' dentro de la URL

if (strpos($_SERVER['REQUEST_URI'], "cadena")) {
    //que hacer ya que si encontró
}

Seguridad RESTful API

Php

Config.php donde definiremos los datos de conexión a la base de datos y el API Key que utilizaremos para validar el consumo del servicio. Este API Key puedes sustituirlo por un API Key en base de datos por cada cuenta o usuario de tu aplicación por medio de un método dentro del API. Este es el contenido de nuestro archivo Config.php:

Para generar el API Key puedes utilizar cualquier método de codificación. Para este ejemplo utilicé MD5() combinado con  uniqid() de PHP.

Indicaremos consultas a los headers o cabeceras de request e indicaremos la codificación charset que permita caracteres latinos o especiales como acentos, etc. Por último nos aseguraremos de que cualquier tipo de navegador web o cliente pueda acceder al API via P3P:

Luego, procederemos a cargar nuestro archivo de configuración para tener disponible cualqueir tipo de información como rutas, variables, constantes, etc., necesarias para el funcionamiento de nuestro API:

Nuestra segunda función authenticate(), nos permitirá validar la consulta a los métodos de nuestro API como una forma de seguridad y así garantizar que controlemos quien puede acceder y consumir el API partiendo de que hemos declarado un Access-Control-Allow-Origin:*. Esto es muy similar a como se utiliza cualquier API disponible como Facebook y Google. Este API KEY puede ser sustituido por un valor de una base de datos si deseas utilizar acceso controlado o RBAC en tu API.

Como podemos ver, a la función echoResponse() le pasamos solo un valor de $route, que es un método reservado de Slim Framwork que es definido para la ruta de acceso o endpoint que se consumirá. Por ejemplo, http://localhost/restapi/v1/auto, siendo /auto nuestro endpoint o método de consumo. Capturamos las cabeceras o headers, en este caso apache_request_headers() ya que estamos utilizando Wamp o cualquier otro paquete de desarrollo *AMP (LAMP, WAMP).

Continue reading "Seguridad RESTful API"

PHP Jasper Reports XML

PhpReportes




Orden de los archivos y libreria 



<?php
    include_once 'phpjasperxml/PHPJasperXML.inc.php';//in this case, phpjasperxml is your submodule from github
    include_once '../config/dbconfig.php';

    $report=$_GET['rpt_name'];

    $PHPJasperXML = new PHPJasperXML("en","TCPDF"); //if export excel, can use PHPJasperXML("en","XLS OR XLSX");

    //$PHPJasperXML->debugsql=true;

    $PHPJasperXML->arrayParameter = array('para1'=>'1','para2'=>'2');

    $PHPJasperXML->load_xml_file($report.'.jrxml'); //if xml content is string, then $PHPJasperXML->load_xml_string($templatestr);

    //$PHPJasperXML->sql = $sql;  //if you wish to overwrite sql inside jrxml
    $dbdriver="mysql";//natively is 'mysql', 'psql', or 'sqlsrv'. the rest will use PDO driver. for oracle, use 'oci'
    $PHPJasperXML->transferDBtoArray($GLOBALS['dbhost'] ,$GLOBALS['userdb'] ,$GLOBALS['passdb'] ,'south2018',$dbdriver);

    //$PHPJasperXML->outpage('I=render in browser/D=Download/F=save as server side filename according 2nd parameter','filename.pdf or filename.xls or filename.xls depends on constructor')
    $PHPJasperXML->outpage('I');

PhpJasperXML

Php
<?php
include_once 'path_to_phpjasperxml/PHPJasperXML.inc.php';//in this case, phpjasperxml is your submodule from github

$PHPJasperXML = new PHPJasperXML("en","TCPDF"); //if export excel, can use PHPJasperXML("en","XLS OR XLSX"); 
//$PHPJasperXML->debugsql=true;	
$PHPJasperXML->arrayParameter = array('para1'=>'1','para2'=>'2');
$PHPJasperXML->load_xml_file('file1.jrxml'); //if xml content is string, then $PHPJasperXML->load_xml_string($templatestr);
//$PHPJasperXML->sql = $sql;  //if you wish to overwrite sql inside jrxml
$dbdriver="mysql";//natively is 'mysql', 'psql', or 'sqlsrv'. the rest will use PDO driver. for oracle, use 'oci'

$PHPJasperXML->transferDBtoArray(DBSERVER,DBUSER,DBPASS,DBNAME,$dbdriver);
$PHPJasperXML->outpage('I');  //$PHPJasperXML->outpage('I=render in browser/D=Download/F=save as server side filename according 2nd parameter','filename.pdf or filename.xls or filename.xls depends on constructor');
Continue reading "PhpJasperXML"