Curso PHP
Curso PHP
WAMPSERVER
http://www.wampserver.com/en/
Descripcin
Paquete bsico para construir
Servidor PHP
WAMP es el acrnimo para
instalaciones Apache, MySQL, PHP
sobre la plataforma Windows que
permite la publicacin de
pginas dinmicas sobre la web y
consta del siguiente Software:
Apache como servidor web.
Mdulo de PHP para Apache.
MySQL como servidor web.
PhpmyAdmin como aplicacin
web para poder acceder a la base de
datos.
https://httpd.apache.org/download.cgi
http://php.net/
http://windows.php.net/download#php-5.6
https://www.mysql.com/
https://www.mysql.com/downloads/
Descripcin
Servidor web (software encargado de responder
a las peticiones de los clientes a travs de las
solicitudes que realizan con el navegador
utilizado).
base de datos.
Control de acceso basado en una
base de datos de administracin.
Etc.
Mi WampServer
Instalacin
Una vez que est todo instalado se coloca en la barra de tareas un icono que
representa el servicio WampServer. Para que todos los servicios se arranquen es
necesario acceder a ese icono y activarlos. El icono representado y las opciones
que presenta son las siguientes:
Para arrancar los servicios cuando el icono aparece de color magenta es hacer
click sobre dicho icono y aparecern las siguientes opciones:
Desde
esta
ventana
se
puede
acceder
diferentes opciones:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Desactivar el sitio
Para que se pueda visualizar correctamente la pgina PHP, cmo mnimo debe de
estar arrancado el servicio Apache y PHP.
Estructura de directorios
Una vez que se ha descargardo el paquete WampServer y se ha instalado en
local, se crear una estructura de directorios que van a formar parte de nuestro
sitio web.
Las carpetas que se crean son las siguientes:
C:\wamp
C:\wamp\www
Estilos
Recursos
Ficheros
Extras
Etc
FICHEROS DE CONFIGURACIN
La instalacin de los servicios de Apache, PHP y MySQL a travs del paquete
Wamp es de suma facilidad a travs del asistente indicado. Sin embargo, estos
servicios se configuran con los parmetros por defecto ms comunes para que el
sistema empiece a funcionar.
PRESTA ATENCIN
A travs del men de configuracin de Wamp se puede acceder a los ficheros de
configuracin indicados anteriormente. Es MUY IMPORTANTE, que cada vez que
se haga un cambio en alguno de esos ficheros los servicios se tengan que
reiniciar, para que surjan efecto.
1.2.1. PHP.INI
Sin embargo, puede variar segn la instalacin realizada. Dentro del fichero de
configuracinphp.ini se describen, entre otras cosas:
Las extensiones de PHP que se deben activar.
Las rutas para la subida de ficheros mediante protocolo POST.
Los tiempos de ejecucin de ficheros PHP.
El uso de la memoria RAM.
Etc.
Descripcin
short_open_tag =
Of
max_execution_tim
e = 30
post_max_size =
8M
memory_limit =
128M
error_reporting =
E_ALL
ENLACE
Para una lista completa de todas las opciones de las que se disponen en este fichero
podemos acceder a la siguiente direccin web:
http://php.net/manual/es/ini.core.php
1.2.2. HTTPD.CONF
Descripcin
Listen
DocumentRo
ot
LogLevel
warn
AddType
application
PRESTA ATENCIN
En ocasiones es una buena solucin enlazar el servicio web Apache a un puerto
alternativo, como por ejemplo el 8080. En este caso cuando se soliciten pginas al
servidor web se tendr que indicar el puerto asociado de la siguiente manera.
http://17.0.0.1:8080
ENLACE
Para una lista completa de todas las opciones de las que se disponen en este fichero
podemos acceder a la siguiente direccin web:
http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-es-4/s1-apache-
config.html
2. DESARROLLO EN LOCAL
Con el software que compone el paquete WAMP (Apache, Php, MySQL), y que se ha
detallado en los apartados anteriores, disponemos de los recursos necesarios para el
desarrollo de pginas web dinmicas.
Hay que hacer constar que la instalacin del paquete WAMP se realiza en local, o sea en
nuestro propio ordenador. Para ello hay que disponer de una mquina con los recursos
suficientes para que ese software funcione de manera correcta y fluida.
Todas las pruebas, diseos, acceso a base de datos se harn en local. Por lo tanto no se
va a poder acceder desde Internet o desde una acceso externo a las pginas que estemos
diseando en ese momento.
La forma de trabajar en el desarrollo web sera la siguiente:
Anlisis y creacin de las pginas a desarrollar en local.
Anlisis y creacin de la base de datos a crear ( si es necesaria ) en
local.
Subir todos los ficheros que componen las pginas php y la base de
3. EDITORES DE CDIGO
Los editores de cdigo facilitan la labor de programacin en cualquier lenguaje, y en el
caso que nos ocupa en este curso, en PHP. Un buen editor puede hacer nuestro trabajo
ms eficiente, pues suele tener funciones especiales que nos ayuda a codificarciertas
tareas que son repetitivas.
Tambin es muy comn que las palabras reservadas aparezcan en otro color, e incluso
el sangrado de las lneas de cdigo que permiten diferenciar bloques dentro de un
mismo programa.
Las opciones a la hora de elegir el compaero optimo para programar son muy variadas,
y en muchos casos estn optimizadas para diferentes tipos de proyectos o lenguajes.
A modo de ejemplo se muestra una lista de diferentes editores que pueden ser usados
para la programacin en PHP, y la direccin web donde se pueden descargar el
sofware y manuales sobre su funcionamiento.
Programa
URL de descarga
Notepad ++
https://notepad-plus-plus.org/
Sublime Text
http://www.sublimetext.com/
Light Table
http://lighttable.com/
Vim
http://vim-latex.sourceforge.net/
Brackets
http://brackets.io/
Geany
http://www.geany.org/
GNU Emacs
https://www.gnu.org/software/emacs/
HAZLO T MISMO
Descarga el editor Notepad ++ e instlalo en tu ordenador. Localiza el manual de
usuario y practica las principales funcionales de este editor.
Cuando ya queremos publicar nuestro sitio web, debemos de elegir a que hosting
subirlo. Para ello hay que tener en cuenta una serie de cuestiones, pues de ello depende
de que nuestro desarrollo funcione de igual manera a como lo hace en local.
Entre las caractersticas a tener en cuenta caben destacar las siguientes:
Disco duro: Cantidad de espacio que vamos a poder usar en el
Nmero
EJEMPLO
Algunos ejemplos de hosting son:
Hostinger: http://www.hostinger.es/
Webempresa: http://www.webempresa.com/
Dinahosting: https://dinahosting.com/
HAZLO T MISMO
Investiga por internet cual es el plan
empresa Dinahosting y que servicios ofrece.
ms
econmico
que
ofrece
la
ACTIVIDAD
Crear un tema de debate en el foro para comentar porque no es conveniente
trabajar directamente en los ficheros en remoto.
Conceptos
Cdigo embebido: Cuando se colocan secciones de cdigo de programacin
(como PHP) dentro de una pgina HTML, estamos hablando de cdigo
embebido.
SABAS QUE...?
Que la direccin Ip 127.0.0.1 corresponde a http://localhost. Te animo a que
coloques ambas url en el navegador y vers que obtendrs el mismo resultado.
CONCEPTOS
QU ES PHP?
Ejemplo
<html>
<head>
<title> Ejemplo PHP </title>
</head>
<body>
La primera pgina
</body>
</html>
Ejemplo
<html>
<head>
<title> Ejemplo PHP </title>
</head>
<body>
La primera pgina Html
<?php
Html
os comentarios en los script php se indican con los caracteres // si ocupa una
sla lnea.
Si los comentarios ocupan varias lneas se pueden incluir entre los smbolos /* y
*/.
Ejemplo
<html>
<head>
<title> Ejemplo PHP </title>
</head>
<body>
<?php
echo
"Hola
?>
</body>
</html>
Mundo!";
Concepto
El comando echo simplemente muestra el contenido que se incluye entre comillas en la
pgina html. Todas las instrucciones del script PHP deben finalizar con el smbolo ;
El cdigo anterior se puede desarrollar utilizando cualquier editor de cdigo de los
indicados en el tema anterior. En este caso se ha utilizado Notepad ++. Una vez que se
haya finalizado la edicin se ha de grabar con la extensin .php. Por ejemplo lo
podemos llamar prueba.php.
A partir de este momento, y teniendo en cuenta de que el Servidor Apache debe de estar
arrancado, si en el navegador escribimos http://localhost/pruebas/prueba.php se debe de
obtener el siguiente resultado.
2.
3.
4.
5.
f.
g.
http://mysql.conclase.net/curso/?cap=007
Desde la lnea de comandos mysql:
Cada conjunto de relaciones que componen un modelo completo forma una base de datos. Desde el
punto de vista de SQL, una base de datos es slo un conjunto de relaciones (o tablas), y para
organizarlas o distinguirlas se accede a ellas mediante su nombre. A nivel de sistema operativo, cada
base de datos se guarda en un directorio diferente.
Debido a esto, crear una base de datos es una tarea muy simple. Claro que, en el momento de crearla,
la base de datos estar vaca, es decir, no contendr ninguna tabla.
Vamos a crear y manipular nuestra propia base de datos, al tiempo que nos familiarizamos con la
forma de trabajar de MySQL.
Para empezar, crearemos una base de datos para nosotros solos, y la llamaremos "prueba". Para crear
una base de datos se usa una sentencia CREATE DATABASE:
mysql> CREATE DATABASE prueba;
Query OK, 1 row affected (0.03 sec)
mysql>
Podemos averiguar cuntas bases de datos existen en nuestro sistema usando la sentencia SHOW
DATABASES:
mysql> SHOW DATABASES;
+--------------------+
| Database
|
+--------------------+
| mysql
|
| prueba
|
| test
|
+--------------------+
3 rows in set (0.00 sec)
mysql>
A partir de ahora, en los prximos captulos, trabajaremos con esta base de datos, por lo tanto la
seleccionaremos como base de datos por defecto. Esto nos permitir obviar el nombre de la base de
datos en consultas. Para seleccionar una base de datos se usa el comando USE, que no es
exactamente una sentencia SQL, sino ms bien de una opcin de MySQL:
mysql> USE prueba;
Database changed
mysql>
CREAR TABLAS
Veamos ahora la sentencia CREATE TABLE que sirve para crear tablas.
La sintaxis de esta sentencia es muy compleja, ya que existen muchas opciones y tenemos muchas
posibilidades diferentes a la hora de crear una tabla. Las iremos viendo paso a paso, y en poco tiempo
sabremos usar muchas de sus posibilidades.
En su forma ms simple, la sentencia CREATE TABLE crear una tabla con las columnas que
indiquemos. Crearemos, como ejemplo, una tabla que nos permitir almacenar nombres de personas
y sus fechas de nacimiento. Deberemos indicar el nombre de la tabla y los nombres y tipos de las
columnas:
mysql> USE prueba
Database changed
mysql> CREATE TABLE gente (nombre VARCHAR(40), fecha DATE);
Query OK, 0 rows affected (0.53 sec)
mysql>
Hemos creado una tabla llamada "gente" con dos columnas: "nombre" que puede contener cadenas
de hasta 40 caracteres y "fecha" de tipo fecha.
Podemos consultar cuntas tablas y qu nombres tienen en una base de datos, usando la
sentencia SHOW TABLES:
mysql> SHOW TABLES;
+------------------+
| Tables_in_prueba |
+------------------+
| gente
|
+------------------+
1 row in set (0.01 sec)
mysql>
Pero tenemos muchas ms opciones a la hora de definir columnas. Adems del tipo y el nombre,
podemos definir valores por defecto, permitir o no que contengan valores nulos, crear una clave
primaria, indexar...
La sintaxis para definir columnas es:
nombre_col tipo [NOT NULL | NULL] [DEFAULT valor_por_defecto]
[AUTO_INCREMENT] [[PRIMARY] KEY] [COMMENT 'string']
[definicin_referencia]
Valores nulos
Para cada columna tambin se puede definir, opcionalmente, un valor por defecto. El valor por
defecto se asignar de forma automtica a una columna cuando no se especifique un valor
determinado al aadir filas.
Si una columna puede tener un valor nulo, y no se especifica un valor por defecto, se usar NULL
como valor por defecto. En el ejemplo anterior, el valor por defecto para poblacion es NULL.
Por ejemplo, si queremos que el valor por defecto para poblacion sea 5000, podemos crear la tabla
como:
mysql> CREATE TABLE ciudad2 (nombre CHAR(20) NOT NULL,
-> poblacion INT NULL DEFAULT 5000);
Query OK, 0 rows affected (0.09 sec)
Claves primarias
Tambin se puede definir una clave primaria sobre una columna, usando la palabra
clave KEY o PRIMARY KEY.
Slo puede existir una clave primaria en cada tabla, y la columna sobre la que se define una clave
primaria no puede tener valoresNULL. Si esto no se especifica de forma explcita, MySQL lo har de
forma automtica.
Por ejemplo, si queremos crear un ndice en la columna nombre de la tabla de ciudades, crearemos la
tabla as:
mysql> CREATE TABLE ciudad3 (nombre CHAR(20) NOT NULL PRIMARY KEY,
-> poblacion INT NULL DEFAULT 5000);
Query OK, 0 rows affected (0.20 sec)
Usar NOT NULL PRIMARY KEY equivale a PRIMARY KEY, NOT NULL KEY o sencillamente KEY.
Personalmente, prefiero usar la primera forma o la segunda.
Existe una sintaxis alternativa para crear claves primarias, que en general es preferible, ya que es ms
potente. De hecho, la que hemos explicado es un alias para la forma general, que no admite todas las
funciones (como por ejemplo, crear claves primarias sobre varias columnas). Veremos esta otra
alternativa un poco ms abajo.
Columnas autoincrementadas
En MySQL tenemos la posibilidad de crear una columna autoincrementada, aunque esta columna
slo puede ser de tipo entero.
Si al insertar una fila se omite el valor de la columna autoinrementada o si se inserta un valor nulo
para esa columna, su valor se calcula automticamente, tomando el valor ms alto de esa columna y
sumndole una unidad. Esto permite crear, de una forma sencilla, una columna con un valor nico
para cada fila de la tabla.
Generalmente, estas columnas se usan como claves primarias 'artificiales'. MySQL est optimizado
para usar valores enteros como claves primarias, de modo que la combinacin de clave primaria, que
sea entera y autoincrementada es ideal para usarla como clave primaria artificial:
mysql> CREATE TABLE ciudad5 (clave INT AUTO_INCREMENT PRIMARY KEY,
-> nombre CHAR(20) NOT NULL,
-> poblacion INT NULL DEFAULT 5000);
Query OK, 0 rows affected (0.11 sec)
mysql>
Comentarios
Adicionalmente, al crear la tabla, podemos aadir un comentario a cada columna. Este comentario
sirve como informacin adicional sobre alguna caracterstica especial de la columna, y entra en el
apartado de documentacin de la base de datos:
mysql> CREATE TABLE ciudad6
-> (clave INT AUTO_INCREMENT PRIMARY KEY COMMENT 'Clave principal',
-> nombre CHAR(50) NOT NULL,
-> poblacion INT NULL DEFAULT 5000);
Query OK, 0 rows affected (0.08 secs)
Language SQL
Consulta SQL
Ejemplo 1
Seleccionar el nombre y la direccin de los contactos de la tabla agenda cuyo id sea mayor de 3,
ordenados por id.
SELECT nombre, direccion FROM agenda WHERE id>3 ORDER BY id
BY `id`
Insertar SQL
Ejemplo
Se inserta un nuevo registro con los siguientes valores
Modificar registros
Sintaxis
UPDATE
SET
"columna_1"
WHERE "condicin";
[nuevo
"nombre_tabla"
valor]
Descripcin:
Ejemplo
Se modifica el telfono del registro cuyo identificador es el 4.
BORRAR REGISTROS
Sintaxis
DELETE
WHERE "condicin"
FROM
"nombre_tabla"
Ejemplo
Borrar el contacto cuyo identificador sea 1.
Actividad
Crea 4 sentencias SQL que realicen lo siguiente:
CUESTIONARIOS
Php
Para qu se utilizan los blogs? Para mostrar informacin sobre un tema especfico.
Tanto en un sitio web esttico como en uno dinmico el servidor devuelve cdigo
Html
Si en una pgina se usa PHP, decimos que es una pgina Dinmica
Cmo se llama la URL de entrada a un sitio Web? Land page
El cdigo Script aparece ... incrustado en el cdigo html
Cmo se llama la secuencia de caracteres que se escribe en el navegador para
acceder a pginas Web? Url
Es obligatorio en un sitio web dinmico acceder a una base de datos? No
Indica una desventaja de un sitio Web dinmicoRequerimiento
tcnicos
superiores a uno esttico
En el paque Wamp, cmo se llama el servidor web? Apache
Cual es el mximo tiempo por defecto para un script php que viene
indicado en php.ini? 30
Permite Filezilla abrir varias sesiones con diferentes servidores? S
Qu significa que el cdigo PHP est embebido? Est incrustado en el cdigo Html
Se pueden arrancar por separado los servicios de Wamp? S
Cmo se llama el paquete que instala todo lo necesario para empezar a programar
en PHP? Wamp
Qu subdirectorio est asociado con la direccin http://localhost/tienda/listado.php?
c:\wamp\www\tienda\listado.php
Qu direccin Ip identifica a localhost? 127.0.0.1
Indica una caracterstica de la base de datos MySQL Velocidad b. Continua mejora de
su funcionamiento c. Robustez
Qu puerto por defecto usa el servidor Web para suministrar las pginas Web? 80
Cmo se llama el servidor Web que proporciona Microsoft?
IIS
Cuales son las caractersticas del lenguaje PHP? De alto nivel, de cdigo
abierto e interpretado
Entre qu smbolos se delimita un script PHP? <?php y ?>
Con qu smbolo finaliza todas las instrucciones de un script PHP? ;
Qu extensin debe de tener el fichero que contiene un script PHP? .php
Qu significa que PHP es un lenguaje de alto nivel? Que las sentencias son similares
al lenguaje humano
Indica cual es una fase del desarrollo de un programa Todas son correctas
Qu realiza el comando echo en un script PHP? Devuelve el contenido que se incluye
entre comillas en la pgina html
El cdigo php va embebido en el cdigo html de la pgina WebS
Seleccione una: 6
Cuando se ejecutan las sentencias del bloque ELSE en un sentencia IF? Cuando la
expresin es falsa
Si
Qu atributo de la etiqueta form contiene la URL que procesar la
informacin del formulario? Action
Qu mtodo de envo es ms conveniente si se enva la contrasea en el
formulario HTML? POST
Cual es el atributo de la etiqueta form que se recupera como variable en
el script PHP? Name
Se puede utilizar la funcin isset() tanto en POST como en GET? S.
funcin?
Name
Qu nombre tiene el array que contiene los valores del formulario que se enva por
de varias opciones
Qu puede realizar un script PHP con la informacin enviada desde un formulario?
Todas son correctas3
Para qu sirve la opcin WHERE en una sentencia SELECT? Para indicar las
agenda
Con las sentencias DML podemosInsertar registros
obtiene
un registro de la subtabla
Correcta
Punta 1,00 sobre 1,00
Marcar pregunta
Enunciado de la pregunta
El operador * es un operador
Seleccione una:
a. Unario
b. * no es un operador
c. Binario
d. Ternario
Retroalimentacin
La respuesta correcta es: Binario
Pregunta
Correcta
Punta 1,00 sobre 1,00
Marcar pregunta
Enunciado de la pregunta
Cmo se indican los comentarios en un script PHP?
Seleccione una:
a. /? ?/
b. /* /*
c. // //
d. /* */
Retroalimentacin
La respuesta correcta es: /* */
Pregunta
Correcta
Punta 1,00 sobre 1,00
Marcar pregunta
Enunciado de la pregunta
Qu tipo de comillas se utilizan en el array de recuperacin de los campos
del formulario?
Seleccione una:
a. Dobles
b. Dobles o simples.
c. Simples
Retroalimentacin
La respuesta correcta es: Simples
Pregunta
Correcta
Punta 1,00 sobre 1,00
Marcar pregunta
Enunciado de la pregunta
Qu ocurre cada vez que se ejecuta la sentencia mysqli_fetch_row()?
Seleccione una:
b. Ninguna es correcta
Retroalimentacin
La respuesta correcta es: Se obtiene un registro de la subtabla
Pregunta
Correcta
Punta 1,00 sobre 1,00
Marcar pregunta
Enunciado de la pregunta
Indique un motivo por el cual isset pueda devolver false.
Seleccione una:
a. Porque el campo se haya querido dejar vaco
Retroalimentacin
La respuesta correcta es: Todas son correctas
Pregunta
Correcta
Punta 1,00 sobre 1,00
Marcar pregunta
Enunciado de la pregunta
Para qu se utilizan los blogs?
Seleccione una:
a. Para vender productos por internet.
b. Ninguna es correcta
Retroalimentacin
La respuesta correcta es: Para mostrar informacin sobre un tema
especfico.
Pregunta
Correcta
Punta 1,00 sobre 1,00
Marcar pregunta
Enunciado de la pregunta
Qu direccin Ip identifica a localhost?
Seleccione una:
a. 127.0.0.1
b. 128.0.0.1
c. 127.0.1.1
d. 127.1.0.1
Retroalimentacin
La respuesta correcta es: 127.0.0.1
Pregunta
Correcta
Punta 1,00 sobre 1,00
Marcar pregunta
Enunciado de la pregunta
A travs de que direccin URL se accede a phpmyadmin en local?
Seleccione una:
a. http://www/localhost/phpmyadmin/
b. http://phpmyadmin/
c. http://localhost/www/phpmyadmin/
d. http://localhost/phpmyadmin/
Retroalimentacin
La respuesta correcta es: http://localhost/phpmyadmin/
Pregunta
Correcta
Punta 1,00 sobre 1,00
Marcar pregunta
Enunciado de la pregunta
Qu palabra reservada tenemos en Switch para cuando no coincide ningun
valor con la variable a comparar?
Seleccione una:
a. unique
b. break
c. last
d. default
Retroalimentacin
La respuesta correcta es: default
Pregunta
10
Correcta
Punta 1,00 sobre 1,00
Marcar pregunta
Enunciado de la pregunta
Qu puede realizar un script PHP con la informacin enviada desde un
formulario?
Seleccione una:
a. Interactuar con una base de datos
Retroalimentacin
La respuesta correcta es: Todas son correctas