Novedades Desafíos Papers y H-Zine Proyectos Foro
foros de discusión

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
> Programación php, Aprendizaje PHP de 0
flash
post Sep 16 2008, 02:14 PM
Post #1


Conociendo el foro
**


Group: Hackerss Member
Posts: 28
Joined: 14-September 08
Member No.: 5,500



Bien, esta sección estará dedicada a todos los usuarios que gusten aprender de PHP y de nivel nooby.

Ya iré Actualizando el post en el transcurso del tiempo "diariamente". Recordar que iniciaremos de lvl 0. Comenzando por programas que son necesarios para instalar nuestro propio servidor de php con mysql y algunos otros complementos que vienen haderidos a estos programas.

Los programas para gestionar php y mysql son:
APPserv, o el soft de "XAMPP" APACHE FRIENDS, esto queda a concideracion de cada quien, practicamente los dos softwares tienen la misma utilidad "sirven para lo mismo". Peor me parese que los dos tienen distintas verciones de php y mysql.

Requisitos para comenzar:

1.- XAMPP / APPSERV.
2.- UN NAVEGADOR WEB.
3.- NOTE PAD / BLOG DE NOTAS.
4.- UN CEREBRO / SENTIDO COMUN.

Hay algunas cosas que ovbiare en el transcurso de esta guia. Si has manejado algun otro lengüage de programacion como C# esto sera mucho mas fasil de aprender y asimilar.
Se recomienda tener conocimientos basicos de html si no es así puedes seguir sin ningun problema, peor abra cuestiones en las cuales tendras que buscar en otras fuentes aserca del uso de html.

En esta guia Utilizaremos XAMPP APACHE FRIENDS. Para instalar podemos bajarla del sitio oficial http://www.apachefriends.org/
o desde la siguiente dirección:
QUOTE


Para lograr la instalcion sigue los pasos siguientes:
Ejecuta la palicación, "Se ejecutara el asistente de instalación" pulsa Next, "Seleccionar la ruta destino de la instalacion" por defecto es c:\xampp. Pulsa Next, "SERVICE SECTION" Selecciona las dos primeras casillas "Install Apache as service y Install MySQL as service". Ahora Instala el software.

Una vez tengamos el programa instalado vamos a: C:\xampp\htdocs <-- este es el directorio por defecto en donde guardaremos todos nuestros programas en php.
Recuerda que tambien puedes crear un nuevo directorio dentro de la carpeta htdocs ejemplo: proyectos. De esta manera todo quedaria así C:\xampp\htdocs\proyectos <- guardar tus proyectos php, ahora dirigete a tu navegador y escribe http://localhost/proyectos esta basia.

Listo ahora a empezar!.

Primero algo de Historia y Uso.

QUOTE
PHP fue originalmente diseñado en Perl, seguidos por la escritura de un grupo de CGI binarios escritos en el lenguaje C por el programador danés-canadiense Rasmus Lerdorf en el año 1994 para mostrar su currículum vitae y guardar ciertos datos, como la cantidad de tráfico que su página web recibía. El 8 de junio de 1995 fue publicado "Personal Home Page Tools" después de que Lerdorf lo combinara con su propio Form Interpreter para crear PHP/FI.

El gran parecido que posee PHP con los lenguajes más comunes de programación estructurada, como C y Perl, permiten a la mayoría de los programadores crear aplicaciones complejas con una curva de aprendizaje muy corta. También les permite involucrarse con aplicaciones de contenido dinámico sin tener que aprender todo un nuevo grupo de funciones.

Aunque todo en su diseño está orientado a facilitar la creación de página web, es posible crear aplicaciones con una interfaz gráfica para el usuario, utilizando la extensión PHP-Qt o PHP-GTK. También puede ser usado desde la línea de órdenes, de la misma manera como Perl o Python pueden hacerlo, a esta versión de PHP se la llama PHP CLI (Command Line Interface).

Cuando el cliente hace una petición al servidor para que le envíe una página web, el servidor ejecuta el intérprete de PHP. Éste procesa el script solicitado que generará el contenido de manera dinámica (por ejemplo obteniendo información de una base de datos). El resultado es enviado por el intérprete al servidor, quien a su vez se lo envía al cliente. Mediante extensiones es también posible la generación de archivos PDF, Flash, así como imágenes en diferentes formatos.

Permite la conexión a diferentes tipos de servidores de bases de datos tales como MySQL, Postgres, Oracle, ODBC, DB2, Microsoft SQL Server, Firebird y SQLite.

PHP también tiene la capacidad de ser ejecutado en la mayoría de los sistemas operativos, tales como UNIX (y de ese tipo, como Linux o Mac OS X) y Windows, y puede interactuar con los servidores de web más populares ya que existe en versión CGI, módulo para Apache, e ISAPI.

