Reboot de Aprendiendo PHP

php

Valencia, 11/03/2022, G.B.
Hoy me he dado cuenta de pura casualidad, al echar un vistacillo a las estadísticas web, que estáis visitando alguno de los artículos que rescaté de mi antigua web aprendiendophp.net, allá por el 2012, si no me equivoco…. Y también he observado que casi todos los ejemplos que preparé en su día no son accesibles; hace años dejé el dominio…

Por todo ello, y aunque ahora mismo esté centrado en otros temas (CSS, entre otros), voy a ir corrigiendo y arreglando todos los ‘desajustes‘. Eso sí, poquito a poco, sin prisa y sin agobios. Porque me he dado cuenta que intentarlo todo a la vez equivale a conseguir prácticamente nada…

La parte interesante de todo esto es que seguramente me servirá también para retomar el aprendizaje del lenguaje PHP, que ahora mismo tengo casi olvidado. Avisaré.

Bueno, solo era eso. Pero creo que debo dejar algo interesante sobre PHP, si has llegado hasta aquí para tan solo leer mis intenciones… Os dejo un enlace a un post sobre algunos trucos PHP, aunque sea del 2016. Aquí va: https://www.genbeta.com/desarrollo/13-trucos-y-consejos-de-php-que-pueden-hacerte-la-vida-profesional-mas-facil

Bonus Track: PHP Websites & Books</small<

Los shortcodes incluidos en WooCommerce

Los shortcodes incluidos en WooCommerce

Post recuperado de KnowHow…

Valencia, 24/04/2016
WooCommerce dispone de varios shortcodes incluidos que podemos utilizar en nuestra tienda online creada con la plataforma gratuita de e-commerce para WordPress. Podemos utilizarlos añadiendo el shortcode a la página que queramos o incluyendo el código PHP, como más nos interese.

WooCommerce comes with several shortcodes that can be used to insert content inside posts and pages. The following shortcodes are inserted into pages upon installation and should not need to be used anywhere else.

Continuar leyendo “Los shortcodes incluidos en WooCommerce”

Cambiar la versión de PHP en los hosting de 1and1

Post recuperado de KnowHow…

Rápido, si no quieres que te cobren!!

Valencia, 30/05/2016, G.B.
Hoy me ha llamado una amiga comentándome que 1and1 le había cobrado un suplemento por mantener la versión PHP 5.4 en su hosting. Y eso es por cada dominio que tengas con algún gestor de contenido que necesite PHP, como por ejemplo WordPress, PrestaShop, etc. 
Para cambiar la versión de PHP tan solo tienes que acceder al Panel de control de tu hosting en 1and1, elegir la opción Ajustes de PHP y establecer una versión superior en cada uno de las webs (incluidos los subdominios) en los que tengas instalado un gestor de contenidos moderno. 
Probablemente la versión de PHP 5.6, la recomendada, sea la más adecuada. a no ser que utilices un gestor de contenidos personalizado, todos los scripts funcionarán correctamente, y en el caso de que no lo hagan, tan solo tendrás que desactivar algún que otro plugin o módulo obsoleto.

Esta es la información que nos da 1and1 al respecto:

Configurar versión PHPUtilice una versión PHP actual para su dominio, que le ofrezca una combinación óptima entre fiabilidad, compatibilidad, rendimiento, seguridad y funcionalidad.Para todos aquellos que quieran o tengan que continuar usando una versión más antigua de PHP sin el apoyo de la comunidad, pueden contar con el Soporte ampliado para PHP de 1&1. Más información sobre versiones soportadas de PHP y 1&1 Soporte ampliado

Os dejo un par de capturas de pantalla al respecto:

Cómo comprimir tu web con GZip y comprobarlo

Un post rápido sobre la compresión de sitios webs y la gestión de la caché

Cómo comprimir tu web con GZip y comprobarloValencia, 09/12/2013, G.B.
Continuando con el tema de la compresión de sitios web utilizado GZip para que cargue más rápido y consumir meos ancho de banda, he probado una herramienta online  de la web GIDNetwork, denominada GIDZip Test; esta es la dirección: www.gidnetwork.com/tools/gzip-test.php. En ella, añadimos la URL de nuestra web y podremos comprobar si está o no comprimida con GZip.

En el caso de que no lo esté, podremos comprimirla añadiendo ‘un poco’ de código PHP a nuestras páginas, o en el caso de WordPress, a uestro archivo de cabecera o header.php. Para ello, visita esta página:
www.gidblog.com/2000/12/compress-your-web-page.

Este es el código PHP a incluir en la cabecera de tu WordPress o web bajo la tecnología PHP:

<?php
ob_start( 'ob_gzhandler' );
?>

Deciros también que en algunos temas o plantillas de WordPress no os funcione, ni siquiera utilizando habilitando la compresión GZip desde la página de opciones de tu WordPress: www.tusitioweb.com/wp-admin/options.php (busca GZip y cambia el valor 0 por 1). ¿Por qué? Pues en mi caso creo que ha sido debido a que una de las webs en concreto ya tiene un código PHP en la cabecera.

Cambio en la página options.php de vuestro WordPress:

También podemos añadir un código a nuestro archivo .htaccess (el de directiva del servidor Apache),  en el cual tenemos alojada nuestra web. Podéis leer más información al respecto en el sitio (estupendo y muy útil, por cierto) Ayudawordpress. En concreto, en este post: Cómo habilitar la compresión Gzip en WordPress sin utilizar plugins. Alguos plugis, como WP Fastest Cache, ya incluyen un código en el archivo .htaccess y te permiten elegir si quieres o no utilizar la compesión GZip. Debo deciros que me ha sido mucho más útil el código PHP en la cabecera de mi sitio…

Por último, comentar que algunos plugins no se ‘llevan’ muy bien con el código PHP de compresión; así me ha ocurrido con Quick Cache en uno de los sitios. ¿La solución? He sustituido el plugin de control de caché por WP Super Cache. Con ello, he solucionado el problema de la compresión GZip en un par de sitios. En otro de ellos, a pesar de haber probado todas las opciones posibles, no ha habido forma. Sospecho que es debido al código PHP de cabecera incorporado en el tema y que ‘no se lleva nada bien’ con el código de compresión anteriormente citado…

En fin, nada es perfecto, ¿verdad? Si alguien tiene algo que comentar al respecto o alguna posible solución, los comentarios serán muy bien venidos. De todas formas, seguiré probando cosas. Hasta pronto!

Un formulario de contacto en HTML y PHP

Abril 2016: Post recuperado de Aprendiendo PHP (web ya inactiva)

Valencia, 17/07/2013, G.B.
Aunque un tanto ‘alejado’ de la ‘marcha’ habitual de Aprendiendo PHP antes de su parada, voy a seguir incluyendo pequeñas ‘utilidades’, códigos que os pueden servir. Más adelante volveré con la ‘temática’, el orden que he pensado seguir en este blog. Pero ahora mismo, y tras el re-arranque la semana pasada de Aprendiendo PHP, me apetece ir por este camino, aunque un poco más adelante vuelva a la ‘normalidad’.

Sin más, paso a dejaros un pequeño sistema de formulario de contacto con HTML y PHP. Consta de 3 archivos, uno en HTML y 2 en PHP:

  • contacta.html (la página del formulario propiamente dicha)
  • enviar_correo.php (el código PHP del formulario)
  • enviado.php (la página que nos indica si ha habido algún error o todo ha ido bien)

Este ‘sistema’ lo leí en un tutorial que ahora mismo no recuerdo, pero que buscaré e incluiré aquí como referencia. Lo utilizo desde hace ya algún tiempo en un par de webs; en concreto en un par de directorios de enlaces. el de INDAGA.net y el de Webcontenidos.es. Funciona perfectamente. tan solo le he añadido algunas pequeñas variaciones, si no recuerdo mal. Bien, veamos como funciona:

Primero creamos un archivo HTML y lo denominamos, por ejemplo, contacta.html. Os adjunto el código. Por supuesto, deberéis cambiar todas las referencias a esta web, así como las URLs absolutas que adjunto y que hacen referencia a este sitio (www.aprendiendophp.net):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Contactar con AprendiendoPHP.net </title>
<meta name="title" content="AprendiendoPHP.net" />
<meta http-equiv="title" content="AprendiendoPHP.net" />
<meta name="keywords" content="aprender php. aprendiendo php, php, guillermo beltran pilato" />
<meta http-equiv="description" content="Aprendiendo PHP" />
<meta name="author" content="Guillermo Beltr⮠Pilato" />
<meta name="distribution" content="all" />
<meta name="robots" content="all" />
<meta name="revisit" content="30 days" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="http://www.aprendiendophp.net/wp-content/themes/deepblue/style.css" />
<link href="http://www.aprendiendophp.net/favicon.ico" rel="shortcut icon" />
<meta name="description" content="Contactar con Aprendiendo PHP">
</head>
<body>
<div align="center">
<form action="enviar_correo.php" method="post">
<p>
<br />
<b>Tu Nombre:<b>
<input name="name" type="text" id="name" size="40" />
</p>
<p><b>Tu email:</b>
<input name="email" type="text" id="email" size="42" />
</p><br />
<p>
<b> Escribe tu mensaje o consulta:</b>
</p>
<textarea name="query" cols="46" rows="20" id="query"></textarea>
<p>
<input name="submit" type="submit" class="boxx1" value="Enviar mensaje" />
</p>
</form>
<!-- <p align="center"> Si el correo se ha enviado correctamente, <br />volver&aacute;s a la p&aacute;gina principal del directorio</p><br /><br /> -->
<p><a href="http://www.aprendiendophp.net" alt="AprendiendoPHP.net">www.aprendiendophp.net</a>
</div>
</body>
</html>
Como podéis observar, en este código HTML, además de los meta tags, vemos un formulario cuya acción al enviarlo nos remite a la página: enviar_correo.php. Este es el código PHP de la página, que es la que hace que funcione el formulario:
<?
/* Para AprendiendoPHP.net */
$mailto = 'tuemail@direccioncorreo.com'; // PON AQUÍ TU DIRECCIÓN DE CORREO ELECTRÓNICO, DONDE QUIERES QUE TE LLEGUE EL CONTACTO
$returnpage = 'http://www.aprendiendophp.net/enviado.php'; // INSERTA AQUÍ LA PÁGINA A LA QUE QUIERES QUE VUELVA EL USUARIO TRAS ENVIAR EL CONTACTO
$sitename = '[AprendiendoPHP.net - Contacto]'; // INSERTA AQUÍ EL NOMBRE DE TU SITIO; APARECERÁ EN EL ASUNTO DEL EMAIL QUE RECIBAS
/* NO EDITES NADA TRAS ESTAS LÍNEAS, A NO SER QUE SEPAS LO QUE ESTÁS HACIENDO */

$name = $_POST['name'];
$email = $_POST['email'];
$enquiry = stripslashes($_POST['query']);

if (!$name) {
print("<strong>Error:</strong> Escribe tu nombre.<br/><br/><a href='javascript:history.go(-1)'>Volver</a>");
exit;
}

if (!$email) {
print("<strong>Error:</strong> Por favor, escribe tu direcci&oacute;n de e-mail.<br/><br/><a href='javascript:history.go(-1)'>Volver</a>");

exit;

}

if (!$enquiry) {
print("<strong>Error:</strong> Por favor, escribe un mensaje.<br/><br/><a href='javascript:history.go(-1)'>Volver</a>");

exit;

}

