PHP

Generalidades de PHP
El primer ejercicio podría ser realizar un archivo prueba.php3 que incluya el siguiente código: <HTML> <BODY> <?phpinfo();?> </BODY> </HTML> Este aerchivo produce una panorámica en la que se visualizan los parámetros de configuración de Php en el servidor donde se ejecuta el código. Puede ser útil para averiguar la presencia de Php en un servidor o para saber el valor de las variables del sistema (para programadores expertos). Otro ejemplo podría ser el siguiente. <HTML> <BODY> <? echo("Última modificación: ".date("d/m/Y",filemtime($PATH_TRANSLATED))); ?> </BODY> </HTML> Visualiza la fecha de la última modificación de vuestro archivo. Puede ser útil cuando se construyen sitios en la red, porque a menudo nos olvidamos tras una serie de actualizaciones de cambiar la fecha. De esta forma, la página visualizará correctamente la fecha, sin que tengamos que_preocuparnos.

Puede ser útil a todos los programadores web introducir al final de cada archivo de su propio sitio una línea de información sobre el autor (nombre, apellidos, email). Para hacerlo acudimos a la instrucción INCLUDE de Php. Introduciendo el siguiente código al final de vuestras páginas se cargará automátivamente un código html incluido en el archivo /path/codice.txt:

?> el contenido del archivo /path/código.txt")): $file=fopen("/path/counter.txt podría ser: <hr size="1"> Página redactada por <a href="http://mail. Incluso hay unas bibliotecas que implementan las funciones relacionadas a las variables de sesión. ?> Contador en cada página El contador no tiene en cuenta las visitas del mismo usuario durante la misma sesión."r+").Ajustar un archivo <? include("/path/codice.$num). .unipd.txt".20).com/mail/compose/!1!marialozano/4ee357215d3341c06 4bbd820b1a6a828?to=stain@dei. $num=fgets($file.$num). $num=0. fputs($file. print("Visitors: ".txt")."w").it">Alberto Mucignat</a> Podemos introducir un contador en nuestras páginas que se modifique cada vez que se visualizan. else: $file=fopen("/path/counter. fclose($file). endif.katamail. Para contabilizar estas visitas del usuario hay que aprender a configurar los COOKIES y las variables SESSION. $num++.txt". El código tiene que ser: <? if (!file_exists("/path/counter.

"\nTítulo: ". etc. Las páginas tienen que llamarse images/Mon.it".Cargar una imagen Puede que se quiera visualizar. ver seminario html.gif"\">"). etc.". images/Tue. ?> . una imagen diferente.gif. print("<img src="\"images/img". print("<img src="\"images/". Un código simple que gestione esta necesidad puede ser: <? $num=rand(1.".$subject.php3" METHOD="POST"> Nombre y Apellidos:<BR> <INPUT TYPE="text" NAME="name" SIZE="20" MAXLENGTH="30"><BR> Email:<BR> <INPUT TYPE="text" NAME="email" SIZE="20" MAXLENGTH="30"><BR> Títolo:<BR> <INPUT TYPE="text" NAME="subject" SIZE="20" MAXLENGTH="30"><BR> Texto del email:<BR> <INPUT TYPE="textarea" NAME="text" ROWS="60" COLS="10" MAXLENGTH="200"><BR> <INPUT TYPE="submit" VALUE="ENVIAR"> </FORM> En el archivo send."\n\n". endif.$text). ?> Obviamente hay que nombrar las imágenes como images/img1.$nombre. con un FORM para enviar los datos y una página "slave" que reciba los datos y envíe el email. y el código podría ser: <? $img=date("D")."Nombre: ".$subject.gif.10).gif. En primer lugar hay que crear una página que llamamos "master". Otra posibilidad es visualizar una imagen diferente según el día de la semana en la que el visitador solicita la página.php3 (nuestro archivo "slave") tendremos que incluir el siguiente código Php: <? if (isset($email)): # la dirección electrónica a la que enviar el email $target="info@sito.gif. cada vez que se abra una página.$num. ?> Enviar email Con Php es posible mandar email deesde una página de la red. Por lo que se refiere a la sintaxis de un form. images/img2. mail($target.gif"\">"). La página "master" tiene que tener en su interior un código de este tipo: <FORM ACTION="send.$img.