PHP es una alternativa a las tecnologías de Microsoft ASP y ASP.NET (que utiliza C# VB.NET como lenguajes), a ColdFusion de la compañía Adobe (antes Macromedia), a JSP/Java de Sun Microsystems, y a CGI/Perl. Aunque su creación y desarrollo se da en el ámbito de los sistemas libres, bajo la licencia GNU, existe además un IDE (entorno de desarrollo integrado) comercial llamado Zend Studio. Recientemente, CodeGear (la división de lenguajes de programación de Borland) ha sacado al mercado un entorno integrado de desarrollo para PHP, denominado Delphi for PHP, Existe un módulo para Eclipse uno de los IDE más populares.


PHP (acrónimo de "PHP: Hypertext Preprocessor") es un lenguaje interpretado de alto nivel embebido en páginas HTML y ejecutado en el servidor.
Hay que entender primero como funciona la solicitud de páginas en un navegador para comenzar a programar en PHP.

Comunicación entre el cliente y el servidor sin PHP:

1 - Tipeamos en la barra del navegador la dirección y el archivo a solicitar.
2 - El web browser (navegador) envía el mensaje a través de Internet a la computadora, por ejemplo www.lanacion.com/pagina1.htm solicitando la página (archivo) pagina1.htm
3 - El web server (servidor web, que puede ser el Apache, IIS, etc.) que es un programa que se ejecuta en la máquina www.lanacion.com, recibe el mensaje y lee el archivo solicitado desde el disco duro.
4 - El servidor web envía el archivo solicitado por el navegador tal cual está en el disco duro.
5 - El navegador muestra en pantalla el archivo que envió el servidor web.
Este proceso siempre es el mismo cuando hablamos de páginas estáticas (páginas que no cambian), cualquiera sea el cliente que solicita la página el contenido siempre será el mismo. La única forma que el contenido del archivo cambie es que el administrador de ese sitio web edite el contenido del archivo pagina1.htm y haga modificaciones.


Comunicación entre el cliente y el servidor con PHP:
1 - Tipeamos en la barra del navegador la dirección y el archivo a solicitar.
2 - El web browser (navegador) envía el mensaje a través de Internet a la computadora llamada www.lanacion.com solicitando la página (archivo) pagina1.php
3 - El web server (servidor web, que puede ser el Apache, IIS, etc.), recibe el mensaje y al ver que la extension es "php" solicita al interprete de PHP (que es otro programa que se ejecuta en el servidor web) que le envíe el archivo.
4 - El intérprete PHP lee desde el disco el archivo pagina1.php
5 - El intérprete PHP ejecuta los comandos contenidos en el archivo y eventualmente se comunica con un gestor de base de datos (ejemplos de ellos pueden ser MySql, Oracle, Informix, SQL Server, etc.)
6 - Luego de ejecutar el programa contenido en el archivo envía éste al servidor web.
7 - El servidor web envía la página al cliente que la había solicitado.
8 - El navegador muestra en pantalla el archivo que envió el servidor web.
Para aquellas personas que conocen otros lenguajes de programación (C - Java - C# - Pascal etc.) la salida de los resultados normalmente es la pantalla, en PHP la salida es la página HTML (luego ésta viaja por internet y llega al cliente que la solicitó)



1.- Comenzar Primer programa en php

Suponemos que conoce las marcas principales de HTML y algún lenguaje de programación, por lo menos un poquito.

Para agregar un programa PHP dentro de una página HTML debemos por un lado al crear el archivo definirlo con extensión php (a diferencia de las páginas estáticas que tienen extensión htm o html) y dentro del contenido de la página, encerrar el programa entre los símbolos <?php [aqui el programa PHP] ?>.

Crear archivo con extencion .php:

Abrimos blog de notas ir a archivo, guardar como: solucion.php en C:\xampp\htdocs\proyecto. Ahora bien, abrimos solucion.php con el blog de notas o cualquier otro editor html. y agregamos:

QUOTE
<html>
<head></head>
<body>
<?php
echo "Hola Mundo";
?>
</body>
</html>


Es decir que la página que se generará al ejecutarse el programa será:

QUOTE
<html>
<head></head>
<body>
Hola Mundo
</body>
</html>


Ahora vamos a el navegador y escribimos: http://localhost/proyecto/
Como podemos ver, es muy poco útil este programita, ya que el resultado de la ejecución de este programa PHP será siempre el mismo, es decir mostrar el texto "Hola Mundo".

Algo mas util que hola mundo
En este otro programa veremos algo un poco mas dinamico que el "hola mundo" de arriba, por ejemplo, un programa que mantenga el sitio activo los primeros 10 dias del mes. Se mostrara un mensaje que diga, el sitio se encuentra activo si la fecha es menor o igual a 10, en caso contrario se mostrara un mensaje que diga: el sitio se encuentra fuera de servicio.

Para obtener la fecha del servidor web debemos llamar a la función date y requerir sólo el día:
$dia=date("d");

A las variables en PHP se les antecede el caracter $. Si a la función date le pasamos el string "d" retornará sólo el día (si queremos la fecha completa: $fecha=date("Y:m:d")

Y = año
m = mes
d = dia

Para verificar si la variable $dia es menor o igual a 10, debemos emplear la instrucción if, similar a otros lenguajes. Entonces la página con el programa queda de la siguiente forma:

QUOTE
<html>
<head>
</head>
<body>

<?php
$dia=date("d"); //Definimos el valor de la variable.
if ($dia<=10) // Si la variable dia es menor o igual a 10, se desencadenara las primeras llavez.
{
echo "sitio activo"; // Acción desencadenada si el dia del mes es menor o igual a 10
}
else // Si la condicion if se verifica falsa se desencadenara esta acción
{
echo "sitio fuera de servicio"; // Si el dia es mayor a 10.
}
?>

</body>
</html>


La condición del if debe ir obligatoriamente entre paréntesis. Los operadores relacionales disponibles son:

> Mayor
>= Mayor o igual
< Menor
<= Menor o igual
== Igual
!= Distinto

Si la condición se verifica verdadera se ejecuta el primer bloque encerrado entre llaves, en caso de verificarse falsa la condición se ejecuta el bloque entre llaves que le sigue al else.

Cabe mencionar que para dejar comentarios en el codigo php envebido en el html usaremos los caracteres //Cament. Esto ayuda a recordar lo necesario referente a la linea de codigo; Para agregar varias lineas de comentario podremos usar /* Comentario de varias linea */

De estas dos maneras podremos añadir comentarios en nuestro codigo sin alterar el funcionamiento del mismo.

Algo que te servira de motivacion y concluir con el tema PHP:

Las condiciones "if o else if" Vendran a ser exelentes instrucciones a la hora de ejecutar una bomba logica ñ_ñ Salud. Seguire posteando despues.

Tipos de variables:

Los nombres de variables comienzan con el signo $. En PHP no es necesario definir el tipo antes de utilizarla, las mismas se crean en el momento de emplearlas. Las variables se declaran cuando se le asigna un valor, por ejemplo:

QUOTE
$dia = 30; //Se declara una variable de tipo integer.
$sueldo = 780.43; //Se declara una variable de tipo double.
$nombre = "Josh"; //Se declara una variable de tipo string.
$exite = true; //Se declara una variable boolean.


Para la imprecion de variables utilizaremos el comando echo. Un programa completo que inicializa y muestra el contenido de cuatro variables de distinto tipo:

QUOTE
<html>
<head>
<title>Proyecto</title>
</head>
<body>
<?php
$dia = 24; //Se declara una variable de tipo integer.
$sueldo = 780.43; //Se declara una variable de tipo double.
$nombre = "Josh"; //Se declara una variable de tipo string.
$exite = true; //Se declara una variable boolean.
echo "Variable entera:";
echo $dia;
echo "<br>";
echo "Variable double:";
echo $sueldo;
echo "<br>";
echo "Variable string:";
echo $nombre;
echo "<br>";
echo "Variable boolean:";
echo $exite;
?>
</body>
</html>


Hemos utilizado un comando echo para mostrar los mensajes, otro el contenido de variables y finalmente otro para imprimir marcas HTML.
Este proceso suele ser mas corto, peor para entender mejor comenzaremos por el camino largo. Guarda cambios a tu proyecto.php y ejecuta el programa y optendras los resultados.

Aqui el proceso mas corto:
QUOTE
<?PHP
$dia= 30;
$sueldo= 754.30;
$nombre= "Josh";
$exite = true;
echo "variable de tipo Integer: $dia <br>";
echo "variable de tipo double: $sueldo <br>";
echo "variable de tipo string: $nombre <br>";
echo "variable de tipo bolean: $exite <br>";
?>


Hasta aqui todo es color de rosa, en realidad todo esto es verdaderamente sencillo y si tenemos unabuena comprencion desde el inicio, podremos hacer de php lo que uno deceé. ñ_ñ

Variasbles de Tipo String formando concatenacion Muy fundamental.

Una variable de tipo string puede almacenar una serie de caracteres. Para concatenar string utilizamos el operador .

Concatenacion:
Es la operación por la cual dos caracteres se unen para formar una cadena de caracteres (o string). También se pueden concatenar dos cadenas de caracteres o un carácter con una cadena para formar una cadena de mayor tamaño.

Ejemplo 1:

QUOTE
$valor1="Hola";
$valor2="Mundo";
echo $valor1." ".$valor2;

Resultado: Hola Mundo

Ejemplo 2:
QUOTE
<?PHP
$var1="El";
$var2=" ";
$var3="Mundo ";
$var4="Es Azul.";
echo $var1." ".$var2." ".$var3." ".$var4;
?>


Resultado: El Mundo Es Azul.

Ejemplo 3:
QUOTE
<?PHP
$variable1= "El";
$variable2= "De";

echo $variable1. " Foro " .$variable2 ." Hackerss. ";
?>

El resultado al realizar la compilación seria:
Foro de los Hackers.

Cuando una cadena encerrada entre comillas dobles contiene una variable en su interior, ésta se trata como tal, por lo tanto se utilizará su contenido para el almacenamiento.
Ejemplo:

QUOTE
$dia=10;
$fecha="Hoy es $dia";
echo $fecha;

En pantalla se muestra: Hoy es 10
Es decir, en la cadena, se sustituye el nombre de la variable $dia, con el contenido de la misma.


Estructura condicional if.

Cuando se pretende que el programa, una vez llegado a un cierto punto, tome un camino concreto en determinados casos y otro diferente si las condiciones de ejecución es diferente, se utiliza el conjunto de instrucciones:
if, else y elseif.

La estructura base de este tipo de instrucciones es la siguiente:

QUOTE
if (Condición)
{
Instrucción 1;
Instrucción 2;
}
else
{
Instrucción A;
Instrucción B;
}


Cuando la ejecución llega al punto donde se encuentra la instrucción if, el programa verificará el cumplimiento o no de la condición. Si la condición es verdadera se ejecutarán las instrucciones 1 y 2, de lo contrario, se ejecutarán las instrucciones A y B.
En los casos en que las condiciones sean varias, se pueden utilizar los if de un modo denominado anidado o anillado, como se indica de la manera siguiente:

QUOTE
if (Condicion 1)
{
Instrucción 1;
Instrucción 2;
}
else
{
if (Condicion 2)
{
Instrucción A;
Instrucción B;
}
else
{
Instrucción X;
Instrucción Z;
}
}


De este modo se pueden introducir tantas condiciones como se quiera dentro de la condición principal. Una variante de este sistema es utilizando la sentencia elseif, que permite en una sola línea introducir una condición adicional:
QUOTE
if (Condicion 1)
{
Instrucción 1;
Instrucción 2;
}
elseif (Condicion 2)
{
Instrucción A;
Instrucción B;
}
else
{
Instrucción X;
Instrucción Z;
}


Para las condiciones tener en cuenta que disponemos de los siguientes operadores:
QUOTE
== para ver si una variable es igual a otra.
!= distinto.
>= mayor o igual.
> mayor.
<= menor o igual
< menor


A continuacion emplearemos un problema con la estructura condicional de if, empleando el operador <= y la funcion random.
Lo que este programa realizara es escojer un numero al azar entre 1 y 10, imprimira el resultado en pantalla y ejecutara lo que la condicion if le marca.

QUOTE
<?PHP
$valor=rand(1,10);// Escojer un numero de 1 al 10
echo "El valor seleccionado es: $valor<br>"; //Imprecion con salto de renglon.
if ($valor<=5)//Condicion
{
echo "El numero seleccionado es igual o menor a 5";//Pirmera imprecion.
}
else //falso
{
echo "El numero seleccionado es mayor a 5"; // Segunda accion.
}
?>


Explicasion del proceso: se escoje un numero al azar, si el valor seleccionado es menor o igual a 5, se desencadenara la primera imprecion. Si la condicion se verifica falsa, Se desencadenara la segunda accion.


NOTA: La condicion del if siempre va encerrada entre parentesis. if (condicion)

Ahora emplearemos un nuevo programa, a diferencia del anterior, este tendra 3 caminos diferentes. Generaremos un numero aleatorio comprendido de 1 a 300 y el programa nos dira si el numero tiene 1, 2 o 3 digitos. Ademas implementaremos la concatenación entre las variables. "PRIMERO EL CAMINO LARGO". <-- son fraces para entender. No hagas mucho caso. ñ_ñ

El programa completo es el siguiente:
QUOTE
<?PHP
$valor= rand(1,300);
$var1= "El numero ganador es: ";
$var2= " y ha ganado un auto. ";
$var3= "Si un Autoooo. ";;
$var4= "Pero un auto de formal prición.";
echo $var1." ".$valor." ".$var2." ".$var3." ".$var4;
echo "<br>";
if ($valor<=9)
{
echo "El numero ganador tiene 1 digitos";
}
else
{
if ($valor<100)
{
echo "El numero ganador tiene 2 digitos";
}
else
{
echo "El numero ganador tiene 3 digitos";
}
}
?>


Bien el resultado es muy obvio, esto es sencillamente fasil. Ahora vemos el mismo problemita pero con 4 digitos.
QUOTE
<?PHP
$valor= rand(1,1900);
echo "El numero es $valor <br>";

if ($valor<=9)
{
echo "Tiene 1 digitos";
}
else
{
if ($valor<=99)
{
echo "Tiene 2 digitos";
}
if ($valor<=999 && $valor>100)
{
echo "Tiene 3 digitos";
}
if ($valor>999)
{
echo "Tiene 4 digitos";
}
}
?>

En el programa de arriba lo unico nuevo implementado fuéron los operadores && que nos sirbieron para realizar una comparacion en cuando a la variable valor. Si analizamos el programa un poco podremos entender la funcion de dicho operador. Usualmente se utiliza para C++ y C#, bien, recordar que php esta basado en perl. ñ_ñ

Estructuras repetitivas (for - while - do/while)

Las estructuras repetitivas en PHP son similares a el lengüage C.
Estructura for:
QUOTE
for([Inicialización de la variable];[Condición];[Incremento o decremento de la variable])
{
[Instrucciones];
}


En este pequeño programa mostraremos el numero de 1 al 100, empleando la estructura for.
QUOTE
<?PHP
for ($x=1;$x<=100;$x++)
{
echo "$x <br>";
}
?>


Explicación de for

El primer argumento del for es la inicialización de una variable, en este caso la variable inicia en $x con el valor 1. Este primer argumento del for se ejecuta solo una vez. Luego se ejecuta el segundo argumento que es la condición. Si la misma se verifica como verdadera se ejecuta todo el bloque comprendido entre las llaves de apertura y cerrado. Luego de haberse ejecutado el bloque repetitivo se ejecuta el tercer argumento del for que es el incremento de la variable, en este caso $x++ incrementa el contenido de la variable $x en 1 (también podemos poner en lugar de $x++ la asignación $x=$x+1).
Luego del incremento de la variable se ejecuta nuevamente la condición del for (segundo argumento), de validarse nuevamente verdadero pasa a ejecutar el bloque repetitivo.
Este ciclo se repite hasta que la condición del for se verifica false.

Estructura repetitiva while:

QUOTE
while (condición)
{
[Instrucciones];
}


Ejemplo con while:
QUOTE
<?PHP
x=rand(1,100);
$y=1;
while($y<=$x)
{
echo "$x <br>";
$x++;
}
?>


La variable $y tiene el valor 1. Cada vez que se ejecuta una vez el bloque del while se incrementa $y en uno. Cuando $y supere la variable aleatoria $x finalizará la estructura repetitiva y pasará a ejecutarse la instrucción inmediatamente siguiente a la llave de cerrado.
Es importante notar que luego de la condición del while NO disponemos PUNTO y COMA.

Estructura repetitiva do/while

QUOTE
do
{
[Instrucciones];
} while (condición);


En esta estructura la condición se verifica luego de ejecutarse el bloque repetitivo, Tomar en cuenta que al final de la condicion del while si lleva PUNTO y COMA.

QUOTE
<?PHP
$x=rand(1,100);
$y=1;
do
{
echo "$y <br>";
$y++;
}
while ($y<=$x);
?>


Envío de datos de un FORMULARIO (controles text y submit)

Bueno lo primero que aremos será crear un archivo html puro, para solicitar el dato que necesitamos procesar.
solicitud.html
QUOTE
<html>

<head>
<title>Solicitud</title>
</head>

<body>
<form method="post" action="ejecucion.php">
El nombre de la persona es:
<input type="text" name="nombre">
<br>
<input type="submit" value="Confirmar">
</form>
</body>
</html>

con las etiquetas <form </form> estamos definiendo la apertura y cerrado de un formulario. O en todo caso, se define un formulario.
<form method="post" action="ejecucion.php"> La marca FORM tiene dos propiedades que debemos inicializar obligatoriamente: action y method.
La propiedad action indica el nombre del archivo que recibirá los datos ingresados por el operador en el formulario y que serán enviados al servidor cuando se presione el botón (submit). La propiedad method indica como se organizan esos datos para enviarlos al servidor, pudiendo ser mediante los métodos post o get (normalmente los datos de un formulario se envian mediante el método post).
<input type="text" name="nombre"> Creamos un cuadro de texto definiendo "nombre".
La propiedad type nos permite definir el tipo de control y con la propiedad name indicamos el nombre del control.
<input type="submit" value="confirmar"> definimos el boton de tipo submit.
También utilizamos la marca input pero en la propiedad type indicamos que se trata de un botón de envio de datos. En la propiedad value indicamos el texto que queremos que aparezca en el botón.

Ahora creamos el archivo ejecucion.php que se encargará de procesar la solicitud de formulario.html
QUOTE
<?PHP
echo "El nombre del usuario es: ";
echo $_REQUEST['nombre'];
?>

Para acceder al dato en PHP se cuenta con un vector llamado $_REQUEST indicando como subíndice el nombre del cuadro de texto que definimos en el formulario (dicho nombre es sensible a mayúsculas y minúsculas)
En nuestro problema sólo mostramos por pantalla el valor ingresado en la página anterior:
echo $_REQUEST['nombre'];

Algo mas util que el problema de arriba.
Solicitud.html
QUOTE
<boby>
<form method="post" action="ejecucion.php">
Nombre de usuario:
<input type="text" name="nombre">
<br>
Edad:
<input type="text" name="edad">
<br>
<input type="submit" value="Confirmar">
</form>
</boby>


ejecucion.php

QUOTE
<?PHP
echo "El nombre de usuario es: ";
echo $_REQUEST['nombre'];
echo "<br>";
echo "Su edad es de: ";
echo $_REQUEST['edad'];
echo "<br>";
if ($_REQUEST['edad']<=18)
{
echo "Su edad es menor o igual a 18";
}
else
{
echo "La edad es mayor a 18";
}
?>


FORMULARIO (control radio)
Implementar un formulario que solicite la carga de dos enteros, uno en cada text. Disponer dos controles de tipo radio que nos permitan seleccionar si queremos sumar o restar los dos valores ingresados:
QUOTE
<html>
<head>
<boby>
<title> Ejersicio</title>
<form method="post" action="ejecucion.php">
Valor1:
<input type="text" name="valor1"><br>
Valor2:
<input type="text" name="valor2"><br>
<input type="radio" name="radio1" value="suma">Sumar<br>
<input type="radio" name="radio1" value="resta">Restar<br>
<input type="submit" value="Confirmar">
</form>
</boby>
</head>
</html>

La entrada de los dos números se efectua en dos controles
<input type="text" name="valor1">
<input type="text" name="valor2">

Es importante notar que cada text tiene un name DIFERENTE.
Para seleccionar el tipo de operación a efectuar disponemos dos controles de tipo radio:

<input type="radio" name="[u]radio1[/u]" value="suma">sumar
<input type="radio" name="[u]radio1[/u]" value="resta">restar


Los dos controles tienen el MISMO nombre.
Esto es necesario para que el navegador sepa que los dos controles están relacionados (recordar que cuando uno selecciona un radio se debe deseleccionar el otro) ñ_ñ

Por último disponemos un control de tipo submit para el envio de los datos del formulario.
El código de la página que procesa el formulario, llamada:"ejecucion.php" (la que indicamos en la marca FORM del formulario) es:

QUOTE
<?PHP
if ($_REQUEST['radio1']=="suma")
{
$suma=$_REQUEST['valor1'] + $_REQUEST['valor2'];
echo "El resultado de la suma es $suma";
}
else
{
if ($_REQUEST['radio1']=="resta")
{
$resta=$_REQUEST['valor1'] - $_REQUEST['valor2'];
echo "El resultado de la resta es $resta";
}
}
?>


El vector asociativo $_REQUEST tiene tres componentes: $_REQUEST['radio1'] $_REQUEST['valor1'] $_REQUEST['valor2'] En la componente $_REQUEST['radio1'] almacena la cadena "suma" o "resta" según cual se seleccionó en el formulario.
Con dos if verificamos cual operación está seleccionada y procedemos a efectuarla:

QUOTE
if ($_REQUEST['radio1']=="suma")
{
$suma=$_REQUEST['valor1'] + $_REQUEST['valor2'];
echo "La suma es:".$suma;
.
.


FORMULARIO (control checkbox)

Para analizar este control utilizaremos prácticamente el mismo ejemplo que con el objeto radio:
Implementar un formulario que solicite la carga de dos enteros, uno en cada text. Disponer dos controles de tipo checkbox que nos permitan seleccionar si queremos sumar y/o restar los valores ingresados.

Proceso.html
QUOTE
<form methos="post" action="ejecucion.php">
Primer valor:
<input type="text" name="valor1"><br>
Segundo valor:
<input type="text" name="valor2"><br>
Selecione la operacion a realizar: <br>
<input type="checkbox" name="check1">Suma<br>
<input type="checkbox" name="check2">Resta<br>
<input type="submit" value="Operar">
</form>


Ejecucion.php
QUOTE
<?PHP
echo "El resultado de la suma y/o resta es: <br>";

if (isset($_REQUEST['check1']))
{
$suma=$_REQUEST['valor1'] + $_REQUEST['valor2'];
echo "El resultado de la suma es $suma"."<br>";
}
if (isset($_REQUEST['check2']))
{
$resta=$_REQUEST['valor1'] - $_REQUEST['valor2'];
echo "El resultado de la resta es $resta";
}
?>


Si el checkbox no está seleccionado en el formulario no se crea una entrada en el vector asociativo $_REQUEST, para saber si existe una determinada componente en un vector se emplea la función isset, si retorna true significa que existe y por lo tanto el checkbox está seleccionado.
Disponemos dos if a la misma altura ya que los dos controles de tipo checkbox podrían estar seleccionados.

FORMULARIO (control select)

Este formulario solicita la carga de dos enteros, uno en cada "text". Disponer un control de tipo select que nos permita seleccionar si queremos sumar o restar los dos valores ingresados:

Ejemplo:

Proceso.html
QUOTE
<form method="post" action="ejecucion.php">
Ingrese el primer valor:
<input type="text" name="valor1"><br>
Ingrese el segundo valor:
<input type="text" name="valor2"><br>
Seleccione una operación:<br>
<select name="operacion">
<option value="suma">Sumar</option>
<option value="resta">Restar</option>
</select><br>
<input type="submit" value="Operar">
</forms>


Lo nuevo de este formulario es el control de tipo select.

QUOTE
<select name="operacion">
<option value="suma">Sumar</option>
<option value="resta">Restar</option>
</select>


Cada opción tiene un valor. El seleccionado es el que se enviará a la página que procesa el formulario. El texto que aparece dentro del control es el que disponemos entre las marcas option.

Ejecucion.php
QUOTE
<?PHP
echo "El resultado de la operacion es ";

if ($_REQUEST['operacion']=='suma')
{
$resultado="suma = ";
$suma=$_REQUEST['valor1'] + $_REQUEST['valor2'];
echo $resultado." ".$suma;
}
else
{
if ($_REQUEST['operacion']=='resta')
{
$resultado="resta = ";
$resta=$_REQUEST['valor1'] - $_REQUEST['valor2'];
echo $resultado." ".$resta;
}
}
?>


El vector asociativo $_REQUEST almacena en la componente del control select el valor de la opción seleccionada.
Con una serie de if verificamos el valor seleccionado:

if ($_REQUEST['operacion']==suma)
...
de momento solo se puede seleccionar un elemento de un control select (más adelante veremos como seleccionar varios elementos en forma simultánea)


FORMULARIO (control textarea)


El control "textarea" se diferencia del "text" en que permite el ingreso de muchas líneas.
Lo probaremos implementando un problema que permita ingresar el curriculum de una persona.

proceso.html
QUOTE
<form action="ejecucion.php" method="post">
Ingrese nombre:<input type="text" name="nombre"><br>
Ingrese su curriculum:<br>
<textarea name="curriculum"></textarea>
<br>
<input type="submit" value="Confirmar">
</form>


La sintaxis de este control es bastante diferente a la del control text:

<textarea name="curriculum"></textarea>

Si queremos que aparezca inicializado con texto debemos disponerlo en:

<textarea name="curriculum">Hola Mundo</textarea>

La página PHP que procesa los dos datos ingresados en el formulario es:

ejecucion.php

QUOTE
<?php
echo "El nombre ingresado:".$_REQUEST['nombre'];
echo "<br>";
echo "El curriculum:".$_REQUEST['curriculum'];
?>


Vectores (tradicionales)

Un Array es una colección de valores. Los array pueden ser unidimensionales (vectores), bidimensionales (matrices) y multidimensionales (más de dos dimensiones)
Los arrays se utilizan ampliamente en el lenguaje PHP. Se utiliza el delimitador [] para acceder a los diferentes elementos del vector.

Se lo puede crear al vuelo, sin tener que declararlo:

$dias[0]=31;
$dias[1]=28;

Luego de estas dos líneas, tenemos creado un vector de dos elementos, a los cuales accedemos por un subíndice que comienza a numerarse desde cero.

echo $dias[0]; //31
echo $dias[1]; //28

El vector, como podemos ver, puede ir creciendo en forma dinámica, es decir que si ahora hacemos:

$dias[2]=31;

el vector tiene 3 componentes.

También podemos obviar el subíndice cuando asignamos los valores:

$dias[]=31;
$dias[]=28;
$dias[]=31;

Automáticamente comienza a numerarse desde cero.

Si necesitamos conocer el tamaño del vector en cualquier momento podemos llamar a la función count.

echo count($dias); //3


Si queremos imprimir todos los elementos en la página podemos hacer:

<?php
$nombres[]="Sara";
$nombres[]="Mitzy";
$nombres[]="Ana";
for($f=0;$f<count($nombres);$f++)
{
echo $nombres[$f];
echo "<br>";
}
?>


La función sizeof(<nombre del vector>) es equivalente a count osea que tambien puede ser de esta misma forma.

QUOTE
<?PHP
$nombres[]="Oscar";
$nombres[]="Sara";
$nombres[]="Mitzy";

for ($f=0;$f<sizeof($nombres);$f++)
{
echo $nombres[$f];
echo "<br>";
}
?>


Otra forma de inicializar un vector es definirlo e inicializarlo simultáneamente:

$edades=array("menores","jovenes","adultos");

Estamos definiendo el vector edades con tres componentes, numeradas automáticamente de cero a dos.

Otro ejemplo:

<?php
$semana[]="Lunes";
$semana[]="Martes";
$semana[]="Miercoles";
$semana[]="Juevez";
$semana[]="viernes";
$semana[]="Sabado";
$semana[]="Domundo";
echo "<br>";
echo "El total de dias de la semana es: ";
echo count($semana);
echo "<br>";
echo "Lo dias son los siguientes: ";

for($f=0;$f<count($semana);$f++)
{
echo $semana[$f];
echo ", ";
}
?>


Creacion de un archivo de texto.


Una actividad fundamental es poder registrar información en el servidor (no como hemos estado haciendo hasta el momento generando sólo una página con los datos cargados).

Para la registración de datos en el servidor disponemos de dos herramientas que se complementan en muchos casos (archivos de texto y bases de datos).
En este apartado veremos como crear un archivo de texto y añadir datos al mismo.

Lo presentaremos al tema resolviendo un problema: Implementación de un libro de visitas.
Para resolver este problema plantearemos dos páginas, un formulario para realizar la carga del nombre del visitante y sus comentarios (disponemos un objeto de tipo "text" y otro de tipo "textarea"):

proceso.html

<form action="ejecucion.php" method="post">
Ingrese su nombre:
<input type="text" name="nombre">
<br>
Comentarios:
<br>
<textarea name="comentarios" rows="10" cols="40">
</textarea>
<br>
<input type="submit" value="Registrar">
</form>
Este formulario es similar a los planteados en problemas anteriores, sólo le hemos agregado al control textarea, las propiedades rows y cols que dimensionan el mismo en la pantalla:

<textarea name="comentarios" rows="10" cols="40">
</textarea>


ejecucion.php
<?php
$x=fopen("datos.txt","a") or
die("Problemas en la creacion");
fputs($x,$_REQUEST['nombre']);
fputs($x,"\n");
fputs($x,$_REQUEST['comentarios']);
fputs($x,"\n");
fputs($x,"--------------------------------------------------------");
fputs($x,"\n");
fclose($x);
echo "Los datos se cargaron correctamente.";
?>

En primer lugar creamos o abrimos el archivo de texto "datos.txt". El segundo parámetro de la función fopen indica la forma de apertura de archivo "a" (lo crea o si ya existe el archivo lo abre para añadir datos al final), "w" (crea el archivo de texto, si existe borra su contenido) y la última forma de apertura del archivo es "r" (abre el archivo para su lectura).
Como en este problema nos interesa que el archivo vaya creciendo con los datos que aportan los visitantes al sitio lo abrimos para añadir, parámetro "a".
La función retorna una referencia al archivo, la almacenamos en una variable.
Si el archivo no se puede abrir, se ejecuta la instrucción que se encuentra luego del operador "or" en nuestro caso llamamos a la función die que finaliza la ejecución del programita PHP mostrando como mensaje el texto que le pasamos a dicha función.

$x=fopen("datos.txt","a") or
die("Problemas en la creacion");


Para la grabación de datos utilizamos la función fputs que tiene dos parámetros: la referencia al archivo donde grabamos y el string a grabar.

fputs($x,$_REQUEST['nombre']);
fputs($x,"\n");


Para el salto de línea en el archivo de texto, usamos los caracteres \n.De esta forma cuando leamos el archivo de texto lo haremos línea a línea. Cuando dejamos de trabajar con el archivo llamamos a la función fclose.

Hay que tener muy presente que el archivo se almacena en el servidor y no en la máguina de la persona que está navegando. Es decir, no vaya al explorador de archivos para ver donde se almacenó "datos.txt", ten en cuenta que está en la máquina donde se ejecutó el script de PHP. Luego veremos como leer el contenido del archivo y mostrarlo en otra página del sitio.

Algo mas util que el libro de visitas

proceso.html

<form method="post" action="ejecucion.php">
Nombre:
<input type="text" name="nombre"><br>
Dirección:&nbsp;
<input type="text" name="direccion"><br>
<br>
Tipos de pizza: <br><br>
<input type="checkbox" name="karnes">Carnes Frías<br>
Cantidad:
<input type="text" name="cantidad1"><br>
<input type="checkbox" name="kezo">Queso provolone<br>
Cantidad:
<input type="text" name="cantidad2"><br>
<input type="checkbox" name="muzarela">Muzarela<br>
Cantidad:
<input type="text" name="cantidad3"><br>
<input type="submit" value="Enviar">
</form>

ejecucion.php
<?PHP
$pizza=fopen("pedidos.txt","a") or die ("No se pudo crear el archivo especificado");

fputs($pizza,"Nombre del cliente: ");
fputs($pizza,$_REQUEST['nombre']);
fputs($pizza,"\n");
fputs($pizza,"Direccion: ");
fputs($pizza,$_REQUEST['direccion']);
fputs($pizza,"\n");
fputs($pizza,"El pedido del cliente es el siguiente: ");
if (isset($_REQUEST['karnes']))
{
fputs($pizza,"Karnes frias = ");
fputs($pizza,$_REQUEST['cantidad1']);
fputs($pizza,", ");
}
if (isset($_REQUEST['kezo']))
{
fputs($pizza,"Kezo = ");
fputs($pizza,$_REQUEST['cantidad2']);
fputs($pizza,", ");
}
if (isset($_REQUEST['muzarela']))
{
fputs($pizza,"Muzarela = ");
fputs($pizza,$_REQUEST['cantidad3']);
fputs($pizza,", ");
}
fputs($pizza,"\n");
fputs($pizza,"----------------------------------------------------");
fputs($pizza,"\n");
fclose($pizza);
echo "El pido ha sido enviado correctamente";
?>

This post has been edited by flash: Nov 6 2008, 01:37 PM


--------------------
"Kiss In The Dark"; C# - PHP - Flash Professional - Mysql - Gives us life and the life we removed

Professional ANARKISTA
Go to the top of the page
 
+Quote Post
NullCool
post Sep 16 2008, 02:47 PM
Post #2


Indie drinky geeky lesbian boy!
Group Icon


Group: Colaborador
Posts: 1,147
Joined: 10-May 06
From: Mex DF
Member No.: 575



a mi parecer muy bien !! wii esperaba algo asi los demas pudranse por no hacerlo antes jajajaja es broma...no pues creo que esta bien de hecho farid, alluz etc..estan haciendo labs bien tomando al final de esto hacer un hack lab de sql injection ...o no se algo....................ando mal no hagan muxo caso a mis posts tongue.gif


--------------------
Mail me!!!
Partituras y MIDIS
Visita mi Blog
Go to the top of the page
 
+Quote Post
Soul Lost
post Sep 20 2008, 04:55 PM
Post #3


Un poco Geek
******


Group: Hackerss Member
Posts: 1,607
Joined: 22-March 06
From: UnderHouse
Member No.: 8



POO: http://foros.hackerss.com/index.php?showtopic=65


--------------------
Siempre hay algo nuevo que aprender

Nuevo blog: www.soullost.org

Guías,Tutoritales,Howtos,Articulos. Bajo Licencia: CreativeCommons
Go to the top of the page
 
+Quote Post
neptun0
post Oct 12 2008, 07:59 PM
Post #4


Conociendo el foro
**


Group: Hackerss Member
Posts: 47
Joined: 11-October 08
From: Argentina
Member No.: 6,048



Muchas gracias! Recien me estoy iniciando en PHP y esto me viene muy bien biggrin.gif

Saludos y gracias happy.gif
Go to the top of the page
 
+Quote Post
Bucio
post Oct 12 2008, 08:24 PM
Post #5


Descaradamente Guapo =Þ
Group Icon


Group: Colaborador
Posts: 3,823
Joined: 26-April 06
From: Chiapas México.
Member No.: 382



Me gusta me gusta


--------------------
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic