viernes, 28 de junio de 2013

#NuevoDiseñoBlogProgramacion

Debido al cierre de xunem hosting por venta a otra empresa, el anterior sitio www.programacion.domiweb.net ha sido cancelado, por lo que he tenido
que traspasarlo a http://aprendiendoprogramacion.hol.es/.
Esta algo mas organizado que este blog, aunque por ahora y por seguridad,
seguire poniendo los contenidos en ambos lugares.

#PhpFunciones

Las funciones nos facilitan la reutilización de codigo y que tengamos un
codigo mas legible y ordenado. Para definir una funcion en PHP, hacemos
lo siguiente:
function [nombre funcion]([parametros])
{
[algoritmo]
}
Una función puede devolver un dato, supongamos que necesitamos una
función que nos de la media de dos importes, el código sería:
<html>
<head>
<title>Media</title>
</head>
<body>
<?php
function devuelvemedia ($num1,$num2)
{
$media=$num1/$num2;
return $media;
}
$n1=3;
$n2=2;
$m=devuelvemedia ($n1,$n2);
echo $m;
?>
</body>
</html>
 Al llamar a la funcion el dato devuelto lo guardamos en la variable $m.
Cuando la funcion devuelve dato, tenemos que emplear el comando
return seguido de la variable.

#PhpVectorAsociativo

Este tipo lo hemos empleado sin conocerlo, en otras ocasiones cuando
tratamos el tema de los envios de datos con formularios y recuperamos
la informacion a traves de $_REQUEST, creado por PHP.
Los vectores de este tipo permiten acceder a por medio de un subindice
string (cadena).
Si quisieramos guargar en un vector o matriz el DNI, nombre y telefono
de una persona.
Empleando un vector o matriz con subíndice lo hariamos del siguiente
modo:
<?php
$datos[]="28738154";
$datos[]="Juan Gomez";
$datos[]="638256521";
?>
Haciendolo asi, tenemos que recordar que el subindice 0 equivale al DNI,
el 1 al nombre y el 3 al telefono, esto es facil cuando son pocos campos,
pero cuando se relacionan muchos campos (como en bases de datos) la
tarea se complica y es mas comodo y facil asignar un alias al indice, que es
lo que realizamos con los vectores asociativos.
<?php
$datos['dni']="28738154";
$datos['nombre']="Juan Gomez";
$datos['telefono']="638256521";
echo $datos['nombre'];
?>
Con esto vemos que para mostrar el nombre no hay que indicar su posicion
dentro de la matriz, nos basta con indicar que es nombre que sera el alias
utilizado como indice.

#PhpArchivoTexto

Un punto basico en toda web es poder registrar información en el servidor
y que se pueda recuperar para diversos usos, ya sea con ficheros de textos
o bases de datos.
Comenzaremos por los ficheros de textos.
En este ejemplo se crea un archivo de texto en el que se incluye el nombre y
observaciones, por lo que en la primera pagina incluimos el formulario con
un objeto text y otro textarea.
 <html>
<head>
<title>ArchivoTexto</title>
</head>
<body> <form action="pagrec.php" method="post">
Introduce nombre:
<input type="text" name="nombre">
<br>
Observaciones:
<br>
<textarea name="observaciones" rows="10" cols="40">
</textarea>
<br>
<input type="submit" value="Enviar">
</form>
</body>
</html>

Las propiedades rows y cols que dimensionan el formulario en la
pantalla:
<textarea name="observaciones" rows="10" cols="40">
</textarea>
La otra página (pagrec.php) graba los datos que se introducen en el
formulario:
 <html>
<head>
<title>ArchivoGraba</title>
</head>
<body>
<?php
$ar=fopen("dat.txt","a") or
die("Error");
fputs($ar,$_REQUEST['nombre']);
fputs($ar,"\n");
fputs($ar,$_REQUEST['observaciones']);
fputs($ar,"\n");
fclose($ar);
echo "Los datos se grabaron correctamente.";
?>
</body>
</html>
En primer lugar creamos o abrimos el archivo de texto "dat.txt".
El segundo parámetro de la función fopen indica la forma de apertura de
archivo "a" lo crea o abre para añadir datos al final.
En este ejemplo nos interesa abrirlo para añadir, por lo que usamos el
parámetro "a".
Si el archivo no se puede abrir, se ejecuta la instrucción que se encuentra
luego del operador "or" en nuestro caso llamamos a la función die que finaliza
la ejecución mostrando el mensaje que pusimos.
$ar=fopen("dat.txt","a") or
die("Error");
Para la grabación de datos utilizamos la función fputs que tiene dos parámetros:
la referencia al archivo donde grabamos y el texto que pasamos para grabar.
fputs($ar,$_REQUEST['nombre']);
fputs($ar,"\n");
Para el salto de línea en el archivo de texto, usamos los caracteres \n.
Cuando terminamos con el archivo pasamos a cerrarlo con fclose.
El archivo se crea en el servidor, donde tengamos nuestras webs alojadas.
Para leer un archivo de texto utilizamos la la función fgets, abriendo dicho
archivo en modo lectura.
Utilizaremos el siguiente codigo para mostrar en la pantalla el contenido del
archivo "dat.txt" creado anteriormente.
<html>
<head>
<title>AperturaTexto</title>
</head>
<body>
<?php
$file=fopen("dat.txt","r") or
die("Error al abrir el archivo");
while (!feof($file))
{
$lin=fgets($file);
$saltodelinea=nl2br($lin);
echo $saltodelinea;
}
fclose($file);
?>
</body>
</html>
Mediante el siguiente codigo preparamos el archivo para abrir como solo
lectura “r”, en caso de error se ejecuta el codigo que va después de or.
$file=fopen("dat.txt","r") or
die("Error al abrir el archivo");
La función feof devuelve true si se termina el archivo.
Incluimos la lectura de lineas dentro de una estructura con while, que
mientras no llegue al final del archivo continuara leyendo lineas.
while (!feof($file))
Vamos leyendo una línea completa del archivo con la función fgets:
$lin=fgets($file);
La variable $linea contiene una línea completa del archivo de texto,
inclusive el salto de línea (\n)
Como en html no se hace el salto de linea con \n, pasamos a convertirlo
con la funcion nl2br.
Y pasamos a imprimir el resultado.
$saltodelinea=nl2br($lin);
echo $saltodelinea;
No olvidemos nunca cerrar el archivo con fclose.

jueves, 27 de junio de 2013

#PhpEnvioDatosFormulario

En este ejemplo veremos como se pasan datos a traves de un
formulario, crearemos 2 archivos con el notepad.
<html>
<head>
<title>Formulario de datos</title>
</head>
<body>
<form method="post" action="recep.php">
Introduce nombre:
<input type="text" name="nombre">
<br>
<input type="submit" value="enviar">
</form>
</body>
</html>

El codigo anterior lo nombraremos desde el bloc de notas como
form.php.
Para el envio de datos a traves de un formulario, necesitamos dos paginas
web una con el formulario y otra que recibe los datos.
En el codigo de arriba se incluye un formulario basico en el que se solicita
un nombre y se envia la informacion mediante un boton, en action se incluye
el nombre de la pagina que procesa los datos. Este codigo es un formulario
simple en html, codigo basico de creacion de paginas web.
<html>
<head>
<title>Capta nombre del formulario</title>
</head>
<body>
<?php
echo "El nombre obtenido es:";
echo $_REQUEST['nombre'];
?>
</body>
</html>
Este codigo lo nombraremos como recep.php y lo que realiza es la captura
del nombre introducido en la web anterior y procesarlo, segun las
instrucciones que se establecen en dicho codigo lo que realiza es la
impresion del nombre mediante el comando ECHO que sirve para imprimir
textos o variables en pantalla, con echo $_REQUEST['nombre'] se captura
el dato recibido desde la otra web y se imprime en pantalla; las variables
en php se preceden por $.

#PhpEstructuraRepeticion

Estructuras repeticion con While y For:
<html>
<head>
<title>While</title>
</head>
<body>
<?php
$valor=rand(1,49);
$inicio=1;
while($inicio<=$valor)
{
echo $inicio;
echo "<br>";
$inicio++;
}
?>
</body>
</html>


<html>
<head>
<title>BucleFor</title>
</head>
<body>
<?php
for($rep=1;$rep<=10;$rep++)
{
echo $rep;
echo "<br>";
}
?>
</body>

</html>