claves.query. el lenguaje estándar para hacer preguntas en las bases de datos. incluso el significado de los datos que hay en la misma. un webmaster que quiere organizar un sistema que prevea la consultación de una base de datos a través del web.login. El lenguaje SQL sirve para formualr las preguntas y para saber el significado de índices. En este seminario consideramos las operaciones en una base de datos de tipo MySQL y damos por descontado el conocimiento de la misma base de datos. La utilización de las instrucciones para la conexión a las bases de datos no tiene nada que ver con el conocimiento de los mismos. . Al lector atento no le resultará difícil transformar las operaciones explicadas para transladarlas a su base de datos preferida. hay muchos seminarios y manuales en la red. De modo práctico las operaciones Php en las bases de datos podrían dividirse en tres niveles: abrir/cerrar conexiones enviar preguntas SQL leer los resultados de una query Las operaciones abrir/cerrar una conexión a una base de datos sirven para abrir/cerrar una conexión con la base de datos elegida con el fin de hacer operaciones como leer/escribir y transmitir los datos en formato html. Lo único que diré es que con la palabra pregunta o query nos referimos a una serie de instrucciones que cualquier base de datos pone en marcha devolviendo una serie de tuple (en general. la conexión ODBC permite relacionarse con bases de datos tipo Access.password) mysql_close() Para mandar preguntas se puede utilizar la instrucción: mysql_db_query(database. En particular. Para abrir/cerrar una conexión en MySql tenemos las instrucciones: mysql_connect(host. En resumidas cuentas. líneas o partes de líneas de una o más tablas de una base de datos). en la mayoría de los casos tiene que conocer muy bien la estructura misma de la base de datos. relaciones. Php permite al programador tanto relacionarse con algunas de las bases de datos más importantes del mundo de la programación: PostgreSQL MySql Oracle Adabas filePro ODBC como con otros menos conocidos. Por lo que se refiere a SQL.ID_database) Para leer los resultados se usan unas instrucciones que veremos suvcesivamente. etc.Php y bases de datos La utilización más importante de Php se da en las preguntas que plantean las bases de datos que están en el servidor.