if (!eregi("^[a-z0-9]+([-_.]?[a-z0-9])+@[a-z0-9]+([-_.]?[a-z0-9])+.[a-z]{2,4}", $email)){

print("<strong>Error:</strong> Este email no es v&aacute;lido, por favor escribe una direcci&oacute;n de e-mail v&aacute;lida<br/><br/><a href='javascript:history.go(-1)'>Volver</a>");

exit;

}

$message = "n$name te ha enviado el siguiente mensaje:nn$enquirynn Sus datos son:nnNombre: $namenCorreo: $emailnn";

mail($mailto, "$sitename Petición de contacto de $name", $message, "From: $email");

header("Location: " . $returnpage);

?>
Una vez el usuario ha cumplimentado los campos de nuestro formulario en HTML (la página contacta.html) y enviado así la petición de contacto, el archivo enviar_contacto.php se encargará de validar la petición y enviarla al correo que le hayamos determinado a través de la función $mailto. Si todo es correcto, la página enviado.php será la encargada de decir al usuario si todo ha ido bien o si ha habido algún error. Este es el código de dicha página:
<?php 
echo '<h3>Su mensaje se ha enviado satisfactoriamente</h3>';
echo '<p>En breve contactaremos con usted. Muchas gracias por su inter&eacute;s</p>';
echo '<p><a href="http://www.aprendiendophp.net" target="_self">Volver a la Home</a> de AprendiendoPHP.net</p>';
?>
Y con estos 3 archivos, ya tenemos montado nuestro formulario de contacto con validación incluida.  Podéis comprobarlo aquí: Contactar con Aprendiendo PHP. Eso sí, el tema de los formularios en PHP lo veremos más adelante, esto solo era un pequeño ‘adelanto’, valga la redundancia…
Hasta pronto!

Un ejemplo del uso de condicionales en WordPress

Abril 2016: Post recuperado de Aprendiendo PHP (web ya inactiva)
Valencia, 15/07/2013, G.B.
Vamos a ver un pequeño ejemplo del uso de las instrucciones condicionales en PHP aplicadas al (maravilloso) gestor de contenidos WordPress.

En este caso, vamos a mostrar un determinado mensaje o elemento en determinadas páginas de nuestro blog en WordPress. Para ello, utilizaremos una sentencias If que ya conocemos y haremos que se muestre el código que decidamos, como por ejemplo un mensaje o un ‘trozo’ de código HTML, en la barra lateral de nuestro blog (archivo sidebar.php) siempre y cuando no sea la página principal. Como ejemplo sencillo, vamos a crear un texto en H2 en nuestra barra lateral que contenga lo siguiente:

Esto solo se muestra en el sidebar si no es la página principal

Tendremos que modificar nuestro archivo sidebar.php. El código, que añadiremos es muy sencillo:

<?php if (!(is_home() )) { ?>
<h2> Esto solo se muestra en el sidebar si no es la página principal</h2>
<?php } ?>

 Para más información al respecto, visita el Codex de WordPress: http://codex.wordpress.org/Conditional_Tags

Un ejemplo del uso de condicionales en WordPress

Valencia, 15/07/2013, G.B.
Vamos a ver un pequeño ejemplo del uso de las instrucciones condicionales en PHP aplicadas al (maravilloso) gestor de contenidos WordPress.

En este caso, vamos a mostrar un determinado mensaje o elemento en determinadas páginas de nuestro blog en WordPress. Para ello, utilizaremos una sentencias If que ya conocemos y haremos que se muestre el código que decidamos, como por ejemplo un mensaje o un ‘trozo’ de código HTML, en la barra lateral de nuestro blog (archivo sidebar.php) siempre y cuando no sea la página principal.

Como ejemplo sencillo, vamos a crear un texto en H2 en nuestra barra lateral que contenga lo siguiente:

Esto solo se muestra en el sidebar si no es la página principal

Tendremos que modificar nuestro archivo sidebar.php. El código, que añadiremos es muy sencillo:

<?php if (!(is_home() )) { ?>
<h2> Esto solo se muestra en el sidebar si no es la página principal</h2>
<?php } ?>

 Para más información al respecto, visita el Codex de WordPress: http://codex.wordpress.org/Conditional_Tags

Averiguar la versión de PHP de tu servidor web

Otro post para ayudar al re-arranque de Aprendiendo PHP…

Valencia, 13/07/2013, G.B.
Bueno, aquí va otro post para poner de nuevo ‘en el mapa’ a Aprendiendo PHP… En este caso se trata de algo de lo que ya hemos hablado, aunque todavía no había puesto un ejemplo práctico. Se trata de averiguar la versión de PHP de tu servidor (así como otros parámetros…), para poder ajustar tu código a la misma. Para ello, simplemente debemos crear un archivo .php con un pequeño código PHP y subirlo a nuestro servidor. El código del archivo  PHP es el siguiente:

<?php
phpinfo();
?>

 Yo he creado una página .ph p con ese código y la he subido al directorio raíz de mi sitio, de mi hosting. Al escribir la URL http://www.aprendiendophp.nes/phpInfo.php obtendré una página interpretada que me mostrará la versión de PHP qu utiliza mi servidor.

Haced la prueba y podréis comprobarlo por vosotros mismos. Hasta pronto!

Iniciando el tema de Smarty

Iniciando el tema de SmartyQuiero iniciar una sección en este blog de INDAGA,net sobre la tecnología Smarty, utilizada en varios y conocidos CMS o gestores de contenidos como Joomla!, PHPLD (como el directorio de INDAGA.net) y PrestaShop, por poner solo algunos ejemplos significativos (y que yo tengo que trastear, quiera o no). El sitio oficial de Smarty es www.smarty.net.

¿Y qué es Smarty? Smarty es un Template Engine, una librería que nos permite separar el diseño del código en nuestra página web, algo esencial para hacerla mucho más flexible, potente y fácil de mantener. También podemos describirlo como un motor compilador de plantillas para PHP. Obviamente,  para poder usar la tecnología Smarty es necesario que nuestro servidor web soporte el lenguaje de script PHP. La inmensa mayoría de los hosting webs actuales soportan PHP y MySQL bajo el servidor de código libre Apache, así que tranquilos. La extensión de los archivos de Smarty es .tpl, abreviatura o acrónimo de Template Library.

Si instalamos algún gestor de contenidos como los anteriormente mencionados, Smarty ya estaré listo para ser utilizado. Pero si quisiéramos utilizarlo sin un gestor de contenidos en el cual ya está incluido, podríamos hacerlo perfectamente descargando la librería de Smarty de forma gratuita en la siguiente dirección: www.smarty.net/download.

El manual oficial de Smarty en castellano lo tenéis en la siguiente dirección: www.smarty.net/docsv2/es y una lectura que os recomiendo para empezar a conocer a Smarty es la siguiente: Tutorial introducción a Smarty.

Por mi parte, iré tratando el tema de Smarty en este mismo blog, ya que lo necesito tanto para el directorio de enlaces como para futuras webs. Además, el saber no ocupa lugar, al menos eso dicen…

Instrucciones iterativas en PHP (II): bucles Foreach (I)

Estructuras de control de flujo en PHP

 

Valencia, 25/10/2012, G.B.
La siguiente instrucción iterativa en PHP que vamos a ver es el bucle foreach. Foreach nos permite iterar o ‘enunciar’ cada elemento de una matriz, vectorarray. En otras palabras, nos permite ‘recorrer’ todos los datos de una matriz, array o vector.

 

La diferencia entre el bucle For y el bucle Foreach es que cuando se utiliza el bucle foreach se ejecuta todo lo que está escrito en la instrucción iterativa, sin tener en cuenta ningún contador. En cambio, al utilizar el bucle for, se realizan las instrucciones un determinado número de veces, dependiendo del contador: “hazlo X veces”.  Así, en las instrucciones foreach no se pueden producir errores, siempre y cuando estén bien escritas, claro.

El bucle foreach tiene dos usos:
1) Mostrar todos los datos de un array
2) Mostrar un valor concreto del array

La sintáxis de foreach del primer uso (1), para recorrer y mostrar todos los datos de la matriz o  array es:

identificador de la matriz o vector; expresión con el operador ‘as’; variable que identifica cada uno de los elementos de la matriz; sentencias o instrucciones a realizar:

O lo que es lo mismo: 

foreach (array as $valor) {
instrucción;
}

Veámoslo con un sencillo ejemplo que recorre todos los valores de la matriz o array y los imprime con la instrucción echo, añadiendo un salto de línea en HTML (<br />) tras cada uno de los elementos recorridos y mostrados de la matriz $colores:

<?php
$colores = array("blanco", "azul", "verde manzana", "salmón");
foreach ($colores as $pintura) {
echo "Color: <b>$pintura</b><br />";
}
?>

Ejecutar ejemplo

El segundo uso de foreach (2) es para mostrar un determinado valor de la matriz. Pero será en el próximo post, y con más ejemplos…

 

Lecturas recomendadas:
foreach (PHP Manual)
Foreach PHP

Instrucciones iterativas en PHP: bucles For

php

Estructuras de control de flujo en PHP

Valencia, 02/10/2012
El lenguaje PHP dispone también de un tipo instrucciones llamadas iterativas o de repetición ‘heredadas’  del lenguaje C. Son los conocidos ‘bucles‘, instrucciones que realizan una determinada acción un número determinado de veces que se especifica a través de un contador. Es como si diéramos cuerda a una instrucción para que se realice hasta que finalice el contador que hemos especificado, el ‘paso’, por llamarlo de algún modo. Se llaman bucles porque se repiten hasta que la condición deja de cumplirse, o lo que es lo mismo, se evalúa como falsa (FALSE).

Las instrucciones iterativas o bucles en PHP son las siguientes:

    • for
    • foreach
    • while
    • do… while

Veamos la primera de ellas, las  instrucciones o bucles for. Su sintaxis es la siguiente:

for ([Inicialización de la variable] ; [Condición] ; [Incremento o decremento de la variable])
{
[Instrucciones];
}

O como lo explica el portal oficial PHP.net:

for (expr1; expr2; expr3) sentencia

Veamos algunos ejemplos prácticos para entenderlo mejor:

<?php
/* ejemplo sencillo de bucle for en PHP */
for ($n = 1; $n <= 10; $n++)
{ 
echo "$n <br />";
//añadimos un salto de línea en HTML (<br />)
}
?>

 Lo muestro también con otro formato de visualización: 

<?php
/* ejemplo sencillo de bucle for en PHP */
for ($n = 1; $n <= 10; $n++) {
    echo “$n <br />”; //añadimos un salto de línea en HTML (<br />)
}
?>
Ejecutar ejemplo

EXPLICACIÓN del ejemplo: En primer lugar hemos inicializado la variable $n y le hemos dado el valor 1.Esto sólo se realizará la primera vez.  En segundo lugar, hemos establecido la condición, que la variable $n sea menor de 15 para que se realice la instrucción o sentencia que veremos al final . En  tercer lugar, hemos establecido el ‘paso’ -incremento o decremento- de la variable cada vez que ‘dé una vuelta’, es decir, cada vez que acabe y vuelva a la condición para evaluarla ($n <= 10;). En nuestro ejemplo, ha sido con un incremento de +1 a través del operador de incremento ($n++). Por último, y entre brackets, hemos especificado cuál es la instrucción que debe realizar e bucle for (echo $n;) mientras se cumpla la condición -sea verdadera o TRUE) ($n <= 10;) y con qué incremento ($n++),  $n+1 en nuestro caso. La instrucción for finaliza en cuanto la condición se evalúa como falsa (FALSE): en nuestro primer  ejemplo, en cuanto la variable $n alcanza el valor de 10.


NOTA:
Os debo unos cuantos ejemplos más.  En breve, prometido…

Lecturas recomendadas:
Definición de iteración
Estructura for
Estructuras control PHP