Cuando queremos repetir algo x veces mediante codigo una de las
estructuras utilizadas en la mayoria de lenguajes de programacion
es FOR, como pueden observar mediante esta estructura, indicamos
primero el inicio $rep=1, despues indicamos la condicion mientras
$rep<=10 y despues indicamos el incremento de la variable.
Por lo que en el codigo ejemplo lo que se hace es repetir hasta que la
variable rep sea mayor que diez, el incremento se podria poner asi
$rep=$rep+1, pero al poner ++ lo abreviamos.
Esta variable la imprimiremos en pantalla y pondremos un salto de
linea br (en html).
Otra estructura de repeticion es mediante WHILE, en este caso la
estructura interna se repite mientras se cumpla la condicion indicada
mediante while(condicion) ...
En el ejemplo se genera un numero al azar con rand, entre 1 y 49, se da
un valor a inicio y se comprueba si inicio es menor al valor generado,
si es asi se incrementa inicio y se vuelve a comprobar, asi hasta que
inicio supere al valor generado.

#PhpCondicionalIf

Cuando en un programa hay que tomar una decision y elegir una forma
de actuar u otra, se emplean las estructuras condicionales, una de ellas
es IF que es la que veremos ahora.
La estructura se compone de la instruccion IF, seguida entre parentesis
de la condicion que se tiene que cumplir y seguidamente entre llaves lo
que se ejecutara, en caso de no cumplirse pasamos a ELSEIF y por ultimo
a ELSE.
Las instrucciones que se incluyen entre llaves si terminan con punto y coma,
pero no asi la condicion a cumplir, como se observa en el codigo.
En este ejemplo se genera un numero al azar y se comprueba en que intervalo
esta de los programados, indicando en pantalla el resultado.
<html>
<head>
<title>CondicionalIf</title>
</head>
<body>
<?php
$numero=rand(1,999);
echo "El numero elegido es $numero<br>";
if ($numero<=10)
{
echo "Es menor o igual a 10";
}
elseif ($numero<=100)
{
echo "Es mayor que 10 y menor o igual a 100";
}
else
{
echo "Es mayor de 100 y menor de 999";
}
?>
</body>
</html>

miércoles, 26 de junio de 2013

#PhpCadenas

Una variable de este tipo puede almacenar un cierto numero de caracteres
$string1="saludo";
$string2="inicial";
echo $string1." ".$string2;

Para unir cadenas empleamos el punto ".".
Cuando una cadena encerrada entre comillas dobles contiene una variable
en su interior, ésta se trata como tal, por lo tanto se utilizará su contenido
para el almacenamiento.
$minuto=20;
$reloj="Han pasado $minuto minutos";
echo $reloj;
En pantalla se muestra: Han pasado 20 minutos
En la cadena se sustituye el nombre de la variable $minuto, con el contenido
de la misma.
Podemos grabar el codigo en fichero de texto y renombrarlo como nombre.php,
como hemos realizado en anteriores ocasiones, para ver el resultado en el
navegador. Para no repetirme, en los siguientes capitulos no mencionare la
grabacion del archivo y su prueba, para asi dedicar la explicacion al codigo en si,
ya que el resto esta explicado en los primeros pasos.

#PhpVariables

En php las variables comienzan con el signo $, al contrario que en otros
lenguajes, no es necesario definir el tipo de variable, el nombre si es
sensible a mayusculas minusculas, no es lo mismo Variable que variable
o VARIABLE, por lo que debemos acostumbrarnos a escribirlo todo en
minusculas por ejemplo.
Para poner comentarios utilizamos // como se ve  en el codigo.
Una declaracion de variables seria:
$dia = 15; //Se declara una variable de tipo integer (numerica)
$salario = 921.35; //Se declara una variable de tipo double (mas
precision, decimal)
$apellido = "perez"; //Se declara una variable de tipo string (cadena)
$cierto = true; //Se declara una variable boolean (true o false, dos valores
nada mas, verdadero o falso), se utiliza por ejemplo para comprobar si existe
o no algo mediante codigo, o si esta o no pulsado un boton, etc.
En el codigo lo que realmente se hace es declarar las variables anteriores y
mostrarlas por pantalla.
Para comprobarlo abrimos el bloc de notas, copiamos y pegamos el codigo de
abajo, le damos a archivo guardar y que muestre todos los archivos, lo
nombramos como variables.php.
Abrimos la carpeta wamp/www y metemos en ella el archivo creado.
Con el wampserver activo, nos vamos a nuestro navegador y ponemos
localhost/variables.php.
Este codigo sencillo nos permite ver como se declaran variables para almacenar
datos, parte muy importante en cualquier lenguaje de programacion.

<html>
<head>
<title>Variables</title>
</head>
<body>
<?php
$dia = 15; //Se declara una variable de tipo integer
$salario = 921.35; //Se declara una variable de tipo double
$apellido = "perez"; //Se declara una variable de tipo string
$cierto = true; //Se declara una variable boolean
echo "Variable entera:";
echo $dia;
echo "<br>";
echo "Variable double:";
echo $salario;
echo "<br>";
echo "Variable string:";
echo $apellido;
echo "<br>";
echo "Variable boolean:";
echo $cierto;
?>
</body>
</html>

martes, 25 de junio de 2013

#WampServer

Primeramente bajamos el wamp server de aqui: WampServer
Una vez bajado lo ejecutamos para instalarlo en nuestro pc, dejamos
opciones por defecto.
Reinicia el ordenador, despues aparecera en la parte inferior derecha
(donde el reloj de windows), su icono le damos con el raton y
seleccionamos empezar servicios.
Una vez iniciados los servicios podemos ir a la carpeta c:\wamp\www\
(si aceptastes por defecto), en dicha carpeta es donde copiaremos los
archivos *.php y para verlos en accion pondremos en nuestro navegador
web http://localhost/... *.php,  http://localhost/
se incluye el nombre del archivo que hayamos creado para ver su ejecucion
en el navegador web.
Con esto ya podremos realizar las pruebas de php sin tener que subir archivos
a algun hosting.
El Wamp server, instala modulo apache, mysql (base de datos), php.
Mysql lo explicare en breve, por que enlazara con php, todo a su tiempo,
estamos empezando.

#Php Web en mantenimiento

<html>
<head></head>
<body>
<?php
$fecha=date("d");
if ($fecha<=2)
{ echo "sitio en mantenimiento"; }
else
{ echo "sitio en funcionamiento"; } ?>
</body>
</html>
Un ejemplo con mas utilidad
Abrir el bloc de notas y grabar el archivo en la carpeta www del
wampserver, nombrarlo como fecha.php por ejemplo.
Para ejecutarlo abrir el navegador web y poner localhost/fecha.php.
Antes de seguir, os indico que el codigo php se introduce dentro del
codigo html, este codigo php al contrario del html, es interpretado
por el servidor web y mandado como codigo html al navegador del
usuario.
Toda pagina html consta de <html> (inicio del codigo), <head>
(cabecera de la pagina),<body>(cuerpo de la pagina) donde introducimos
el codigo php que se inicia como <?php y cierra con >, el resto va cerrando
hasta que llega a </html> que es la etiqueta de cierre.
En el codigo de este ejemplo mediante la funcion date("d") obtenemos el
nº del dia del mes, el codigo evalua si es menor o igual a 2, para indicar que
esta en mantenimiento o si no cumple la condicion es que esta en
funcionamiento.
Este codigo sirve para poner una web en situacion de mantenimiento
automaticamente, imaginemos que siempre se hace el mantenimiento
los 2 primeros dias del mes.
Las ordenes en php acaban con ; , las variables empiezan siempre con el
simbolo $, el condicional incluido indica si (opcion a cumplir) entonces
(tal) sino cumple entonces (tal).

#Php

Para realizar webs con php es necesario tener algunos conocimientos de html.
Explicare algunas etiquetas de html para tener nociones.
Tambien es recomendable instalar WampServer o similar, para poder probar
el codigo sin tener que alojarlo en un servidor y poder hacer pruebas en
modo local.
Se puede realizar el codigo php con el notepad de windows, guardando el
archivo con la terminacion php en vez de txt.
Primer contacto con php
<html>
<head></head>

<?php
echo "SALUDO INICIAL";
?>
</body>
</html>

El codigo indicado arriba lo podremos escribir en cualquier editor de textos,
nombrandolo como inicio.php, por ejemplo.
Simplemente emite el mensaje SALUDO INICIAL en la web, el comando echo
sirve para mostrar mensajes en la pantalla, ya sean variables, textos o
numeros.
El codigo en si de php comienza con <?php y termina con ?>, el resto del codigo
es una web basica de HTML.
Toda web en html empieza por <html> y acaba con </html>, se compone de
etiquetas que abren y cierran, conteniendo dentro de ellas lo que deseamos
ver en la web.
Despues del inicio indicado viene la cabecera <head></head> donde podemos
mostrar el titulo de la web.
Por ultimo el cuerpo o body <body> </body>, dentro del cual va todo el
contenido de la web, incluyendo el codigo php.