Sie sind auf Seite 1von 64

Hola como yo me dedico a la creacion de webs hoy les vengo a dejar codigos en php y algunos en html para personas

que no sepan mucho de php Primero para los que no saven que es PHP, es un lenguaje de programacin interpretado, diseado originalmente para la creacin de pginas web dinmicas. Cofigos php: Formulario de Correo: Script para enviar formulario por correo <form action="mailto:tumail@tumail.com" encType="text/plain" method="post" onsubmit="alert('Gracias por sus Comentarios')"> <div align="center"><center><p><small><small><br> </small></small><textarea rows="8" name="comment" cols="50"></textarea><small><small><br> </small><input type="submit" value="Enviar" style="font-family: Verdana, Arial"><input type="reset" value="Borrar" style="font-family: Verdana, Arial"></small></p> </center></div> </form> Solo tiene que camviar tumail@tumail.com y poner su mail

Scripts de Correo Php En este artculo, vamos a ver cmo hacer formularios y scripts de correo en Php, JavaScript y html. En concreto, estudiaremos el cdigo que yo utilizo en mis pginas, programado por mi. Versatil, polivalente, fcil de implementar y actualizar. Es requerido cierto conocimiento de Html, Php, y JavaScript. Pero si sabe programar, le resultar muy sencillo modificar los fuentes con mis comentarios. El formulario requerido,para trabajar con el script de correo php, y asp, que son prcticamente idnticos, se muestra a aqu. El JavaScript, que se muestra en la misma pgina anterior, verificar que los campos obligatorios han sido cubiertos. Y por ltimo, lo enva a un programa, que lo procesa y enva al usuario Podemos utilizar distintos formularios con el mismo programa siguiendo las instrucciones. Este cdigo, tiene la ventaja, de que es muy fcil de adaptar a otros usos, e introducir mas campos opcionales sin mas que incluirlos en el nuevo formulario. Podemos utilizar el mismo fuente sin modificar para varios formularios. La utilidad, es un simple feedback de email para el webmaster. Puesto que no almacena el envo en el servidor -no requiere sql-, lo enva directamente a la direccin de email que queramos. La gran ventaja, es que permite introducir campos al formulario html sin necesidad de modificar el cdigo. Diseamos el formulario, y nos olvidamos del resto. Quien no tengan conocimientos, por favor, no soliciten ayuda al webmaster. En la pgina de buscadores de cursos y manuales de este portal. Seguramente encontrarn la informacin y

materiales necesarios para introducirse en la programacin. Adems, su host, ha de tener intrprete de php, y servicio de mail habilitado. La mayora de hospedajes gratuitos, solo ofrecen Html. Y la inmensa mayora. no permiten enviar mails. Si necesita un host gratuito con estas capacidades, visite tripod espaa es til para aprender. Iespaa, ofrece intrprete php, el resto de servicios, desconozco su estado actual. Algunos host, tienen pginas predefinidas de mail, similares a estos fuentes. Pero no puede modificarlas. Con JavaScript nicamente, no se pueden hacer formularios de correo que utilicen el servidor de mail del servidor. Se necesita algn lenguaje de servidor como php, asp, perl. utilice mailto: en un enlace en lugar de href:. En los sitios de manuales y cdigos, hay bastante documentacin. Y fuentes prcticamente listos para instalar sin mucho conocimiento. Adems, le recomendamos nuestro transciptor html, un programa gratuito que convierte textos html en scrips php, javascipt, perl, asp,VBasicScript, C#, y VBasic. Nosotros, utilizamos este cdigo en nuestras pginas, con buenos resultados y estamos muy satisfechos. Y bueno, vamos a dejarlo como licencia GNU. El problema de estas cosas, es que si no estn protegidas, todo el mundo se puede atribuir la paternidad. De todas formas, es tan sencillo, que bueno, qu vamos a hacer, dejmoslo para la educacin. Script de mail en Php ## VARIABLES ## Direccin de tu email $micorreo="tucuenta@tudominio.com"; ## Asunto axiliar si no lo introduce un asunto que identifique la procedencia del mail. $xasunto="Correo desde tu pagina"; ## Pagina final de gracias. Si el formulario no incluye este campo oculto del formulario. $gracias_defecto="http://www.buscarportal.com"; ## Pgina final si se produce un error al enviar el email $error_correo="http://www.buscarportal.com/anuncios/error_correo.html"; ## variable auxiliar, que produce un salto de lnea $retorno="rn"; ## CABECERAS DE CORREO ## Diversas cabeceras para el email. Luego, lo usaremos para enviarlo ## $nombre $correo son variables que contienen los valores de: nombre y email del formulario. $headers = "MIME-Version: 1.0rn" ; ## campos y variables nombre, $nombre y email $correo. No puede ser modificado su nombre en el form ## Han de mantenerse en el formulario para utilizar el mismo script con distintos formularios ## Aadimos esta linea por compatibilidad, Ver la Explicacin $nombre=$HTTP_GET_VARS['nombre'];$correo=$HTTP_GET_VARS['correo']; ## Origen del mensaje $headers .= "From: $nombre<$correo>rn";

## Responder al mail $headers .= "Reply-To: $correo<$correo>rn"; ## Otras cabeceras que pueden ponerse si ocurren problemas u omitirse si todo va bien. ## Obligatoriamente, cada elemento de la cabecera termina en rn Nueva lnea. ## $headers .= "X-Mailer: PHP/" . phpversion(); ## $headers .= "X-Sender: $correo<$correo>rn"; ## $headers .= "Return-Path: <$correo>rn"; ## $headers .= "Cc: $nombre<$correo>rn"; ## CUERPO DEL MENSAJE INICIO ## Obtencin de la IP del visitante ## Empezamos a contruir el mensaje final, sumando los elementos del mensaje $mfinal.="IP visitante: "; ## Guardamos la IP del visitante $mfinal.=$HTTP_SERVER_VARS['REMOTE_ADDR']; $mfinal.=": "; ## Y el puerto del usuario $mfinal.=$HTTP_SERVER_VARS['REMOTE_PORT']; ## aadimos dos retornos de lnea $mfinal.=$retorno; $mfinal.=$retorno; ## CUERPO DEL MENSAJE AADIDO DE CAMPOS AL MENSAJE ## $vareliminar Nmero de botones del formulario y campos ocultos (ltimos elementos) + 1 --> en este caso (1+1) ## Si queremos eliminar del mensaje el campo oculto de la pgina final $vareliminar=3; $vareliminar=2; ## Almacenar en un array los nombres de variables del formulario enviado $claves_array=array_keys ($HTTP_GET_VARS); ## de i=0 hasta el nmero de campos del formulario, - variables a eliminar for ($i=0;$i<=(count($HTTP_GET_VARS)-$vareliminar);$i++){ ## Obtenemos el nombre de cada campo en concreto $nombrevar=$claves_array[$i]; ## Sumamos el nombre de campo de formulario al mensaje final $mfinal .= $nombrevar; $mfinal .= ": "; ## Y aadimos el contenido que haya introducido nuestro visitante $mfinal .= $HTTP_GET_VARS[$nombrevar]; ## Separamos cada campo por dos retornos, podemos eliminar uno $mfinal .= $retorno; $mfinal .= $retorno; } ## Si no hay asunto, o no contiene nada, le damos al email un asunto defecto if (is_null($asunto)){ $asunto2="correo desde la web";} ## Si hay asunto, aadimos un prefijo propio para identificar que es email desde la web. else { $asunto2 ="Asunto-> $asunto"; } ## ENVO DEL CORREO ## Para finalizar, envamos el mail, y comprobamos el resultado

$resultado=mail($micorreo, $asunto2, $mfinal, $headers); ## Si quisisemos enviar un mensaje de acuso de recibo, aadimos esta lnea, sabiendo que: ## tenemos que asignar estas variables $asuntoreply (Asunto), $mreply (mensaje), $headers2(mensaje) ## de modo similar a como hemos construido las variables anteriores ## $resultado2=mail($correo, $asuntoreply, $mreply, $headers2); ## COMPROBACIN ## Si no se ha podido enviar el correo. if ($resultado ==true) { ## Si no hay pgina de gracias carga las pgina de defecto if (is_null($pagina_gracias)){ header( "Location: $gracias_defecto" );} else{ ## Si hay pgina de gracias, crgala header( "Location: $pagina_gracias" ); } } ## Si se ha producido un error, advierte al usuario else header( "Location: $error_correo" ); ?> Formulario web seguro antispam PHP Veamos primero el cdigo del formulario en PHP, consta de 2 archivos, contacto.php y gracias.php: contacto.php // QUINTI.NET SECURE FORM VERSION 1.0 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" > <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=iso-8859-1" /> <meta name="keywords" content="" /> <meta name="description" content="" /> <link rel="shortcut icon" href="image.gif" type="image/x-icon" /> <title>Quinti.net - Contact form example web secure anti spam with captcha</title> //U NEED A PHP SERVER. //START REQUIRED IN HEAD <? // Quinti.net - Secure Contact Form Antispam with CAPTCHA v1.0 // Created by Jesus Quintana // http://www.quinti.net // Visit site for help and new versions echo "<script type="text/javascript">n"; echo "<!--n";

echo "function validar(form1) {n"; echo "if (form1.name.value.length < 2) {n"; echo "alert('"; echo "Inserte el nombre";; echo "')n"; echo "form1.name.focus();n"; echo "return (false);}n"; echo "var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz ";n"; echo "var checkStr = form1.name.value;n"; echo "var allValid = true;n"; echo "var uword = hex_md5(document.getElementById('uword').value)n"; echo "for (i = 0; i < checkStr.length; i++) {"; echo "ch = checkStr.charAt(i);n"; echo "for (j = 0; j < checkOK.length; j++)n"; echo "if (ch == checkOK.charAt(j))n"; echo "break;n"; echo "if (j == checkOK.length) {n"; echo "allValid = false;n"; echo "break;"; echo "}}n"; echo "if (!allValid) {n"; echo "alert('"; echo "Inser a name"; echo "');n"; echo "form1.name.focus();n"; echo "return (false);}n"; echo "if ((form1.email.value.indexOf ('@', 0) == -1)||(form1.email.value.length < 9) || form1.email.value.indexOf ('.', 0)== -1 ){n"; echo "alert('"; echo "Insert a valid email "; echo "');n"; echo "form1.email.focus();"; echo "return (false);}n"; echo "if (form1.message.value.length < 7) {n"; echo "alert('"; echo "Insert a message"; echo "');n"; echo "form1.message.focus();"; echo "return (false);}n"; echo "if (uword==cword[anum-1]) {n"; echo "return true;}n"; echo "else {n"; echo "alert('"; echo "Insert image code (is to prevent spam) "; echo "');n"; echo "document.getElementById('uword').focus();n"; echo "return false;}n"; echo "return (true);}n";