después de haber creado un form que devuelva en la variable $cadena una palabra que hay que buscar. mysql_close()."/".$db). Para escribir el resultado será necesaria una línea del tipo: print($row[1].""."/". ?> Estas instrucciones permiten memorizar en la variable $result todos los anuncios que están en la tabla Anuncios. $result estará compuesto por todos los anuncios que incluyen la palabra memorizada en $cadena."%'" $result=mysql_db_query("db_anuncios". La tabla Anuncios incluye los campos: ID [clave primaria] Nombre [nombre del autor del anuncio] Email [email] Texto [texto del anuncio] Una búsqueda dentro de la tabla podría hacerse con el siguiente código: <? $db=mysql_connect("localhost". Para saber el número de líneas del resultado de una pregunta basta con usar la instrucción: $num_rows=mysql_num_rows($result)."SELECT * FROM Anuncios". la primera línea del resultado estará disponible en la variable array $row."") or die("Error en la conexión a MySql"). Por ejemplo. Llegados a este punto estamos listos para formular preguntas más complejas. y después. ."/"."/").$row[2]. Para escribirlos se necesita primero hacer la operación: $row=mysql_fetch_row($result).$db). Otra operación muy útil es la que devuelve el número de campos en el grupo de resultados de la pregunta que se acaba de hacer: $num=mysql_num_fields($result). se puede escribir: $sql="SELECT * FROM Anuncios WHERE Texto LIKE '%". $result=mysql_db_query("base de datos_anuncios".$sql.Una primera búsqueda Para llevar a cabo nuestra primera búsqueda en la base de datos hágamoslo mediante el ejemplo: saber la existencia.$row[3].$cadena. la configuración y el significado del contenido de una tabla llamada Anuncios.$row[4].

Ahora vamos a ver cómo solucionar el problema y cómo construir un sitio que permita tanto la introducción como la búsqueda.$email. $user="".$user.Un sitio de anuncios Al final de la última lección veíamos la construcción de una base de datos de anuncios y su posible consulta a través de las páginas web.$texto.$sql. Para introducir un nuevo anuncio es suficiente con hacer las siguientes operaciones: <? # datos que hay que modificar según la base de datos $host="localhost". mysql_db_query("db_anuncios". ?> . Para que funcione todo vamos a crear unos archivos: show.$db).$nombre.$pass) or die ("Error durante la conexión a la base de datos").php3 [buscar una o más palabras en la base de datos] Introducir un anuncio Supongamos que recibimos unos datos de un form con las variables $nombre. La tabla Anuncios que memoriza los anuncios se ha descrito e incluye los campos: ID [clave primaria] Nombre [nombre del autor del anuncio] Email [email] Texto [texto del anuncio] Pasemos a la práctica no olvidando que el instrumento necesario para enviar datos de un archivo html/php3 a otro es el form."'. como hemos descrito en las lecciones anteriores.'"."')". mysql_close(). $db=mysql_connect($host. $sql="INSERT INTO Anuncios (Nombre.php3 [mostrar los anuncios] insert.Email.'".Texto) VALUES('"."'.$texto.php3 [introducir un anuncio] search. $pass="".$email.

print(htmlentities($row["Texto"]). . Obviamente también se pueden hacer unas operaciones de control referidas a la validez de la dirección email o para controlar si algunos campos no son nulos. $pass="".$row["Nombre"].$user.$row["Email"]. $db=mysql_connect($host. $result=mysql_db_query("db_anuncios". print("<B>Texto del anuncio</B>:<BR>"). Para mostrar los anuncios de la base de datos basta introducir el siguiente código: <? # datos que hay que modificar según la base de datos $host="localhost". para que los varios browser las visualicen correctamente."<BR>")."\">". $user="".$sql.En este caso la base de datos introduce automáticamente una clave única que marca el anuncio en el ID de la tabla Anuncios.$db)."</A><BR>").$pass) or die ("Error durante la conexión al database"). } mysql_close(). while ($row=mysql_fetch_array($result) { print("<B>Nombre</B>: <A HREF="\"". $sql="SELECT * FROM Anuncios". print("<HR SIZE=\"1\">"). ?> La función htmlentities() permite "traducir" las letras que llevan acento y los demás caracteres parrticulares con código html.

"<BR>"). $sql="SELECT * FROM Anuncios ". pensemos en recibir una cadena $str de un form. print("<B>Texto del anuncio</B>:<BR>"). } $result=mysql_db_query("db_anuncios". El siguiente código permite buscar y visualizar los resultados: <? # datos que hay que modificar según la base de datos $host="localhost". $words=explode(" ".Búsqueda de un anuncio Para la búsqueda de un anuncio particular. que $str contenga una serie de palabras que hay que buscar.$row["Nombre"].$db). separadas por espacios. creemos que ya hemos escrito bastante."\">". $j++.$user. while ($row=mysql_fetch_array($result) { print("<B>Nombre</B>: <A HREF="\"".$pass) or die ("Error durante la conexión al database"). print("<HR SIZE=\"1\">"). $j=0. porque es posible que las operaciones necesiten un número diferente de operadores dependiendo de la base de datos." OR ". $db=mysql_connect($host. Lo único que queremos subrayar es que para pasar de un código de una base de datos a otro es necesario que el programador realice una traducción muy cuidada.$row["Email"].$where.$words[$j]. while (isset($words[$j])) { $where=$where. } mysql_close(). $pass="". endif. if (isset($words[$j+1])): $where=$where. print(htmlentities($row["Texto"]). $where=""."%'".$sql."Texto LIKE '%". $user="". . Si sólo queremos dar una pista para crear un sistema de este tipo. ?> Obviamente las variantes son muchas y cada uno puede divertirse a su antojo."</A><BR>").$str).

Sign up to vote on this title
UsefulNot useful