echo "-->n"; echo "</script>n"; ?> <script type="text/javascript" src="md5.js"></script> <script type="text/javascript" src="jcap.js"></script> //END REQUIRED IN HEAD <style type="text/css"> <!-img{border:0;} --> </style> </head> <body> //START REQUIRED IN BODY <form method="post" onsubmit="return validar(this)" id="form1" action="gracias.php"> <p> <input type="hidden" name="token" value="<?=$token?>" /> </p> <p> Nombre:*<input name="name" type="text" value="" /> </p> <p> E-mail:* <input name="email" type="text" value="" /> </p> <p> Asunto: <input name="phone" type="text" value="" /> </p> <p> Mensaje:* <br /> <textarea name="message" cols="30" rows="5"></textarea> </p> <p> Insert the image code* (to prevent spam)</p> <p><input type="text" name="uword" id="uword" value="" /> </p> <p><script type="text/javascript">cimg()</script> </p> <p> <input type="submit" value="enviar" /> </p> </form> <p>fields with * are obligatory. <a href="http://www.quinti.net" title="www.quinti.net - diseo web y multimedia"><img src="http://www.quinti.net/pics/q.png" width="21" height="14" alt="diseo web y multimedia" /></a></p> //END REQUIRED IN BODY <p> <a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml11" alt="Valid XHTML 1.1" height="31" width="88" /></a> </p>

</body> </html> bien, vemos que en el <head> escribimos en php el validador de campos en JavaScript. Y tambin incluimos 2 archivos .js externos, propiedad de http://www.archreality.com/jcap/#j1 los cuales les he modificado una funcin. Veamos ahora el procesador del formulario, llamado gracias.php // QUINTI.NET SECURE FORM VERSION 1.0 //START REQUIRED CODE <? // Quinti.net - Secure Contact Form Antispam with CAPTCHA v1.0 // Created by Jesus Quintana // http://www.quinti.net // Visit site for help and new versions

@import_request_variables("gpc"

;//import variables

$youremail = "tudireccion@dominio.net "; //your mail $subject = "el ttulo del tema "; // for example, title of your contact page page - contact $redirect = "contacto.php";//url to be redirected when contact form is sent $secs = "5";// time in seconds will be redirected if(eregi("MIME-Version:",$postVars)) { mail("tudireccion@dominio.net", "Form Hijack Attempt", "A spam relay was attempted from

the Web site and was blocked.", "From:SpamMonitor"

die(); } //block spam $secret = 'ssshhitsasecret'; $token = md5(rand(1, 1000).$secret); $_SESSION['token'] = $token; ?> //END REQUIRED CODE <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" > <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=iso-8859-1" /> <title> Thank you, processor example anti spam with captcha by quinti.net, correct process</title> //START REQUIRED META <meta http-equiv="refresh" content="<?=$secs;?>;URL=<?=$redirect;?>" /> //END REQUIRED META </head> <body> //START REQUIRED IN BODY <? // variables to stop spammers $name = stripslashes($name); $message = stripslashes($message); $headers .= "From: " . $email . "rnrn"; //This is where the email is sent using your values from above. Be sure to update this if you change any fields in contact.php mail("$youremail", "$subject"," Name: $name Email: $email Phone: $phone Message: $message ",$headers); // Strip r and n from the email address $_POST['email'] = preg_replace("r", "", $_POST['email']); $_POST['email'] = preg_replace("n", "", $_POST['email']); $_SESSION['token'] = $token; $token = md5(rand(1, 1000).$secret); $secret = 'ssshhitsasecret'; $field = preg_replace( "/[nr]+/", " ", $field ); // Remove injected headers

$find = array("/bcc:/i","/Content-Type:/i","/cc:/i","/to:/i"

$_POST['email'] = preg_replace($find, "", $_POST['email']); $message = preg_replace($find, "", message); $email=str_replace("r","n",$email); $name=str_replace("r","n",$name); $message=str_replace("r","n",$message); $phone=str_replace("r","n",$phone);

if(!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,3})$", $email)) { ob_clean();

mail("$youremail", "Message Killed", "$message", "From: $name <$email>"

exit("Message killed."

} if (eregi('^(bcc$|content-type|mime-version|--)',$key))

print_error("Field names indicate exploit."

; //bloqueo de spam

?> <p>Thank you, the contact form was sent correctly. In 5 seconds you will be redirected to index page.</p> //END REQUIRED IN BODY </body> </html> HTML para los que no saven PHP Cursores para Sus Web:

<style> body{ cursor:url(http://cuw.iespana.es/archivos/pun02.cur);} </style><a href="http://www.frasesdeamore.com">frases de amor</a>

<style> body{ cursor:url(http://cuw.iespana.es/archivos/pun04.cur);} </style><a href="http://www.frasesdeamore.com">frases de amor</a>

<style> body{ cursor:url(http://cuw.iespana.es/archivos/pun06.cur);} </style><a href="http://www.frasesdeamore.com">frases de amor</a> Chat para tu Web <embed src="http://www.***/web_gear/chat/chat.swf" quality="high" width="540" height="405" name="chat" FlashVars="id=45441243" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://xat.com/update_flash.shtml" /> <br /> <small><a target="_BLANK" href="">Chat Web</a></small><br /> <img style="visibility:hidden;width:0px;height:0px;" border=0 width=0 height=0 src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bT*xJmx*PTEyMjg1NzM1NTY wNjImcHQ9MTIyODU3Mzc*NDQwNiZwPTUzMTUxJmQ9Jmc9MSZ*PSZvPWRiNDY3YTMzYWZm NDQ5NDg4NjU*NmE3YjNmOWJmMWFk.gif" />

Calendario para tu Web: lo pueden usar tanto en html como en php <iframe src="http://www.free-blog-content.com/Calendars/calendar0037.htm" width="166" height="240" marginwidth="0" marginheight="0" frameborder="no" scrolling=no allowtransparency="true"></iframe><center><a style="font-size: 3mm" href="http://www.crearunaweb.net/">Calandario Web</a></center> Relog para tu web: Lo pueden usar tanto en html como em php <!---Reloj flash para t!---> <table border="0"><tr><td><a href="http://www.crearunaweb.net" title="relojes web"><embed style="" src="http://www.crearunaweb.net/complementos/reloj08.swf" wmode="transparent" type="application/x-shockwave-flash" height="100" width="100"><param name=wmode value=transparent /></embed></a></td></tr><tr><td align="center"></br><a href="http://www.emoticonosi.com" style="font-size:10px;" title="emoticonos" >emoticonos</a></td></tr></table> <!---Reloj flash para t!-->

Me decidi por comenzar a redactar un completo tutorial de diseo y programacion web. Muchas veces me paso de agarrar muchos pdfs bastante largos y la verdad, tanta informacion te quema la cabeza, asi que la idea es ser muy concreto, y tirar links con informacion adicional para determinados puntos. Mi idea es ir subiendo por partes todo el contenido, 100% redactado por mi, no tengo nada diagramado, simplemente lo que vaya surgiendo lo ire agregando. Este tutorial va a empezar totalmente desde CERO, asi que si no cazas un palo, no importa, si me seguis, vas a captarlo, porque voy a ser muy basico al principio, y voy a tratar de utilizar vocabulario y palabras comunes, o sea, no pretendas que voy a escribir y hablar como las cosas que encontras en un libro jeje, lo aclaro ahora, despues no se me quejen juaaaaaaa El contenido va a ser: - HTML - CSS - JavaScript - PHP - MySQL - XML - Web Services - WAP - Hostings - Y no se, otras cosas tambien. Quizas algunas veces me cuelgue de subir la info, laburo y facu me mata, pero bue, cuando tenga tiempo al pedo, vengo y sigo agregando cosas je. Recuerden, voy a ser MUY CONCRETO y BASICO en muchos puntos, voy a tratar de inducirlos, uds sigan investigando! En fin, comencemos.

Introduccion HTML
Bue, la onda es asi, HTML significa HyperText Markup Language, que significaria algo asi como lenguaje de etiquetas de hipertexto. Este lenguaje, en si, no es programacion, sino que es una forma de darle estructura a las paginas, o sea, para ubicar como querramos todas las cosas que se visualizan en un sitio. Este codigo que se redacta, es interpretado por el navegador, y se muestra al usuario. Para comenzar a realizar algunas pruebas, vamos a necesitar algunas HERRAMIENTAS: + Un navegador Web para visualizar nuestras paginas: Si estas viendo este post desde taringa, ya tenes un navegador . Yo recomiendo Firefox, pero bue, Internet Explorer alcanza

+ Un editor de codigo: Todo el codigo de HTML se puede escribir en el notepad de Windows. Si tenes eso, ya alcanza por ahora. Igual, te recomiendo que te vayas bajando el Notepad++ http://notepad-plus.sourceforge.net/es/site.htm, ya que te colorea el codigo que vas escribiendo, y te ayuda muchisimo.

Comenzemos a escribir codigo HTML! Aclaracion sobre el codigo: Si nunca vieron algun tipo de codigo de programacion, no se asusten si no cachan una. Simplemente hay que seguir determinadas reglas y sintaxis para que todo funcione ok. Empiecen de a poquito a comprenderlas, y dia a dia incorporen en sus cabezas un par mas! Bue ahora si, toda pagina web HTML tiene una estructura basica comun, que es la siguiente. <html> <head> </head> <body> </body> </html> Cada uno de los elementos que visualizan se llaman etiquetas ( o tags ). Los tags en HTML generalmente se redactan asi: <nombre_del_tag> </nombre_del_tag>. Esto se refiere a que el 1er tag denota el comienzo de esa estructura o evento, y el segundo tag ( que tiene la barra invertida al principio, denota el final. Explicacion de los tags que utilizamos en el ejemplo: * HTML: Significa que ahi empieza nuestra pagina, tiene que estar arriba de todo * HEAD: Es el encabezado de la pagina, se utiliza para agregar algunas cosas extras, por ahora no importa * BODY: Alli se redacta el cuerpo de la pagina Con respecto a los tags y su ubicacion y orden, tenemos que pensarlos como conjuntos: * HEAD esta adentro de HTML, o sea, se abre HTML, adentro de HTML se abre y cierra HEAD, y luego al final de todoHTML se cierra. si recien dijimos que HTML indica el inicio de la pagina, nunca pero nunca HEAD podria estar antes deHTML, ya que nunca se inicio la pagina, ni tampoco podria estar despues del cierre de HTML, ya que eso indica el fin de la pagina. Ahora lo que vamos a hacer, es copiar y pegar en el notepad el codigo de la estructura basica de una pagina. Aqui se los pongo. <html> <head> </head> <body> </body> </html>

Ahora guardamos el archivo como taringa.html ( Fijense que cuando van a "guardar como", el tipo de guardado no sea archivo de texto, sino que sea todo tipo de archivos, sino aca windows te cambia la extension y te lo guarda como taringa.html.txt ) Una vez que lo guardamos, vamos, y lo abrimos con el navegador. La pagina va a estar en blanco!!!! y si, si lo unico que pusimos es una estructura basica, sin texto ni nada!!!! Agregando texto a nuestra pagina: Hoy habiamos dicho que la etiqueta BODY es el cuerpo de la pagina, alli debemos redactar todo el contenido, antes del cierre, y despues del inicio. <html> <head> </head> <body> El que lee es puto </body> </html> Copiamos y pegamos este codigo en Notepad, lo guardamos con extension .HTML ( por ejemplo, taringa.html ), lo abrimos con el navegador, y ya vamos el texto!!!

Cualquier cosa que redacten dentro de body, luego van a visualizarlo en la pagina!! o sea, cambien "el que lee es puto" por "el diego es el mas grande de la argentina" y listo! guarden los cambios y abran la pagina.

Bueno, si se dan cuenta, todo el texto es re plano, sin colores ni nada!!! En la proxima entrega les voy a contar como ordenar texto, parrafos, negrita, etc etc!!! Espero que les haya gustado esta primera edicion apresurada

ueno gente, como les habia prometido, aqui llega la segunda parte. Si todavia no leiste el primero, anda abajo de todo que tenes el link! Si se acuerdan del capitulo pasado, ya aprendimos a armar la estructura basica de una pagina, y a ponerle texto adentro de ella, pero la cagada es que todo el texto que colocamos es re plano, cero formato, todo chato, por mas que en el codigo veamos que hay espacios. Esto sucede porque como les habia dicho, para acomodar todos los elementos en una pagina, necesitamos utilizar etiquetas. Algunas de las etiquetas mas utilizadas comnmente son:

PARRAFOS
<p></p>. Esta se utiliza para organizar el texto en parrafos, por ejemplo, podriamos armar dos parrafos asi: <html> <head> </head> <body> <p>Hola, este es el primer parrafo</p> <p>Hola, este es el segundo parrafo.</p> </body> </html> ( Espero que ya no haga falta que les diga que lo tienen que guardar como .html y abrirlo con el

navegador

Traten de no hacer chiquero con el codigo html, si ustedes escriben todo el codigo en una sola linea, el navegador lo va a interpretar perfectamente, pero despus, cuando el codigo sea muy largo, no van a entender un choto ustedes! Ejemplo de algo que si funciona pero es totalmente inentendible para un humano a la larga: <html><head></head><body><p>Hola, este es el primer parrafo</p><p>Hola, este es el segundo parrafo.</p></body></html>

NEGRITA
Para poner el texto en negrita, utilizamos la etiqueta <strong></strong>, por ejemplo ( A partir de ahora voy a dejar de poner la estructura basica, pero ustedes ya saben que el contenido visible se coloca entre las etiquetas <body></body> ) <strong>Hola, esto esta en negrita</strong> O sino: <p>Hola, esto esta en <strong>negrita</strong> ( ahora, unicamente la palabra negrita esta en negrita )</p>

ENFASIS
Ahora, vamos a utilizar la etiqueta para dar nfasis a una palabra o frase, la misma es <em></em>, por ejemplo: <p>Hola, este texto esta en un parrafo, y esta <strong>palabra</strong> esta en negrita, y tambien le voy a dar nfasis a <em>esta palabra</em></p> Entienden como va todo? Fijense que todo el texto forma un parrafo, porque esta encerrado entre <p></p>, palabra esta en negrita porque esta encerrado entre <strong></strong>, y esta palabra tiene nfasis porque esta encerrado entre <em></em>!!!

LISTA ORDENADA
Tambien con HTML, podemos ordenar en lista, o sea, tipo 1, 2 , 3 ,4 , etc. La etiqueta utilizada es <li>, y todos los elementos de una lista se agrupan con <ul>, o sea, con <ul> indicamos que comienza un listado, con <li></li> colocamos cada elemento, y cuando termina la lista, cerramos con </ul>, por ejemplo, seguimos combinando todas las etiquetas aprendidas: <p>Hola, este texto es un parrafo, y ahora <strong>esto va en negrita</strong> y aca <em>con nfasis</em>, y ahora armamos un listado:</p>

<ul> <li> este es el 1er elemento, y fijense que abrimos la agrupacin con UL</li> <li>este es el segundo elemento</li> <li>este el tercer elemento</li> <li>este el cuarto y ultimo, y abajo vamos a cerrar el listado con UL</li> </ul> <p>Aca abrimos otro parrafo! Y ponemos <strong>NEGRITA!</strong></p>

TITULOS
Tambien tenemos forma de indicar titulos, o sea, titulo que se supone que es encabezado, cada encabezado tiene un nivel, nivel 1, nivel 2, nivel 3, de acuerdo a la importancia, ustedes le asignan el nivel que quieren, las etiquetas son <h1></h1>, <h2></h2>, <h3></h3>,<h4>/<h4>, Ahora el ejemplo, seguimos agregando cosas a nuestro codigo ( Para que se entienda bien todo, ya ahora voy a incluir la estructura completa, que habiamos visto al principio:

<html> <head> </head> <body> <h1>Este es el titulo!</h1> <p>Hola, aca estamos colocando texto en un parrafo <strong>con negrita</strong> y aca <em>con nfasis</em></p> <ul> <li>armamos un listado</li> <li>elemento 2</li> <li>ultimo elemento, y cerramos el ul</li> </ul> <h2>Un titulo menor </h2> <p>aca otro parrafo, no se</p> </body> </html>

ESPACIOS Y LINEAS HORIZONTALES


Si queremos dejar espacios de lineas para abajo sin abrir otro parrafo, utilizamos la etiqueta <br />, esta no tiene apertura y cierre, es unica, al colocar <br /> el navegador tira el contenido una linea abajo, tambien, esta la etiqueta <hr />, esta, lo que hace es trazar una linea horizontal en toda la pagina, vamos a verla en practica:

<html>

<head> </head> <body> <h1>Este es el titulo!</h1> <p>Hola, aca estamos colocando texto en un parrafo <strong>con negrita</strong> y aca <em>con nfasis</em></p> <p>aca escribo algo, y dejo espacio abajo con br <br /><br /><br /> cada br es un espacio, ahora voy a trazar una linea horizontal <hr />

<ul> <li>armamos un listado</li> <li>elemento 2</li> <li>ultimo elemento, y cerramos el ul</li> </ul> <h2>Un titulo menor </h2> <p>aca otro parrafo, no se</p> </body> </html>

Bueno, esto es todo por hoy! En la proxima, vamos a terminar de ver algunas etiquetas mas, como armar tablas, y, ustedes se preguntaran, como carajo le damos color a esto no? Bueno, vamos a aprender a darle estilos a nuestra pagina!

Bueno, llega la 3ra parte! En el capitulo anterior, habiamos visto como utilizar etiquetas para darle forma a nuestro contenido ( parrafos, negrita, listas, etc ). Les dejo un link con una lista de etiquetas para que las lean! http://www.htmlquick.com/es/reference/tags.html

De todas maneras, vamos a seguir con algunas mas, y ya nos vamos a introducir con el tema de CSS ( Estilos ). COMO INSERTAR UN LINK Tenemos 2 formas de definir un enlace a otra pgina. El enlace puede ser externo ( Quiere decir que colocamos un link a una pagina que no esta en nuestro dominio, por ejemplo, un link a Google ) o puede ser un link interno ( Se refiere a una pagina que esta en nuestro dominio ) Ejemplo link externo : <a href='http://www.google.com'>Texto del link</a> La estructura es asi <a href='direcciondelapagina'>texto que va a mostrar el link</a>. Tengan en cuenta que siempre las direcciones deben empezar con http:// Ejemplo de link interno: Este tipo de enlace, es para paginas relativas al nivel de carpeta donde esta situada la pagina actual, por ejemplo, tenemos la pagina taringa.html, y en la misma carpeta, tenemos la pagina taringa2.html, si queremos colocar un link desde taringa.html a taringa2.html, el codigo es el siguiente: <a href='taringa2.html'>Este es un link a taringa2.html</a> Fijense que ya no hace falta hacer referencia a todo el dominio completo, ya que la pagina se encuentra en la misma carpeta de origen. Puede suceder que la pagina taringa2.html, se encuentre en un nivel mas bajo, en una carpeta, llamada "otros". En este caso, el link sera asi: <a href='otros/taringa2.html'>Este es un link a taringa2.html que esta dentro de la carpeta "otros"</a>

COMO INSERTAR IMAGENES

Para insertar imagenes, se utiliza la etiqueta IMG. Se escribe de la siguiente manera: <img src='imagen.jpg'> En este caso, lo que hacemos, es colocar una imagen que se encuentra en la misma carpeta donde esta nuestra paginahtml. Si queremos insertar una imagen que esta en cualquier lado de internet, lo que hacemos es: <img src='http://www.google.com.ar/images/firefox/sprite.png'> Fijense que cuando es una imagen externa, hacemos referencia a la URL completa, comenzando por http:// Al igual que los links, si tenemos las imagenes bajo la carpeta "imagenes", relativa a nuestra pagina, entonces el codigo se escribe asi: <img src='imagenes/imagen.jpg'> COMO CENTRAR CONTENIDO Para centrar contenido, por ejemplo, texto, imagenes, etc, podemos hacer uso de la etiqueta "center". se utiliza de la siguiente manera: <center><img src='imagenes/imagen.jpg'></center> En este ejemplo, lo que hacemos, es centrar la imagen "imagen.jpg". Tambien podemos centrar texto: <center><p>Hola, este es un texto centrado</p></center>

COMO ARMAR TABLAS Cuando lo que queremos mostrar en nuestra pagina son DATOS, lo mejor es utilizar tablas ( como por ejemplo visualizamos la informacion en excel ) La estructura para armar tablas es la siguiente: Inicio de tabla: <table> Mostramos una fila: <tr></tr> Definimos encabezados del contenido: <th></th> Mostramos los datos para cada celda: <td</td> Fin de la tabla: </table> Ahora, pongamos un ejemplo de una tablita facil: <table> <tr><th>Columna 1</th><th>Columna 2</th><th>Columna 3</th></tr>

<tr><td>Dato 1</td><td>Dato 2</td><td>Dato 3</td></tr> <td><td>Dato 11</td><td>Dato 22</td><td>Dato 33</td></tr> </table> Y Ahi tenemos una tablita ya armada!!!!

INTRODUCCION A LOS ESTILOS CSS

CSS quiere decir Cascading Style Sheets, que significa en castellano Hojas de Estilo en Cascada. Hojas de estilo, basicamente, es porque es un archivito que le da estilo a nuestras paginas ( Estilo me refiero a color, tamao de texto, ubicacion del contenido, etc ). En Cascada, se refiere a que los estilos se aplican por niveles. Por ejemplo, miremoslo de esta manera, utilicemos como ejemplo las tablas. TABLE seria un elemento padre, un elemento hijo seria TR ( ya que se define dentro de table), y un elemento hijo de TR seria TD ( ya que se define dentro de TR), Entonces, podriamos aplicar un estilo de tamao de texto a TABLE, y el mismo, tambien se aplicaria a TR, TD. Los estilos se pueden escribir tanto dentro de la pagina html ( en el encabezado head), se pueden aplicar directamente a etiquetas, o se pueden escribir en archivitos separados. Generalmente, es muy habitual, cuando se trata de una pagina muy grande con muchos estilos, manejar por separado los estilos del codigo HTML, o sea, manejarlo como archivitos externos. ESCRIBIENDO CSS DESDE EL HTML En este caso, vamos a escribir estilos directamente desde el HTML. Les paso la estructura de como seria: <html> <head> <style type='text/css'> </style> </head> <body> <p>Texto bla bla</p> </body> </html> Fijense que incluimos en head la etiqueta STYLE, donde alli adentro escribiremos el codigo CSS. EJEMPLOS DE CSS

Bueno, comencemos a escribir codigo CSS!!! Lo que hacemos con CSS, es darle estilos a cada elemento de nuestra pagina ( elemento se refiere a etiquetas, por ejemplo, links, parrafos, tablas, etc ). Cada elemento tiene varias propiedades, como son tipo de letra, tamao de letra, color de letra, color de fondo, etc. Ahora, pensemos esto, a un parrafo de texto, queremos ponerle un tamao de letra grande y con color rojo, como hacemos??? CODIGO DE EJEMPLO p{ font-family: verdana; font-size: 18px; font-color: red; } P es el elemento al que va a aplicar el estilo, despues, ese elemento tiene varias propiedades como dijimos, y lo que hacemos, es asignarles determinado valor a cada una de las propiedades. Propiedades, piensenlo como caracteristicas, imaginense, P es una persona, Pablo, pablo tiene las propiedades de altura, peso, color de pelo, etc. Y lo que hacemos, es asignarle las propiedades a Pablo, queremos que sea 1.80 de alto, pesa 70kilos, etc. Explicacion de las propiedades: font-family: Es el tipo de letra font-size: El tamao de la letra en pixeles. 10px, 12px, lo que quieran. font-color: el color de la letra. Vamos ahora al ejemplo completo. Guarden este codigo como ejemplo.html

<html> <head> <style type='text/css'> p{ font-family: verdana; font-size: 18px; font-color: red; } </style> </head> <body> <p>Parrafo que va a cambiar de propiedad, va a tener tamao 18, color rojo, y la fuente va a ser verdana.</p> </body>

</html>

Y Listo!!!! En el proximo capitulo vamos a entrar mas en profundidad en lo que es CSS...

Tag HTML
A continuacin, encontrars una lista de todos los tags HTML(lenguaje de marcas hipertextual) para el estndar HTML 4.01, que tambin pertenecen al estndar XHTML (lenguaje de marcas hipertextual extensible) con la excepcin de aquellos desaprobados. Junto a cada tag encontrars un smbolo indicando si el tag es vaco o no, lo que podra ayudarte en la labor de escribir cdigo XHTML, el cual representa una mejor opcin no tan difcil de lograr. Recomendamos fuertemente usar XHTML en lugar de HTML, debido a los beneficios y a las pequeas diferencias. El color rojo se ha usado para marcar tags desaprobados, cuyo uso no es recomendado. Esto se debe a que han sido reemplazados por otros tags (por ejemplo, el tag applet ha sido reemplazado por el tag object) o porque las hojas de estilos se han convertido en la forma preferida de lograr sus mismos efectos. Nota, que los tags y atributos desaprobados en HTMLpueden no ser soportados por futuras versiones (por ejemplo, XHTML 1.0). Esta es una buena razn para dejar de usarlos. Nota: Si no sabes lo que es un tag y/o cmo se debe utilizar, te recomendamos que leas nuestro tutorial "tags y atributos HTML" que puedes encontrar en nuestra seccin de tutoriales HTML.

Lista de tags HTML


Tag <!-- --> <!DOCTYPE> <a> <abbr> <acronym> <address> <applet> <area> <b> <base> <basefont> <bdo> Vaco Descripcin corta Inserta comentarios ocultos Establece el tipo de documento Inserta vnculos o marcadores Explica abreviaciones Explica acrnimos Provee informacin de contacto Inserta un applet (scripts) Define sectores para mapas de imagen Texto en negrita URI base para resolver URIs relativas Tamao de la fuente predeterminado Suprime el algoritmo bidireccional

<big> <blockquote> <body> <br> <button> <caption> <center> <cite> <code> <col> <colgroup> <dd> <del> <dfn> <dir> <div> <dl> <dt> <em> <fieldset> <font> <form> <frame> <frameset> <h1> <h2> <h3> <h4> <h5> <h6> <head>

Texto en tamao "grande". Citar prrafos Contiene los elementos a mostrar Fuerza un quiebre de lnea Crea un botn Establece un ttulo para una tabla Centra su contenido Inserta una cita o referencia Representa texto de computadora Da atributos a columnas en una tabla Agrupa columnas en una tabla Define descripciones en una lista Indica texto eliminado Asigna una definicin a un trmino Inserta una lista de directorios (rbol) Define un bloque de contenido Define una lista Inserta un trmino en una lista Indica nfasis Agrupa controles en un formulario Establece el estilo de fuente Inserta un formulario Inserta un marco Inserta un grupo de frames Encabezado de nivel 1 Encabezado de nivel 2 Encabezado de nivel 3 Encabezado de nivel 4 Encabezado de nivel 5 Encabezado de nivel 6 Define el bloque de encabezado

<hr> <html> <i> <iframe> <img> <input> <ins> <isindex> <kbd> <label> <legend> <li> <link> <map> <menu> <meta> <noframes> <noscript> <object> <ol> <optgroup> <option> <p> <param> <pre> <q> <s> <samp> <script> <select> <small>

Dibuja una lnea o regla horizontal Contiene al documento Muestra texto en itlica Inserta un marco dentro del documento Inserta una imagen Muestra controles de entrada Indica texto insertado Entrada de lnea simple Indica texto a ingresarse por el usuario Establece una etiqueta para un control Asigna un ttulo a un "fieldset" Define un artculo en una lista Ofrece informacn relacional Define un mapa de imagen Lista men Da informacin sobre el documento Contenido alternativo para marcos Contenido alternativo para scripts Ejecuta aplicaciones externas Inserta una lista ordenada Agrupa opciones en un control select Define una opcin en un control select Define un prrafo Da un parmetro para un objeto Bloque de texto preformateado Inserta una cita en una lnea Muestra texto tachado Representa texto de programas Contiene scripts Crea un control select Muestra texto en letra "pequea"

<span> <strike> <strong> <style> <sub> <sup> <table> <tbody> <td> <textarea> <tfoot> <th> <thead> <title> <tr> <tt> <u> <ul> <var>

Asigna atributos al texto en lneas Muestra texto tachado Indica nfasis fuerte Define atributos visuales (hojas estilo) Define texto en sub-ndice Define texto en super-ndice Inserta una tabla Define un cuerpo en una tabla Celda regular de una tabla Entrada de texto de lneas mltiples Define un pie en una tabla Celda de encabezado de una tabla Define un encabezado de tabla Define el ttulo del documento Inserta una fila en una tabla Muestra texto en "teletype" Muestra texto subrayado Inserta una lista sin orden Indica una instancia de una variable

Variables de PHP Este ejemplo te mostrar informacin acerca de la instalacin de PHP en tu servidor o computadora, muchas veces es til para saber qu mdulos estn activos o cuales no, as como para identificar los lmites de memoria que tienen ciertas configuraciones que talvez te estn ocasionando problemas.

<html> <body> <?php phpinfo(); ?> </body> </html>

Identificando el navegador Adems de las variables locales y globales existen las _variables reservadas_ tambin conocidas como globales, a stas no se les puede asignar un valor, pues lo que contienen es informacin del servidor web o informacin del cliente que lo visita. El siguiente cdigo nos muestra el tipo de navegador que estamos utilizando para ingresar. <html> <body> <?php echo $_SERVER["HTTP_USER_AGENT"]; ?> </body> </html> Utilizando IF y las variables reservadas Ahora veamos un ejemplo combinando dos de los temas aprendidos en este tutorial, lo que haremos es evaluar si el navegador utilizado es Internet Explorer para entonces mostrar un mensaje. <html> <body> <?php if (strstr($_SERVER["HTTP_USER_AGENT"], 'MSIE')) { echo "Usted utiliza Internet Explorer<br />"; } ?> </body> </html> Como notarn, utilizamos una funcin llamada strstr al hacer el IF, lo que esto realiza es buscar una cadena de texto dentro de otra, en este caso la frase MSIE dentro del resultado de la variable $_SERVER y mostrarnos todo el texto que le sigue, otro ejemplo similar: <?php $nombre = 'Juan Carlos Lpez Morales'; $extraer = strstr($nombre, 'Carlos'); echo $extraer; // Nos devolver Carlos Lpez Morales ?> A la variable $extraer le estamos indicando que busque el texto Carlos dentro de $nombre, para que entonces nos devuelva Carlos ms el resto del contenido. Utilizando funciones predefinidas PHP tiene una cantidad de funciones listas para usarse tal como vimos con strstr , veamos algunos otros ejemplos. <?php

echo date("Y/m/d"

. "<br />";

echo date("Y.m.d"

. "<br />";

echo date("Y-m-d"

?> La funcin date() devuelve la fecha actual del servidor o computadora en donde estemos ejecutando el cdigo y la puede mostrar en diferentes formatos, tal como el ejemplo anterior en donde Y = al ao, m = al mes y d= da en valores numricos. Manual de PHP: Funciones Contenido [ocultar] 1 Funciones Bsicas 2 Funciones con Parmetros 3 Funciones con dos o ms Parmetros 4 Funciones con Retorno de informacin 5 Funciones con Retorno de mltiples valores

PHP posee cientos de funciones prediseadas tal como vimos algunas en mdulos anteriores, pero nosotros tambin podemos crear funciones propias que ejecuten ciertas instrucciones cada vez que hagamos un llamado a ellas. Por ejemplo, podemos crear una funcin que haga un calculo matemtico complejo cuando le enviemos dos valores, entonces en lugar de programar de nuevo ese clculo en cada momento que lo necesitemos, solo lo hacemos una vez como una funcin, y luego hacemos un llamado cada vez que vayamos a necesitar de ese bloque de programacin. Para declarar la funcin dentro de nuestros programas hacemos lo siguiente: function nombredeFuncion() { bloque de programacin; } Veamos algunos ejemplos, desde los ms sencillos para ir avanzando. Funciones Bsicas <html> <body> <?php function sitioweb() { echo 'Foros del Web'; } echo 'Bienvenido a nuestro sitio llamado '; sitioweb(); ?> </body> </html> En ste primer ejemplo iniciamos nuestro bloque de programacin creando nuestra primera funcin titulada sitioweb que tiene una impresin de pantalla por medio de echo , la funcin por si misma no hace nada hasta que la llamamos, an teniendo el echo el mensaje no se desplegar sino hasta que escribimos sitioweb(); Funciones con Parmetros Para hacer las funciones mucho ms tiles, podemos enviarles parmetros, es decir valores para que los utilice y realice algn clculo u operacin. <html>

<body> <?php function suma($valor1) { $valor2=10; echo "El resultado es " . ($valor1+$valor2); } echo "Sumar 15 + 10: "; suma(15); ?> </body> </html> En este caso lo que hacemos es ingresar dentro de los parntesis de suma() el valor de 15, all estamos llamando a la funcin por lo que el programa ejecutar el cdigo indicado arriba sumando el valor enviado ms el valor de la variable $valor2 para mostrarnos el resultado. Conviene poner los parntesis agrupando la operacin. Funciones con dos o ms Parmetros Similar al ejemplo anterior pero ahora enviando ms parmetros dentro del parntesis, como vemos debemos separar cada uno con una coma (,). Conviene poner los parntesis agrupando la operacin. <html> <body> <?php function suma($valor1,$valor2) { echo "El resultado es " . ($valor1+$valor2) ; } echo "Sumar 15 + 10: "; suma(15,10); ?> </body> </html> Funciones con Retorno de informacin En los ejemplos anteriores cada funcin imprime el resultado de la operacin automticamente, pero tambin podemos decirle que nos regrese ese resultado para que nosotros lo utilicemos en el espacio y momento que lo necesitemos. <?php function suma($valor1,$valor2) { $total=$valor1+$valor2; return $total; } echo "La suma de 15 + 10 es igual a " . suma(15,10); ?> Otro ejemplo: <?php function Cuadrado($numero) {

return $numero * $numero; } echo Cuadrado(4); // igual a 16 ?> Funciones con Retorno de mltiples valores En el ejemplo anterior vemos que return nos devuelve el resultado de una operacin o variable, pero en algunas ocasiones necesitamos ms de un dato, para ello utilizamos un arreglo (array) y la funcin llamada list. function numeros() { return array (0, 1, 2); } list ($cero, $uno, $dos) = numeros(); En return array() tenemos tres valores los cuales luego podemos asignar cada uno a una variable distinta gracias a la funcin list, de esa forma $cero tendr el primer valor, $uno tendr 1 y $dos el ltimo valor del arreglo. Manual de PHP: Utilizando Formularios para el envo de datos Contenido [ocultar] 1 $_GET y $_POST 2 Ejemplos de envo de informacin mediante GET 3 Ejemplos de envo de informacin mediante POST

Gran parte del trabajo que harn nuestros programas ser procesar informacin que los usarios ingresen a travs de formularios HTML, con esos datos podemos realizar operaciones en el momento o guardarlos a bases de datos por ejemplo. Vamos a ver cmo deben estar estructurados los formularios y luego explicaremos la conexin con nuestros programas enphp, la base de un formulario es la siguiente: <form action="programa.php" method="post" id=formulario> Nombre: <input type="text" name="nombre" /> Edad: <input type="text" name="edad" /> <input type="submit" /> </form> En este ejemplo, la etiqueta <form> sirve para armar el formulario en HTML, dentro de sta etiqueta estamos utilizando action para indicar que toda la informacin sea enviada al archivo llamado programa.php y por ltimo method es para especificar de qu forma ser enviada esa informacin para lo cual hay dos formas, GET y POST. $_GET y $_POST Cuando utilizamos $_GET dentro del php y el formulario, la informacin que enviamos ser visible por cualquier persona pues es mostrada en la barra de direcciones, por lo que no debemos utilizar ste mtodo para enviar contraseas o informacin sensible. Una limitante de GET es que solo puede enviar hasta 100 caracteres. Comparado a $_POST, la informacin enviada por esta forma es invisible pues no se muestra cuando se enva y prcticamente no hay un lmite en cuanto a tamao se refiere. Es recomendable utilizar el segundo mtodo cuando vamos a enviar informacin que por ejemplo va a ser almacenada en una base de datos y ya no va a ser modificada, o cuando vamos a enviar un formulario de contacto por ejemplo, y utilizamos GET cuando la informacin puede cambiar en

algn momento, por ejemplo, si estamos buscando algo en Google puede ser que los resultados no son los que necesitemos entonces regresamos a la pantalla anterior para modificar la informacin. Ejemplos de envo de informacin mediante GET Realicemos el primer ejemplo creando un archivo llamado formulario.php con el siguiente contenido utilizando el mtodo GET: <!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>Formulario</title> </head> <body> <form action="programa.php" method="get" id=formulario name=formulario> Nombre: <input type="text" name="nombre" id="nombre" /> Edad: <input type="text" name="edad" id="edad" /> <input type="submit" value="enviar" name="enviar" id="enviar" /> </form> </body> </html> Y creamos un archivo llamado programa.php con lo siguiente <html> <body> Bienvenido <?php echo $_GET['nombre'];?>. <br /> Tu edad es: <?php echo $_GET['edad'];?> aos. </body> </html> Ahora abrimos en el navegador formulario.html, ingresamos la informacin que se nos pide y veremos cmo nuestro programa procesa los datos. A simple vista podemos entender bastante bien cmo funciona, como vemos al utilizar $_GET['nombre']; lo que hacemos es capturar el campo llamado nombre del formulario: <input type="text" name="nombre" id="nombre" /> Y lo mostramos utilizando echo tal como aprendimos a imprimir en pantalla las variables. o Captura de pantalla* En el ejemplo anterior la barra de direcciones lucira de la siguiente forma: http://localhost/programa.php?nombre=Juan&age=25 Ejemplos de envo de informacin mediante POST Ahora veamos cmo funciona POST, en donde al enviar la informacin la barra de direcciones quedara como http://localhost/programa.php Crear un archivo llamado formulario.html <html>

<body> <form action="archivo.php" method="post" id=formulario> Nombre: <input type="text" name="nombre" /> Edad: <input type="text" name="edad" /> <input type="submit" /> </form> </body> </html> Y otro llamado programa.php: <html> <body> Bienvenido <?php echo $_POST["nombre"]; ?>,<br /> Tu edad es: <?php echo $_POST["edad"]; ?> aos. </body> </html> Como vemos cuando en el formulario utilizamos method=get en la programacin tambin debemos utiliza $_GET, igual para post, sin embargo tambin existe $_REQUEST que puede obtener la informacin de los formularios sin importar qu metodo se utiliza, ejemplo: Bienvenido <?php echo $_REQUEST["nombre"]; ?>,<br /> Tu edad es: <?php echo $_REQUEST["edad"]; ?> aos. <input type="text" name="nombre" id="nombre" /> Y lo mostramos utilizando echo tal como aprendimos a imprimir en pantalla las variables. En el ejemplo anterior la barra de direcciones lucira de la siguiente forma: http://localhost/programa.php?nombre=Juan&age=25 Manual de PHP: Tipos de control para los formularios Contenido [ocultar] 1 Inputs 2 Radio 3 Checkbox 4 Textarea

Un formulario puede tener diversos tipos de datos para la recoleccin de informacin, vamos a ver algunos de ellos junto a una breve explicacin, te recomiendo irlos probando dentro de un documento .html para que veas cmo funcionan. Inputs Son campos regularmente para el ingreso de texto, son los que vemos en los formularios de contacto para ingresar nombre, correo electrnico, etc. Sintaxis: <form>

<label for="nombre_campo">Texto</label> <input id="nombre_campo" type="text" name="nombre" value="texto_default" /> </form> La primera lnea label sirve para identificar el nombre del campo que le sigue, es adems la etiqueta que aparece para que el usuario sepa qu dato se le est pidiendo que llene aunque no es necesario encerrarlo en una etiqueta label. Otra variante de este Input es el de tipo password que hace que el texto que se escribe en el sea reemplazado por smbolos como proteccin: <input id="contrasea" type="password" name="contrasea" value=""" /> Y tambin podemos ocultar stos campos de texto colocndole el type=hidden lo cual nos sirve para enviar alguna informacin ya predefinida junto a todo lo que el usuario ingrese. <input type="hidden" name="contador" value="350 /> El ltimo tipo de input que veremos es el submit que es el botn que regularmente hacemos click para poder enviar un formulario con la informacin que llenamos. <form name="input" action="programa.php" method="get"> Nombre: <input type="text" name="nombre" /> <input type="submit" value="Enviar" /> </form> Radio Los controles de tipo Radio son los que vemos que tienen una forma redonda y se pueden utilizar para preguntar opciones de tipo falso/verdadero, masculino/femenino, etc y en donde solo puede estar seleccionada una de las opciones: <form> <label for="nombre_input">Masculino</label> <input type="radio" name="sexo" value="masculino" checked="checked"/> <label for="nombre_input">Femenino</label> <input type="radio" name="sexo" value="femenino" /> </form> Checked nos sirve para indicar que queremos que ese campo aparezca seleccionado desde un inicio. Checkbox Estos controles son usados cuando se necesita que se pueda seleccionar una o ms opciones de las que se presentan, o tambin cuando solo se presenta una opcin y necesitamos que el usuario la marque por ejemplo para poder continuar con algn proceso. <form> Mac OS <input type="checkbox" name="sistema" value="mac" checked="checked"/> <br /> Windows <input type="checkbox" name="sistema" value="windows" /> <br /> Apple <input type="checkbox" name="sistema" value="linux" /> </form> El campo value puede contener tambin nmeros,

Textarea A diferencia del primer input que vimos, los textarea son campos grandes para ingreso de texto multilnea en donde podemos especificar la cantidad de stas y de columnas que queramos. <form> <textarea id="comentario" name="comentario" rows="10" cols="30"> texto default si deseamos </textarea> </form> Manual de PHP: Bases de Datos Contenido [ocultar] 1 Introduccin a las bases de datos 2 El lenguaje SQL 3 Gestores de bases de datos

Introduccin a las bases de datos Como ya vimos en los tutoriales bsicos, una de las ventajas de PHP es que, al ser un lenguaje interpretado por el servidor, permite generar pginas HTML dinmicas, es decir, que van cambiando su contenido en base a distintas situaciones. El ejemplo clsico es mostrar un mensaje de bienvenida a los usuarios registrados de nuestro sitio, y uno distinto a aquellos visitantes no registrados. Es decir, hemos personalizado el contenido mostrado antes de envirselo al usuario como HTML. Habiendo recordado este punto muy importante, entenderemos fcilmente la funcin de las bases de datos. En trminos simples, constituyen un sistema de almacenamiento organizado de datos, en los cuales se pueden ingresar nuevos datos, modificar los ya existentes, leerlos y procesarlos, o incluso eliminarlos. Cabe sealar que aqu nos vamos a referir al modelo de bases de datos relacional, puesto que existen muchos modelos distintos de bases de datos. En general, vamos a ver que una base de datos relacional est formada por mltiples tablas, y cada tabla de una serie de datos o registros. Las tablas son los contenedores de informacin. En nuestra base de datos podremos tener mltiples tablas, cada una destinada a un fin especfico. En una guardaremos los datos de los usuarios registrados en nuestro sitio, en otra pondremos los mensajes de visita, y en otra las noticias. Podemos crear tantas tablas como necesitemos para el sistema que queremos crear. Cada tabla est formada por una serie de columnas, llamadas usualmente campos o atributos. stas van a contener un determinado tipo de datos, como nmeros o texto, y van a estar representadas por un nombre nico que las va a identificar. Por ejemplo, si queremos tener un sistema de comentarios en nuestro sitio, tendremos una tabla llamada comentarios, y en ella mltiples columnas, como nombre, fecha, ip, email y comentario. Una prctica estndar muy recomendada es tener siempre una columna ndice que va a identificar cada registro en nuestra tabla. Por lo tanto, a nuestros campos aadiremos uno llamado id. Una fila es un registro de datos. Podemos tener tantas filas en nuestra tabla como capacidad tenga nuestro servidor. Siguiendo el ejemplo anterior, cada nuevo comentario que deje un usuario ser almacenado en nuestra tabla destinada a ello, junto con los otros datos como su nombre, fecha, etc. Este conjunto de datos que vamos a insertar en la tabla constituye un registro o una fila dentro de ella. Un ejemplo de tabla en una base de datos relacional:

El lenguaje SQL Una base de datos es un sistema que dispone de su propio lenguaje, muy diferente al lenguaje PHP. Hay muchos lenguajes en funcin de la base de datos, pero el que vamos a utilizar es el conocido lenguaje SQL, este est formado por una serie de instrucciones, las cules van a modificar, agregar o eliminar los datos almacenados en la base de datos. No es el objetivo de este tutorial profundizar en este lenguaje. Para poder interactuar con la base de datos PHP dispone de una serie de funciones, las cules permiten tres tipos de operaciones bsicamente: Abrir/cerrar conexiones con los servidores de bases de datos Ejecutar consultas SQL Trabajar sobre el resultado de dichas consultas Gestores de bases de datos Los Sistemas Gestores de Bases de Datos (SGBD), son los encargados de facilitarnos la creacin y manipulacin de las bases de datos. Existen un gran nmero de gestores de bases de datos, y PHP dispone de herramientas para integrar y relacionar sistemas con muchos de ellos. Nosotros utilitzaremos, evidentemente, los de bases de datos relacionales, y entre los ms conocidos destacan: MySQL Manual de PHP & MySQL PostgreSQL Oracle ODBC En todas ellas se usa el lenguaje SQL. La ms usada y conocida es MySQL, pero PHP puede tambin interactuar con las dems. Cabe destacar que, pese a que conozcamos el lenguaje SQL y estos SGBD estn basados en l, puede que algunas instrucciones determinadas no funcionen en algunos de stos. Esto es porque en realidad estos gestores pueden haber redefinido en mayor o menor medida el lenguaje para lograr el objetivo para el que fueron diseados. Sin embargo, esto slo suele ocurrir en las instrucciones ms avanzadas, en cuyo caso si recibimos un error de sintaxis deberamos recurrir al manual para comprobar cul es la instruccin adecuada para nuestro propsito. Manual de PHP: MySQL De Foros del Web Saltar a navegacin, buscar Contenido [ocultar] 1 Videotutorial 2 Conectar y desconectar al servidor 3 Seleccionar la base de datos 4 Realizar consultas 5 Procedimientos ms comunes o 5.1 SELECT: Obtener los datos 5.1.1 Leer los datos devueltos 5.1.2 Calcular el nmero de filas 5.1.3 Obtener un dato especfico 5.1.4 Liberando la memoria o 5.2 INSERT: Insertar datos o 5.3 UPDATE: Modificar registros o 5.4 DELETE: Borrar registros

Como mencionamos al hablar de bases de datos, MySQL es el gestor de bases de datos ms difundido y quizs el ms usado. PHP dispone de un amplio grupo de funciones para interactuar con este motor, haciendo que el manejo de la informacin almacenada en la base de datos desde un script PHP sea muy fcil. Ya mencionamos que para poder enviarle instrucciones al servidor MySQL tenemos que hacerlo en su propio lenguaje, el lenguaje SQL. Conforme vayamos desarrollando cada seccin iremos viendo la sintaxis bsica de las sentencias SQL ms usadas. Videotutorial A continuacin puedes ver un video con un ejemplo de como conectarse a una base de datos de mySQL y extraer informacin, el video est basado en los ejemplos y la documentacin que leers en esta misma pgina. Conectar y desconectar al servidor Antes de ejecutar cualquier consulta SQL debemos primero abrir una conexin con el servidor MySQL. Para ello disponemos de la funcin mysql_connect(). Para abrir una conexin debemos contar con la direccin del servidor MySQL (proporcionada por el proveedor de hosting, o en su defecto localhost), un nombre de usuario y una contrasea, los cules pasaremos como parmetros a esta funcin. $servidor = 'localhost'; $usuario = 'root'; $clave = 'abcdef'; mysql_connect($servidor, $usuario, $clave); Luego de hacer esto tendremos una conexin abierta con nuestro servidor MySQL, y podemos ahora trabajar sobre ella. Ocasionalmente necesitaremos conectarnos a dos o ms servidores simultneamente (de hecho son casos muy excepcionales). Para poder lograrlo debemos trabajar tambin con recursos de conexin. Un recurso es, en trminos simples, una variable que lleva consigo la llave de determinado proceso. La funcin mysql_connect() genera un recurso de conexin, llamado identificador de enlace, que lleva consigo la conexin abierta con el servidor MySQL. Podemos usar ese recurso para hacer referencia a esa conexin de forma especfica. Para obtenerlo basta con asignar la funcin vista a una variable que se convertir en el recurso para esa conexin: $conexion = mysql_connect($servidor, $usuario, $clave); Como casi nunca tendremos que abrir varias conexiones simultneas, no tocaremos ms el tema de los identificadores de enlace. Slo tienes que saber que estn ah. Tambin disponemos de mysql_close(), una funcin destinada a cortar la conexin abierta con el servidor MySQL. Antiguamente se sugera siempre cerrar la conexin con el servidor MySQL al terminar de ejecutar todas las consultas SQL, argumentando que se liberaba la memoria usada por sta en el servidor; pero ahora se sugiere dejarla abierta, ya que al terminar la ejecucin del script todas las conexiones abiertas son cerradas automticamente; adems, si por alguna razn se necesita volver a consultar a la base de datos tendremos que abrir nuevamente la conexin, y eso s genera una carga totalmente innecesaria al servidor. Por lo tanto, el uso de mysql_close() debe quedar reservado exclusivamente para aquellos casos en los que se requiera procesar una gran cantidad de informacin tras ejecutar las consultas SQL. En general, nunca cerraremos la conexin con el servidor MySQL; bastar con indicar entonces que para hacerlo basta con llamar a esa funcin: mysql_close();

Seleccionar la base de datos Una vez que tenems abierta la conexin con el servidor MySQL debemos seleccionar nuestra base de datos. Aclaremos que el servidor MySQL no es lo mismo que la base de datos. Un servidor contiene numerosas bases de datos, nosotros podemos crear nuevas bases de datos o borrar alguna del servidor. Por lo tanto, es imprescindible indicarle al script y al servidor sobre qu base de datos vamos a trabajar. Para realizarlo, usamos la funcin mysql_select_db(), a la cul pasaremos como parmetro el nombre de nuestra base de datos. mysql_select_db('base_de_datos'); Una vez seleccionada la base de datos, podemos empezar a ejecutar consultas SQL. Realizar consultas Como ya hemos venido diciendo, las consultas SQL, o tambin conocidas por su nombre en ingls como queries, son instrucciones que le enviamos al servidor MySQL para que ejecute determinada tarea. Una consulta, en trminos prcticos, no es ms que una cadena de texto. Para ejecutar la consulta debemos usar la funcin mysql_query() pasndole como parmetro la cadena de texto que contiene la consulta SQL. Al llamarla as, estaremos haciendo una consulta a la base de datos. Al igual que mysql_connect(), esta funcin tambin crea un recurso, el cul no ser til despus paratrabajar en base a la consulta que hemos realizado. Veamos un ejemplo de todo lo visto hasta ahora: mysql_connect('localhost', 'admin', ''); mysql_select_db('mi_base_de_datos'); $query = mysql_query('SELECT * FROM tabla'); Al realizar la consulta, tenemos el recurso $query que podremos usar luego para leer los datos devueltos por la consulta o trabajar sobre ella. NOTA: es muy frecuente ver que muchos intentan usar el recurso devuelto por mysql_query() como si fuese el resultado en s de la consulta. Debemos aclarar que por s slo este recurso no representa nada, no se puede imprimir ni se puede emplear directamente, sino a travs de otras funciones que veremos en las siguientes secciones. Procedimientos ms comunes En esta seccin vamos a revisar las tareas ms frecuentemente usadas al trabajar con bases de datos. Para hacerlo, pensemos que tenemos una base de datos llamada "principal" y una tabla en ella llamada "comentarios" que tiene la siguiente estructura: * id almacena el identificador de cada registro, es un campo autoincrementable, esto quiere decir que para cada registro el valor de este campo se incrementa en 1. * nombre el nombre de la persona que enva el comentario * email la direccin de correo de la persona que enva el comentario * comentario el comentario del usuario * estado el estado actual del comentario (publicado, eliminado o spam) No profundizaremos en el cdigo SQL usado para crear la bases de datos o esa tabla en ella, pues no es algo que vayamos a realizar rutinariamente en nuestros scripts. Adems existen aplicaciones como PHPMyAdmin que van a facilitar estas tareas. Basta con indicar que las consultas SQL son estas: Crear la base de datos CREATE DATABASE 'principal'; Crear la tabla comentarios CREATE TABLE `comentarios` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `nombre` CHAR( 75 ) NOT NULL ,

`email` CHAR( 75 ) NOT NULL , `comentario` LONGTEXT NOT NULL , `estado` CHAR( 20 ) NOT NULL ) Si realmente deseas profundizar en el tema del lenguaje SQL puedes leer el manual de SQL en Maestros del Web. Vamos a revisar los procedimientos ms comunes al hablar de bases de datos, los cules son: SELECT: Obtener los datos existentes INSERT: Insertar nuevos datos UPDATE: Actualizar los datos existentes DELETE: Eliminar datos existentes SELECT: Obtener los datos La primera tarea que vamos a ver es la extraccin de datos de una base de datos. La sentencia SQL que usaremos es SELECT. Nos permite seleccionar los datos de una tabla especfica en nuestra base de datos. La sintaxis bsica de una consulta tipo SELECT es: SELECT campo1, campo2, ... FROM tabla Veamos un ejemplo sencillo: // La consulta SQL $sql = "SELECT nombre, email FROM comentarios"; $query = mysql_query($sql); Con esta consulta le estamos pidiendo al servidor MySQL que nos enve el nombre y email de todos los registros en la tabla comentarios. Si quisiramos todos los datos, en vez de colocar uno a uno los nombres de los campos podemos usar un asterisco (*) para hacer referencia a todas las columnas de la tabla. Podemos hacer la consulta un poco ms especfica, para ello hacemos uso de las clasulas disponibles para esta sentencia. Una clasula acta igual que un parmetro para los tags HTML. Veamos las ms comunes: WHERE: Acta como un filtro en la consulta SQL, haciendo que sta devuelva slo los campos que cumplan con los criterios all establecidos (WHERE campo1 = 'valor1' AND campo2 = 'valor2'). Lo ms comn es hacer comparaciones, donde comparamos el valor de un campo con un valor gua. LIMIT: Define cuntos registros queremos que nos devuelva la consulta SQL y desde dnde debe empezar a extraer (LIMIT registro_inicial, nmero_de_registros). El primer registro en nuestro resultado va a ser el registro cero (0), por lo que si queremos extraer 3 registros a partir del segundo deberemos poner LIMIT 1, 3 ORDER BY: Ordena los resultados en base a una columna (ORDER BY campo ASC/DESC). Por ejemplo, si queremos ordenar en orden alfabtico (ascendente) en base al campo nombre, pondremos ORDER BY nombre ASC Veamos la nueva consulta, pero esta vez ms especfica: // La consulta SQL $sql = "SELECT * FROM comentarios WHERE estado = 'spam' ORDER BY id DESC LIMIT 0, 3"; $query = mysql_query($sql); Si despedazamos la consulta, veremos que le estamos pidiendo al servidor MySQL que nos devuelva todos los campos (SELECT *) de los registros de la tabla 'comentarios' (FROM comentarios) cuyo estado es 'spam' (WHERE estado = 'spam'), pero ordenndolos en orden descendente en base al valor del campo 'id' (ORDER BY id DESC) y que slo nos d 3 registros empezando por el primero (LIMIT 0, 3).

Hecha la consulta hemos obtenido un recurso, y lo hemos guardado en la variable $query. Ahora podemos trabajar sobre esa consulta haciendo referencia a esa variable. Leer los datos devueltos Como dijimos anteriormente, un recurso no puede ser usado directamente para imprimir los resultados, sino que debe asociarse a una funcin segn lo que queremos realizar. Empezaremos explicando cmo leer los registros que coincidieron con nuestra consulta. Para hacer ello, PHP tiene la funcin mysql_fetch_assoc(), la cul genera un arreglo que contiene como ndices los nombres de los campos (array asociativo), cada uno con su valor correspondiente, para cada registro que devolvi nuestra consulta. En cada llamada a esta funcin se devuelve un fila o registro, por lo que, para leer todos los registros debemos llamar la funcin tantas veces como filas haya devuelto nuestra consulta. Es por ello que, para leer las filas de una consulta SQL, se usa generalmente un ciclo while, basndonos en el principio de que, al terminar de leer todas las filas y volver a llamar a la funcin mysql_fetch_assoc(), sta devolver false, lo cul determiar el fin del ciclo. Existen otras funciones similares, como mysql_fetch_row(), que devuelve los datos con ndices numricos (array numrico); mysql_fetch_array(), que devuelve un array que es a la vez asociativo y numrico (array mixto); y mysql_fetch_object(), que devuelve un objeto en vez de un array. En el ejemplo anterior habamos hecho la consulta SQL y ya tenamos el recurso $query para trabajar sobre esa consulta. Ahora veamos el cdigo con el cul recogemos las filas: while($fila = mysql_fetch_assoc($query)) { echo 'El comentario #' . $fila['id'] . ' escrito por ' . $fila['nombre'] . ' ( ' . $fila['email'] . ') es spam<br>'; } Si te fijas en el ejemplo, en cada ciclo creamos un array $fila que contiene los datos de la fila correspondiente a ese ciclo. Como estamos usando mysql_fetch_assoc(), obtenemos un array asociativo, esto quiere decir que los ndices del array son los nombres de los campos de la tabla en la base de datos. Usando la tabla que especificamos al inicio, con esta consulta obtendremos lo siguiente: El comentario #9 escrito por Brenda (brenda@proveedor.tld) es spam El comentario #6 escrito por Mara (maria@proveedor.tld) es spam El comentario #5 escrito por Miguel (miguel@proveedor.tld) es spam Es importante que notes que, en la condicin del while no hacemos una comparacin (== ===), sino una asignacin (=). En la prctica, la asignacin $variable = false devuelve en su conjunto false, y como ya mencionamos, al llegar al final de los resultados la funcin mysql_fetch_assoc() devuelve false. Por eso es que el ciclo funciona. Calcular el nmero de filas Muchas veces queremos saber cuntas filas ha devuelto nuestra consulta. Para hacerlo tenemos a nuestra disposicin la funcin mysql_num_rows(), que nos dir este valor: . $total = mysql_num_rows($query); if($total == 0) { echo 'La consulta no devolvi ningn resultado'; } else { echo 'La consulta devolvi ' . $total . '$filas'; // Podemos mostrar aqui los resultados (while...) } Obtener un dato especfico Mencionemos tambin que podemos obtener el dato de un campo dentro de un registro o fila especfico. Para eso usamos la funcin mysql_result(). La sintaxis bsica es:

mysql_result(recurso, fila, campo); El recurso es el resultado devuelto por la llamada a mysql_query(), la fila es el nmero de fila que queremos extraer (Recordemos que la primera fila es cero!), y como parmetro opcional campo debemos indicar el nombre o nmero del campo deseado si en nuestra consulta solicitamos ms de una columna. Veamos algunos ejemplos tomando como base el ejemplo anterior: echo mysql_result($query, 0, 'nombre'); // Imprime: Brenda echo mysql_result($query, 1, 'email'); // Imprime: maria@proveedor.tld echo mysql_result($query, 2); // Imprime: 5 (No escribir el campo hace que se tome el valor del primer campo, en este caso id) echo mysql_result($query, 0, 2); // Imprime: brenda@proveedor.tld (El campo #2 es 'email' {tercer campo}) Liberando la memoria Podemos usar mysql_free_result() para liberar la memoria usada por la consulta SELECT actual. Sin embargo, no es necesario hacerlo a menos que estemos trabajando con un montn muy grande (demasiado grande) de datos. mysql_free_result($query) INSERT: Insertar datos Para insertar datos podemos usar la sentencia INSERT. Esta sentencia tiene dos sintaxis bsicas, de las cules la primera es la ms usada y conocida: INSERT INTO tabla (campo1, campo2, ...) VALUES ('valor1', 'valor2', ...) INSERT INTO tabla SET campo1 = 'valor1', campo2 = 'valor2', ... El siguiente ejemplo muestra cmo podramos insertar nuevos datos a nuestra tabla de ejemplo: $sql = "INSERT INTO comentarios (nombre, email, comentario, estado) VALUES ('lex', 'alex@proveedor.tld', 'Comentario de lex', 'publicado')"; mysql_query($sql); A diferencia de la sentencia SELECT, mysql_query() no retornar un recurso cuando se ejecuta una sentencia INSERT. En su lugar retornar el valor booleano true si la consulta se ejecut con xito, y false en el caso contrario. Es posible agregar varias filas usando la misma consulta, slo hay que separar los grupos VALUES con comas, de la siguiente forma: $sql = "INSERT INTO comentarios (nombre, email, comentario, estado) VALUES ('Johanny', 'johanny@proveedor.tld', 'Comentario de Johanny', 'publicado'), ('Mayra', 'mayra@proveedor.tld', 'Comentario de Mayra', 'publicado'), ('Xiomara', 'xiomara@proveedor.tld', 'Comentario de Xiomara', 'publicado') "; mysql_query($sql); Podemos usar, adicionalmente, la funcin mysql_affected_rows() para saber cuntas filas se insertaron tras la ejecucin de la consulta: echo 'Se insert ' . mysql_affected_rows() . ' nuevos registros'; Por ltimo, podemos omitir el especificar los nombres de los campos de la tabla a la cul queremos insertar los datos, pero en los grupos VALUES tendremos que implcitamente hacer referencia a ellos. Vale decir, el primer valor ir al primer campo, el segundo ir al segundo campo, y as sucesivamente: $sql = "INSERT INTO comentarios VALUES (NULL, 'Patty', 'patty@proveedor.tld', 'Comentario de Patty', 'publicado')";

mysql_query($sql); Nota que el valor NULL corresponde al campo id, y le asignamos un valor nulo porque al ser un campo auto_increment su valor va aumentando automticamente al crear nuevos registros. UPDATE: Modificar registros Para actualizar registros en la base de datos hacemos uso de la sentencia UPDATE. Su sintaxis bsica es: UPDATE tabla SET campo1 = 'valor1', campo2 = 'valor2', ... WHERE campoA = 'valorA' AND campoB = 'valorB' AND ... En este caso definimos una clasula WHERE para indicarle al servidor qu filas son las que deseamos modificar. Puede ser una nica fila, o mltiples filas, siempre que cumplan con los criterios establecidos. $sql = "UPDATE comentarios SET comentario = 'Este comentario ha sido marcado como spam' WHERE estado = 'spam'"; mysql_query($sql); En este ejemplo vamos a modificar el valor del campo comentario de nuestra tabla para todos los registros cuyo campo estado tenga como valor spam, y les vamos a asignar el valor textual 'Este comentario ha sido marcado como spam'. Al iguul que en el caso de INSERT, la funcin mysql_query() no retorna un recurso, sino un valor booleano. Y tambin aqu podemos usar la funcin mysql_affected_rows() para obtener el nmero de filas modificadas por la consulta. En nuestro ejemplo: echo 'Se han modificado ' . mysql_affected_rows() . ' filas'; Y en este caso nos dira que se han modificado 3 (las 3 que tienen como estado spam). DELETE: Borrar registros Finalmente, la ltima sentencia que vamos a ver es la sentencia DELETE. Su sintaxis es: DELETE FROM tabla WHERE campo1 = 'valor1' AND campo2 = 'valor2' AND ... Y tambin aqu podemos usar la funcin mysql_affected_rows() para determinar el nmero de filas eliminadas de la tabla con la ejecucin de la consulta. Ejemplo: $sql = "DELETE FROM comentarios WHERE estado = 'eliminado'"; mysql_query($sql); echo 'Se han eliminado ' . mysql_affected_rows() . ' registros'; Con este ejemplo, estamos eliminando de la tabla comentarios todas las filas cuyo campo estado tenga el valor de eliminado, que en total son 3 filas.

Como has visto a lo largo de este manual, desde PHP podemos controlar todos los datos existentes en nuestra base de datos. Usando formularios y tomando los datos introducidos podemos crear muchas aplicaciones dinmicas, como blogs, sistemas de comentarios, o sistemas de noticias. Las 4 sentencias vistas son las sentencias bsicas del lenguaje SQL, pero hay muchas ms que hacen ms sencillo todava el trabajar con bases de datos. Te invito a que investigues y leas un poco sobre todas ellas. PHP: Instrucciones para agregar una pregunta al FAQ de PHP En este pequeo tutorial van los pasos para incluir registros de las FAQ's de forosdelweb.com en este WIKI. 1. Iniciar sesin en el wiki (Para editar en el wiki es necesario ingresar con nombre y usuario de forosdelweb.com) 2. Agregamos una nueva pgina al Wiki. Para ello, solo hace falta escribir la pregunta como parte del URL en nuestro navegador. Por ejemplo:

http://www.forosdelweb.com/wiki/PHP: Titulo de la nueva pregunta Esto nos llevar a la generacin de un nuevo registro del Wiki. Ntese que hemos utilizado "PHP:" para organizar el conjunto de preguntas bajo el tema PHP. 3. Llegaremos a un registro no existente con la siguiente leyenda: En este momento no hay texto en esta pgina, puedes buscar por el ttulo de esta pgina en otras pginas o editar esta pgina.. All debemos ir a la opcin de editar en la parte superior. 4. El ttulo ya quedar registrado y solo hace falta incluir la informacin de la pregunta y respuesta. En caso de que incluyamos cdigo, favor de incluirlo con los tags de <php> < /php> lo que resaltar y colorear el cdigo. 5. Para incluir el crdito de forma vistosa, podemos firmar la entrada con nuestro nombre de usuario y la fecha: ----- [http://www.forosdelweb.com/miembros/usuario/ Usuario] 12 Feb 2009 6. Tambin debemos asegurarnos de incluir las categoras de PHP, FAQs y la plantilla del pie de pgina: {{Php}}

[[Category

HP]]

[[Category

AQ]]

7. El ltimo paso consiste en incluir la pregunta en el ndice del FAQ de PHP. Para ello podemos editar esta pgina e incluirla dentro de la categora correspondiente. Manual de PHP: Cookies Las Cookies o Galletas son pequeos archivos que se guardan en la computadora del usuario o visitante de un sitio en donde se almacena o lee informacin del navegador para poder identificarlo. En PHP se pueden crear cookies mediante la funcin setcookie() Los valores almacenados en las cookies se convertirn automticamente en variables que luego podremos leer y a las cuales podemos asignar distintos valores en nuestro programa. Sintaxis y Ejemplos Para asignar un valor a una cookie utilizamos el siguiente cdigo . setcookie("nombre",valor,expiracin); Nota: Para asignar valores a una cookie, no se deben haber enviado ninguna cabecera previamente. Generando una Cookie que funcione en www.dominio.com / dominio.com / sub.dominio.com <?php //observad la "/" que sirve para llamar directamente al nombre de dominio //y no a una subcarpeta. Si no lo pusiramos la cookie se llamara: //midominio.com.midominio.com. //el "0" sirve para indicar si es 1 solo se envia la cookie por HTTPS, si es 0 por HTTP y HTTPS setcookie("micookie", "valor", time()+10000, "/", ".midominio.com", 0); ?> Argumentos en una Cookie Name (Nombre) Value (Valor) Expire (Tiempo de Expiracin) Path (Ruta) Domain (Dominio) Secure (https) Leyendo valores almacenados en una cookie Para poder leer un valor que est dentro de una cookie utilizamos $_COOKIE $_COOKIE["nombre"]; Manual de PHP: Sesiones Cuando un usuario visita una aplicacin o sitio Web programado en PHP regularmente navega en distintas partes y pginas del sitio las cuales pueden tener relacin entre ellas, por ejemplo si tenemos una tienda en lnea queremos saber cuando un usuario ingresa, naevga por los productos y al final se registra y agrega productos al carrito de compras. El reto es identificar a ese usuario como nico en toda la aplicacin y verificar en cada pgina que visita qu privilegios tiene o qu configuraciones ha modificado para presentarle la informacin correcta, para esto utilizamos lo que se llaman Sesiones (Sessions). Contenido [ocultar] 1 Cmo funcionan las sesiones

2 Duracin de las sesiones 3 Funciones para el manejo de sesiones 4 Ejemplos Cmo funcionan las sesiones Y sabemos que con PHP podemos enviar variables a travs de las URLs tal como hemos visto en los formularios, pero tendramos que estar enviando esta informacin constantemente a travs de todas las URLs o pginas que visite el usuario, y por otro lado tambin podemos leer y almacenardatos en las cookies sin embargo el soporte de stas no est activada en todos los navegadores o algunos usuarios las desactivan, por eso utilizamos las Sesiones. Lo que hacemos es asignar un identificador nico a cada usuario que nos visita y guardar ciertos valores que vamos a utilizar durante toda su visita para acceder a ellos en cualquier momento que los necesitemos sin necesidad de estar declarndolos en cada pgina que ingrese. Duracin de las sesiones Las sesiones se inician o abren cuando un usuario visita un sitio, permanece activa durante toda esa visita y se cierra al cerrar la ventana o pestaa del navegador con dicho sitio. Funciones para el manejo de sesiones session_start Inicializar los datos de una sesin session_destroy Destruye todos los datos guardados en una sesin session_register(nombre) Registrar una o ms variables globales con la sesin actual session_unregister(nombre) Desregistrar una variable de la sesin actual session_is_registered(nombre) Comprueba si una variable est registrada en la sesin session_cache_expire Devuelve la caducidad actual del cach session_cache_limiter Lee y/o cambia el limitador del cach actual session_commit Alias of session_write_close session_decode Decodifica los datos de una sesin a partir de una cadena session_encode Codifica los datos de la sesin actual en una cadena session_get_cookie_params Obtiene los parmetros de la cookie de la sesin session_id Lee y/o cambia el session id actual session_is_registered Comprueba si una variable est registrada en la sesin session_module_name Lee y/o cambia el mdulo de la sesin actual session_name Lee y/o cambia el nombre de la sesin actual session_regenerate_id Actualizar el id de sesin actual con una recin generada session_save_path Lee y/o cambia la ruta donde se guardan los datos de la sesin actual session_set_cookie_params Cambia los parmetros de la cookie de la sesin session_set_save_handler Establece unas funciones para el almacenamiento de los datos de la sesin a nivel de usuario session_unset Elimina todas las variables de la sesin session_write_close Escribe los datos de la sesin y la finaliza Ejemplos Cmo Guardar y leer variables en una sesin Cdigo de ejemplo para autenticarse en un sitio utilizando Sesiones en PHP Manual de PHP: Subiendo archivos al servidor con PHP PHP tiene un par de funciones muy simples para que un visitante, pueda mandarnos un archivo desde su computadora, y nosotros podamos guardarlo en el servidor, en el lugar y con el nombre

que queramos. Para eso, crearemos 2 archivos, uno ser un formulario HTML, donde el usuario tendr el campo para poder subir el archivo, y otro archivo, PHP, que tomara ese archivo y lo colocara en nuestro servidor. Entonces, los archivos sern: Formulario_Subida.html <HTML> <HEAD> <TITLE> YO SUBO EL ARCHIVO </TITLE> </HEAD> <BODY> <FORM action="GuardarArchivo.php" method="POST" enctype="multipart/form-data"> <input type="hidden" name="MAX_FILE_SIZE" value="5120"> Subir este archivo: <br><br> <input name="userfile" type="file"><br><br><br> <input type="submit" value="Subir"> </FORM> </BODY> </HTML> En este archivo solo tenemos 3 cosas para destacar: La primera, es que si se va a utilizar un campo de subida de archivos, el Form debe tener el mtodo enctype con el valor multipart/form-data. Esto es necesario par que funcione. La segunda es el <TAG> de tipo hidden con el nombre MAX_FILE_SIZE que le dice al navegador el tamao mximo del archivo a subir. Este mtodo de control no es muy seguro ya que se puede saltear, y adems depende del navegador si es tomado en cuenta o no. La tercera es el <TAG> de tipo file, el cual me muestra el campo con el botn examinar, para poder seleccionar el archivo a subir. Este campo no tiene por defecto, una forma de mejorar su aspecto, o el nombre del botn. Pero se puede lograr usando CSS. Guardar_Archivo.php <? $nombre = $_FILES['userfile']['name']; //nombre con el que lo subi el usuario $tipo = $_FILES['userfile']['type']; //tipo de archivo (jpg,gif,rar,txt,etc) $tamano = $_FILES['userfile']['size']; //tamao del archivo en Kb; 1024Kb = 1Mb $error = $_FILES['userfile']['error']; //si apareci algn error en la subida $nombre_temporal = $_FILES['userfile']['tmp_name']; //Nombre temporal que se le asigna al archivo cuando sube a tu servidor $nuevo_nombre = 'EL Archivo' //Reviso que el archivo sea del tipo ZIP o RAR; y que pese menos de 5Mb

if (!((strpos($tipo, "rar"

|| strpos($tipo, "zip"

) && ($tamano_archivo < 5120))) {

echo "El tipo de archivo o el tamao no es correcto."; }else{ //Verifico que pueda mover el archivo y cambiarle el nombre. El archivo se guardar donde esta la pagina if (move_uploaded_file(FILES['userfile']['tmp_name'], $nuevo_nombre)){ echo "El archivo subi!!."; }else{ echo "Error al subir el archivo. Intntelo nuevamente."; } } ?> Este es el archivo php que hace todo el trabajo. Aunque casi todo el cdigo esta comentado, explicaremos cada lnea del cdigo. $_FILES = $HTTP_POST_FILES Es una variable global, propia de PHP que obtiene todos los datos. Esta variable esta disponible desde la versin 4.1.0, las versiones anteriores deben usar $HTTP_POST_FILES. Para obtener estos datos le pasamos el nombre del campo (en este caso, userfile), que es de tipo file, que colocamos en el formulario de la pagina HTML. Datos que contiene la variable: $_FILES ['userfile'][ 'name'] Devuelve el nombre del archivo $_FILES['userfile']['type'] Devuelve el tipo de archivo $_FILES['userfile']['size'] Devuelve el tamao del archivo en Kb $_FILES['userfile']['tmp_name'] Devuelve el nombre con el que se guardo temporalmente $_FILES['userfile']['error'] Devuelve distinto de 0 si tuvo algn error (ver la lista de errores en http://www.php.net/manual/en/features.file-upload.errors.php) $nuevo_nombre Es una variable a la cual le asigno el valor que quiero como nombre de archivo strpos(EnCadena, BuscarPalabra) Podramos decir que busca una cadena de string, en otra cadena de string. No es as como funciona exactamente pero para este ejemplo no es necesario entrar en ms detalles. move_uploaded_file(NombreArchivo, Destino) Esta es una funcin de PHP que, pasndole el nombre de un archivo, lo mueve al destino que se le indique. En nuestro caso, le pasamos el nombre temporal del archivo que subimos, y le asignamos un nuevo nombre. Al no ponerle ningn destino mas que el nombre, el destino del mismo ser en la misma carpeta donde esta puesto nuestro PHP. Verificar siempre, que la carpeta destino donde queremos mandar el archivo, tenga los permisos de escritura, de lo contrario, nos devolver un error. Tambin puedes crear una pagina PHP con un poco mas de controles, y por supuesto, siempre puedes ir mejorndola. Aca tienes un ejemplo: Guardar_Archivo_Avz.php (chequear cdigo) <? //verifico que el archivo llego al servidor if (is_uploaded_file($_FILES['userfile']['tmp_name'])) { $nombre = $_FILES['userfile']['name']; con el que lo subi el usuario

$tipo = $_FILES['userfile']['type']; //tipo de archivo (jpg,g if,rar,txt ,etc) $tamanio = $_FILES['userfile']['size']; //tamao del archivo en Kb; 1024Kb = 1Mb $error = $_FILES['userfile']['error']; //si aparecio algun error en la subida$nombre_temporal = $_FILES['userfile']['tmp_name']; //Nombre temporal que se le asigna al archivo cuando sube a tu servidor $carpeta = 'archivos/'; $nuevo_nombre = 'Archivo_Subido'.date('Y-m-d H:i:s'); //le concatene la fecha del momento para que no se repita el nombre //Verifico que el nombre no este vacio if(!empty($nombre)) { //Verifico que no tenga ningun error if($error==0){ //Reviso que el achivo sea del tipo ZIP o RAR;

if (strpos($tipo, "rar"

|| strpos($tipo, "zip"

){

//Reviso que el archivo pese menos de 5 Mb; if ($tamanio_archivo < 5120) { //Verifico que pueda mover el archivo y cambiarle el nombre. //El archivo se guradara donde esta esta pagina if (move_uploaded_file(FILES['userfile']['tmp_name'], $nuevo_nombre)){ echo "El archivo subio."; } else{ echo "Ocurri algn error al subir el fichero. No pudo guardarse."; } } else{ echo "Error con el archivo. <br> El archivo pesa mas de 5Mb"; } } else{ echo "Error con el archivo. <br> El archivo no es ni del tipo zip ni rar"; } else{ echo "Error con el archivo. <br> El archivotiene un error en la subida"; } } else{ echo "Error con el archivo. <br> El archivo no tiene nombre"; } } else{ echo "El archivo no subio correctamente"; } ?> <php>

Das könnte Ihnen auch gefallen