PHP

El lenguaje PHP (Preprocesador de Hiperetxto) es un lenguaje de hace uso de las variables, sentencias condicionales, bucles, funciones…. No es un lenguaje de marcas como podría ser HTML, XML o WML. Está mas cercano a JavaScript o a C,  sin embargo convive sin problemas dentro de paginas HTML.

Pero a diferencia de Java o JavaScript que se ejecutan en el navegador, PHP se ejecuta en el lado del servidor, por eso nos permite acceder a los recursos que tenga el servidor como lo contituyen las  bases de datos. El programa PHP es ejecutado en el servidor y el resultado enviado al navegador. El resultado es normalmente una página HTML pero igualmente podría ser una pagina WML.

Apreciados amigos, es interesante comprender que cuando se programa en PHP,  debemos tener muy en cuenta que estamos programando orientado a la Web, en este sentido debes primero que nada:

  • Hacer que tu PC de hogar o de oficina funja como un Servidor Web.
  • Debes hacer tus programas, utilizando cualquier editor de texto.
  • Al guardar tus programas debes colocarles la extensión (.PHP)
  • Debes tener presente que el PHP convive con el HTML.
  • El PHP corre del lado del servidor.

Las Variables en PHP:

Una variable es un espacio de la memoria del PC, al cual se le asigna un nombre y en ella podemos alojar números enteros, números decimales, carácteres, es importante tener en cuenta que el contenido de las variables se puede leer y se puede cambiar durante la ejecución de una página PHP.

En PHP todas las variables comienzan con el símbolo del dólar $ y no es necesario definir una variable antes de usarla. Tampoco tienen tipos, es decir una misma variable puede contener un número y luego puede contener carácteres.

Existen 2 tipos de variables, las variables locales que solo pueden ser usadas dentro de las funciones y las variables globales que tienen su ámbito de uso fuera de las funciones, podemos acceder a una variable global desde una función con la instrucción global nombre_variable.

Los Operadores Aritméticos

Operador Nombre Ejemplo Descripción
+ Suma 5 + 6 Suma dos números
Resta 7 – 9 Resta dos números
* Multiplicación 6 * 3 Multiplica dos números
/ División 4 / 8 Divide dos números
% Módulo 7 % 2 Devuelve el resto de dividir ambos números, en este ejemplo el resultado es 1
++ Suma 1 $a++ Suma 1 al contenido de una variable.
Resta 1 $a– Resta 1 al contenido de una variable.

Los Operadores de comparación:

Operador Nombre Ejemplo Devuelve cierto cuando:
== Igual $a == $b $a es igual $b
!= Distinto $a != $b $a es distinto $b
< Menor que $a < $b $a es menor que $b
> Mayor que $a > $b $a es mayor que $b
<= Menor o igual $a <= $b $a es menor o igual que $b
>= Mayor o igual $a >= $b $a es mayor o igual que $b

Los operadores lógicos

Operador Nombre Ejemplo Devuelve cierto cuando:
&& Y (7>2) && (2<4) Devuelve verdadero cuando ambas condiciones son verdaderas.
and Y (7>2) and (2<4) Devuelve verdadero cuando ambas condiciones son verdaderas.
|| O (7>2) || (2<4) Devuelve verdadero cuando al menos una de las dos es verdadera.
or O (7>2) or (2<4) Devuelve verdadero cuando al menos una de las dos es verdadera.
! No ! (7>2) Niega el valor de la expresión.

A continuación les voy a colocar algunos pequeños programas los cuales, para practicar pueden copiarlos, los pegan en un editor de textos, guardan el programa con la extensión (.php) y luego lo ejecutan desde su navegador:

Las Condiciones

<html>
<head>
<title>Ejemplo como funciona el condicional</title>
</head>
<body>
<?php
$a = 8;
$b = 30;
if ($a < $b)
{
echo «La variable a es menor que la variable b»;
}
else
{
echo «La variable a es el mayor que la variable b»;
}
?>
</body>
</html>

A los que alguna vez programaron en Dbase, Clipper, vean como en PHP utilizamos la evaluación de casos, recuerdan el famoso «Do case» que lo utilizamos cuando desarrollamos nuestros  MENU, por ejemplo.

Switch

<html>
<head>
<title>Ejemplo de PHP, demostrando el switch igual que el do case</title>
</head>
<body>
<?php
echo «INDIQUE SU OPCION»,»<br>»,»<br>»;
echo «1.- Incluir»,»<br>»;
echo «2.- Modificar»,»<br>»;
echo «3.- Consultar»,»<br>»;
echo «4.- Eliminar»,»<br>»,»<br>»,»<br>»;

$opcion = 2;

switch($opcion) {
case 1:
echo «Vamos al módulo de Incluir»;
break;
case 2:
echo «Vamos al módulo de Modificar»;
break;
case 3:
echo «Vamos al módulo de Consultar»;
break;
case 4:
echo «Vamos al módulo de Eliminar»;
break;
default:
echo «La variable contiene otro valor»;
echo » Sleccione del 1 al 4″;
}
?>
</body>
</html>

Ciclo Repetitivo Mientras (while):

<html>
<head>
<title>Ejemplo como funciona el ciclo repetitivo while</title>
</head>
<body>
Esto es HTML<BR>
<?php
$x=0;
while ($x<20)
{
echo «El valor de x es «. $x.»<br>»;
$x++;
}
?>
Aqui estoy fuera de PHP<BR>
</body>
</html>

Ciclo Repetitivo ( For ):

<html>
<head>
<title>Ejemplo como funciona el ciclo repetitivo for</title>
</head>
<body>
Inicio<BR>
Contando de Uno en Uno<br>
<?php
for($x=0 ; $x<10 ; $x++)
{
echo «El valor de x es «. $x.»<br>»;
}
echo «<br>»,»<br>»,»<br>»;
//Otra forma de hacerlo incrementando de 2 en 2
echo «Ahora contando de Dos en Dos».»<br>»;
for($x=0 ; $x<10 ; $x=$x+2)
{
echo «El valor de x es «, $x,»<br>»;
}

?>
Final<BR>
</body>
</html>

Trabajando con formularios:

Cuando deseamos atrapar valores, almacenarlos en variables para posteriormente enviarlos; bien sea a que se generen calculos así como almacenarlos en una tabla o enviarlos a un listado, debemos trabajar con los formularios, los datos se envían mediante el método indicado en el atributo METHOD de la etiqueta FORM(Con el parámetro method, estamos indicando la forma en la que se enviarán las variables del formulario), los dos métodos posibles son GET y POST. Regularmente se utiliza el método POST.

Si utilizamos el método  GET, todas las variables se enviarán por la dirección html (los podemos ver en el localizador universal de recursos URL). en este sentido, cuando recarguemos la página web al haber enviado el formulario, saldrá algo así:

http://www.programando.com/index.php?nombre=»Daniel Fuentes»…

Lo que deseo indicarles es que las variables aparecen en la barra de direcciones! Esto, para envío de formularios, no es lo normal pues estamos mostrando todos los datos del envío y pueden ser muchísima información, alguna incluso, confidencial que el usuario no debe enterarse. Es por ello por lo que, cuando tratamos con formularios, usamos el método POST.

Con este método podemos enviar las variables de forma “oculta” para que nadie pueda ver los datos que ha enviado al pulsar el botón de envío de formulario.

Como crear un formulario:

Usted puede crear los formularios utilizando comandos del Lenguaje de Marcación de Hipertexto (HTML), sin embargo puede utilizar editores gráficos que le permiten ejecutar mucho más rápido lo deseado, para ello puede usar algunos de los siguientes editores libres:

Quanta+(http://es.wikipedia.org/wiki/Quanta_Plus)

Eclipse (http://es.wikipedia.org/wiki/Eclipse_(software))

Bluefish (http://es.wikipedia.org/wiki/Bluefish)

En el caso que desea trabajar con software propietario puede utilizar Dreamweaver de Macromedia (http://es.wikipedia.org/wiki/Dreamweaver).

Ejemplo de un formulario trabajando con el método POST:

El problema a resolver consiste en lo siguiente: Se desea solicitar ciertos datos a un trabajador,  entre los datos se le pide el sueldo y un porcentaje de aumento, luego se envia estos datos a otro programa el cual es quien muestra los resultados. la idea es sólo que observe como se trabaja con formulario y como se envian los datos a otro programa utilizando el método POST.

Formulario que captura los datos suministrado por el usuario:

formulario

Descargue el programa captura_aumento, recuerde debe guardarlo con la extensión .php

Cuando se hace clic sobre el boton «ENVIAR», automaticamente se llama al programa especificado en el: form action=»Calculo_Aumento.php», se reciben los valores de las variables se hace el cálculo solicitado y se muestra, tal como se muestra:

capturavariables

Descargue el siguiente programa, abralo, seleccione su contenido, copielo y peguelo en su edito de preferencia y guardelo bajo el nombre: Calculo_Aumento.php

Calculo_Aumento

Le recomiendo que para lograr enternder cada una de las instrucciones utilizadas debe estudiar sobre el uso de formularios, metodo post, input type.

Mas adelante les enseñare con ejemplos como trabajar con la base de datos Mysql y ejecutar los procesos de mantenimiento básicos sobre una base de datos: Incluir, Modificar, Eliminar y Consultar registros.

Trabajando con validaciones:

Cuando creemos un formulario web (HTML), hay que validar las entradas que los usuarios puedan suministrar.  Esto siempre se hace del lado del cliente o  del lado del servidor.

Cuando la validación se hace del lado del cliente, esta se lleva a cabo por medio de la utilización de Java scrip, en el caso que esta se ejecute del lado del servidor entonces utilizamos el lenguaje que esté desarrollado el sitio, por ejemplo si el sitio está desarrollado con PHP, hay que crear un mecanismo que lea y valide todos los datos que llegan en las variables del formulario usando PHP.

En este sentido le invito a que copie, pegue y guarde los siguientes archivos, estos permiten llevar a cabo una validación de datos suministrados por un formulario:

Al primer formulario le llame: registro.php, este solicita por pantalla unos datos, los cuales psoteriormente al accionar click sobre el boton enviar registro, son validados por el programa: valida.php

Asi se ve el formulario:

registro

Descargue el siguiente programa, abralo, seleccione su contenido, copielo y peguelo en su edito de preferencia y guardelo bajo el nombre: registro.php

registro

Ahora copie el siguiente archivo, yo le llame: valida.php este programa es llamado por el programa registro.php, al ejecutarse el action del formulario, luego que usted acciona click en el boton Registro.

Descargue el siguiente programa, abralo, seleccione su contenido, copielo y peguelo en su edito de preferencia y guardelo bajo el nombre: valida.php

valida

Otro ejemplo de Validaciones:

Con el siguiente ejemplo podrá observar la uilidad de las funciones:

  • die(Muestra el mensaje indicado por pantalla y finaliza el script actual en el punto en el que se encuentre. No devuelve valor alguno.)
  • empty(Devuelve FALSE si var está definida y tiene un valor no-vacío o distinto de cero; en otro caso devuelve TRUE.)
  • is_numeric(Encuentra si una variable es un número o una cadena numérica)
  • strlen(Obtiene la longitud de la cadena)

El ejemplo, muestra la pantalla tipica para ingresar a un sistema, donde solicita sea ingresado el usuario y su contraseña secreta, tal como se ve en la figura, del programa captura.php:

Descargue el programa, captura

capturaEl programa valida que los campos no pueden ser blanco, que clave espeficicada no puede tener menos de 6 caracteres, dicha clave debe ser numerica, todo eso lo valida el programa validar.php

Descargue el siguiente programa, abralo, seleccione su contenido, copielo y peguelo en su edito de preferencia y guardelo bajo el nombre: validar.php

validar

Si todos los datos estan correctos, entonces el programa avanza y llama al programa menu.php, este no presenta mayor cosa, solo lo he creado para que vea que al todo estar correcto, el programa continua su ejecución.

Descargue el siguiente programa, abralo, seleccione su contenido, copielo y peguelo en su edito de preferencia y guardelo bajo el nombre: menu.php

menu

A continuación le dispongo otro pequeño ejemplo de trabajo con formularios, considerando que las validaciones se estan llevando a cabo por medio de php, en este sentido, debe descargar los siguientes programas, guardarlos con la extensión .php y luego los corre por el visor de internet, el primer programa llamado pagina1, cuando se ejecuta, observa la siguiente pantalla:

la acción del formulario llama al programa pagina2     , transfiere los datos suministrado en las variables y si los mismos estan correctos, se observará la siguiente pantalla:

Si  en el caso contrario el usuario no introduce, alguno de los valores solicitados, entonces se mostrará una pantalla como la siguiente:

Tal como puede observar, en la parte superior se le informa, que debe colocar los datos solicitados.

A continuación dispongo un programa muy sencillo de validación de clave, el cual luego de descargarlo y guardarlos con la extensión .php, en cualquier editor de su preferencia, al ejecutarlo en el visor de internet, observará lo siguiente:

El programa: ingresar al ejecutarlo observará la siguiente imagen:

El programa: valida_acceso, es el programa que realiza todas las validaciones consideradas, de estar todo perfecto al ejecutarlo,  observará:

Y finalmente cuando usted accione click, en aceptar se ejecutará el programa: menu, y se mostrará la siguiente pantalla:

A continuación dispongo un ejemplo sencillo para que puedan observar los procesos de mantenimiento básico sobre una tabla de una base de datos  como lo son: Incluir, Modificar, Eliminar y Listar registros.

Para poder verificar el ejemplo, lo primero que debe hacer es crear en el sistema manejador de base de datos (Mysql), por medio del Phpmyadmin, una base de datos llamada bduniversidad, luego debe crear una tabla llamada talumno, luego de creada esta tabla debe entonces crear dos campos, uno llamado: CedulaAlumno, Tipo: Entero, Longitud de 8,  y puede indicarlo como Clave primaria, luego crea otro campo llamado: PrimerNombreAlumno, tipo: Varchar, Longitud de 40. Tal como lo puede observar en la siguiente pantalla:

Luego de crear la base de datos y la tabla indicada, usted deberá crear una carpeta dentro de la ruta de ejecución de sus programa, por ejemplo si usted en su computadora instaló XAMPP, la cual la puede descargar en la siguiente dirección: http://www.apachefriends.org/es/xampp.html, notará que el producto automaticamente crea en su pc, una carpeta llamada xampp, dentro de ella observará una carpeta llamada: htdocs, es alli donde usted deberá crear la carpeta donde se ejecutaran sus proyectos, en nuestro caso puede crear una carpeta llamada: estudiando.

Una vez ejecutado esto, haciendo uso de cualquier editor de su preferencia puede iniciar la creación de los siguientes programas. Podrá copiar y pegar en su editor, es importante que procure analizar el código y entender cada una de sus instrucciones antes de continuar adelante. Debe ir analizando programa por programa.

Lo primero es crear unprograma llamado index.php con el siguiente contenido:

<html>
<!–
Autor: Lic.Msc. Angel Daniel Fuentes
Profesor de la U.P.O.M.S.

Programa sencillo, para que los estudiantes puedan practicar los programas de mantenimiento
básicos: Incluir, Modificar, Eliminar y Listar registros sobre una tabla de una base de datos

Aqui podrá observar como se hace la conexión a la Base de datos así como sentencias SQL
requeridas para poder ingresar registros a la tabla (INSERT INTO), modificar registro de la tabla
(UPDATE) y eliminar registro de la tabla (DELETE), así como el uso de listar los registros
existenets en la tabla.
 –>
<head>
<title>Este puede ser un menú </title>
</head>
<body>

<a href=»AlumnoListar.php»>ir a alumnos</a>

</body>
</html>

Como podrá darse cuenta esto es una mezcla entre Lenguaje de Marcación de Hiper texto (HTML) y Pre-procesador de Hipertexto (PHP), le recuerdo que el código que esta en negrita lo puede copiar y pegar en su editor. Al ejecutar este código lo único que verá en el browser de su preferencia es lo que muestra la siguiente pantalla:

Observe que este programa, lo que hace es mostrar una opción  ir a alumnos, la cual al accionar clic, sobre él se hace un llamado al programa AlumnoListar.php, tal como se observa en la instrucción: <a href=»AlumnoListar.php»>ir a alumnos</a>, en base a esto procedemos entonces a crear el programa: AlumnoListar.php, con el siguiente contenido:

<html>
<head>
<title></title>
</head>
<body>
<?
include(«conex.php»);
$Sql=»select * from TAlumno»;

if(!@$Resultado=mysql_query($Sql,$Link)){
die(«Error»);
}

?>
<table>
    <tr>
        <td> Modificar</td>
        <td> Eliminar</td>
        <td>C&eacute;dula</td>
           <td>Nombre</td>
    </tr>
<?
while($Row=mysql_fetch_array($Resultado)){
?>
<tr>

    <td ><a href=»ModificarAlumno.php?CedulaAlumno=<? echo($Row[«CedulaAlumno»]);?>»>Modificar</a> </td>
    <td ><a href=»EliminarAlumno.php?CedulaAlumno=<? echo($Row[«CedulaAlumno»]);?>»>Eliminar</a> </td>
    <td ><? echo($Row[«CedulaAlumno»]);?></td>
       <td ><? echo($Row[«PrimerNombreAlumno»]);?></td>
</tr>
<? }?>
</table>

</body>
</html>
<? mysql_close();?>

Al ejecutar este programa, la pantalla que observará, será la siguiente:

Aquí es interesante observar que el programa lo que hace es mostrar los registros que se encuentran en la tabla talumno, en nuestro caso como aun no hemos registrado ningún alumno entonces sólo indica Agregar un alumno nuevo.

Observe que aqui tenemos la incorporación de una programa llamado conex.php, tal como lo puede notar en la sentencia: include(«conex.php»); este es el programa que ejecuta la conexión con la base de datos, aqui debe usted considerar con cual usuario y con que clave va a ingresar al MYSQL, yo como puede notar estoy entrando con el usuario: root, y la clave: 123456, todo  depende de lo que usted dispuso cuando instalo el producto, si no indico ninguna clave entonces coloque unicamente el usuario: root y en la clave: comillas » «. Tal como puede notar su contenido en el programa conex.php:

<?
//Programa que permite conectar con la base de datos
if(!@$Link=mysql_connect(«localhost»,»root»,»123456″)){
die(«Error Al Tratar De Conectar»);
}
if(!@mysql_select_db(«BDUniversidad»)){
die («Error Al Tratar De Conectar Con La Base De Datos»);
}
?>

De igual forma podrá usted observar que dentro del progrma: listarAlumno.php, también se controla los procesos de mantenimiento sobre una tabla como lo constituyen: Incluir, Modificar y Eliminar, esto esta controlado por los siguientes programas:

AgregarAlumno.php

<html>
<head>

</head>
<body>

<form name=»form1″ method=»post» enctype=»multipart/form-data» action=»GuardarAlumno.php»>
<table>
    <tr>
        <td>C&eacute;dula</td>
        <td><input type=»text» name=»CedulaAlumno» id=»CedulaAlumno» size=»10″ maxlength=»8″  ></td>
</tr>
    <tr>
        <td>Nombre</td>
        <td><input type=»text» name=»PrimerNombreAlumno»></td>
</tr>
    <tr>
        <td>

        <!–el evento onClick sirve para validar el formulario a travès de una funcion JavaScript –>
        <input type=»submit» value=»Guardar» onClick=»»>

        </td>
</tr>

</table>
</form>
</body>
</html>

Observe que en la acción del formulario, se hace un llamado al programa:

GuardarAlumno.php

<?
include(«Conex.php»);
$Sql=»insert into TAlumno (CedulaAlumno,PrimerNombreAlumno)values(‘».$_POST[«CedulaAlumno»].»‘,'». $_POST[«PrimerNombreAlumno»].»‘)»;

//echo($Sql);

if(!@$Resultado=mysql_query($Sql,$Link)){
    die(mysql_error($Link).»Error al tratar de guardar»);
}else{
    header(«location:AlumnoListar.php»);
}

?>

Observe como desde el programa AgregarAlumno.php, se le envia a este programa por el método POST, el contenido de las variables, este las recibe y ejecuta la respectiva sentencia SQL, para llevar a cabo el registro de los valores suministrados.

Esta es la pantalla que observará luegoq ue se ejecute el programa:

Luego que accionamos clic, sobre el boton Guardar, observe que se ejecuta entonces el llamado al programa GuardarAlumno.php y este a su vez una vez que guarda el registro en la tabla talumno, hace un llamado al programa alumnoListar.php, tal como puede observar en la siguiente pantalla, muestra los datos del registro incorporado:

De igual forma es prudente que observe, que de inmediato se activan las opciones de: Modificar o Eliminar, en donde el usuario tendra sobre ese registro las posibilidades señaladas, y para que esas opciones funcionen debe entonces crear los  siguientes programas:

ModificarAlumno.php

<html>
<head>
<?
include(«Conex.php»);

$Sql=»select * from TAlumno where CedulaAlumno='».$_GET[«CedulaAlumno»].»‘»;
//echo($Sql);
if(!$Resultado=mysql_query($Sql,$Link)){
die(«Error».mysql_error($Link));
}

$Row=mysql_fetch_array($Resultado);
?>
function enfocar(){
document.getElementById(‘PrimerNombreAlumno’).focus();
}
</head>
<body onLoad=»enfocar()»>

<form name=»form1″ method=»post» enctype=»multipart/form-data» action=»GuardarModificado.php»>
<table>
    <tr>
        <td>Cedula</td>
        <td><input type=»text» name=»CedulaAlumno» value=»<? echo($Row[«CedulaAlumno»]);?>» id=»CedulaAlumno» readonly size=»10″ maxlength=»8″  ></td>
</tr>
    <tr>
        <td>Nombre</td>
        <td><input type=»text» tabindex=»1″ name=»PrimerNombreAlumno» id=»PrimerNombreAlumno»  value=»<? echo($Row[«PrimerNombreAlumno»]);?>» ></td>
</tr>
    <tr>
        <td>

        <!–el evento onClick sirve para validar el formulario a travès de una funcion JavaScript –>
        <input type=»submit» value=»Guardar» onClick=»»>

        </td>
</tr>

</table>
</form>

</body>
</html>

Tal como puede observar en la acción del formulario, cuando se acciona clic sobre el boton Guardar, se llama al programa:

GuardarModificado.php

<?
include(«Conex.php»);

$Sql=»update TAlumno set

PrimerNombreAlumno='».$_POST[«PrimerNombreAlumno»].»‘

where CedulaAlumno='».$_POST[«CedulaAlumno»].»‘»;

//echo $Sql;

if($Resultado=mysql_query($Sql,$Link)){
    Header(«location:AlumnoListar.php»);     
}else{
Echo(«Error al Modificar el registro»);
}

?>

Tal comopuede notar, este es el programa que recibe el contenido de las variables enviadas por el método POST, utilizado en el programa ModificarAlumno.php, y ejecuta la sentencia SQL UPDATE. Ya para finalizar debe entonces crear el programa:

EliminarAlumno.php

<?
//Programa que permite eliminar registro de la tabla
include(«conex.php»);

$Sql=»delete  from TAlumno where CedulaAlumno='».$_GET[«CedulaAlumno»].»‘»;

//echo $Sql;

If($Resultado=mysql_query($Sql,$Link)){
    Header(«location:AlumnoListar.php»);     
}else{
Echo(«Error al eliminar el registro»);
}

?>

Este programa al ser ejecutado borra el registro de la tabla talumno, por medio de la sentencia SQL, DELETE FROM y luego nuevamente llama al programa AlumnoListar.php. Tal como puede observar en las siguientes pantallas:

Luego de haber registrado dos alumnos en la tabla talumno, al accionar clic, sobre el primer alumno: ANGEL FUENTES, observe que automaticamente es eliminado:

Bien, espero que con estas practicas pueda observar de una forma sencilla la creación de los programas indicados. Es importante que entienda que aqui no se esta haciendo ninguna validación sobre los campos, como lo constituye el hecho de no dejar registros en blancos o indicar al usuario que ya la cedula de identidad de un estudiante fué registrado, usted debe hacer esas practicas siguiendo lo ya explicado en validaciones.

Mas adelante continuaré disponiendo ejemplos con una complejidad mayor, sobre todo explicarles la forma de trabajar con variables de session.

Trabajando con Sesiones:

Las sesiones, en aplicaciones web realizadas con PHP, nos permiten almacenar información que se memorizará durante toda la visita de un usuario a un sitio web.  Esto significa que un usuario puede ver varias páginas durante su paso por un sitio web y con sesiones podemos almacenar variables que podremos acceder en cualquiera de esas páginas.

Si lo describimos a modo de ejemplo, les puedo señalar lo siguiente:

Cuando nosotros tratamos de acceder a un sistema, este nos solicita el usuario y su contraseña, luego que este es buscado y encontrado en la tabla de la de datos respectiva, podemos entonces almacenar en variables de sesiones el nombre y apellido del usuario, así como el nivel del perfil del mismo. De esta manera teniendo almacenado en una variable de sesión el nivel o el grupo al cual pertenece el usuario, podemos controlar así durante toda la ejecución del sistema si ese  usuario tiene o no permiso para aceder o no a ciertos procesos de mantenimiento muy puntuales como (Incluir, modificar, Eliminar) ó si tiene posibilidad o no para ingresar a ciertas opciones dispuestas en un menú.

Sin embargo son muchas las diversas posibilidades de uso, donde esta bondad que brinda el PHP, se le puede sacra provecho, Por ejemplo: El desarrollo de un carrito de compras, Generación de Software Educativos, Evaluaciones a distancia, Compra de pasajes, etc,etc,etc.

Cuando queremos utilizar variables de sesión en una página tenemos que iniciar la sesión con la siguiente función:

session_start ()
Inicia una sesión para el usuario o continúa la sesión que pudiera tener abierta en otras páginas. Al hacer session_start() PHP internamente recibe el identificador de sesión almacenado en la cookie o el que se envíe a través de la URL. Si no existe este identificador se sesión, entonces se crea automaticamente.

Una vez iniciada la sesión podemos utilizar variables de sesión a través de $_SESSION, que es un arreglo asociativo, donde se accede a cada variable a partir de su nombre, tal como se los muestro a continuación:

$_SESSION[«nombre_de_variable»]

Otras funciones útiles para la gestión de sesiones son:

Función Descripción
Session_id() Retorna el identificador de la sesión
Session_destroy() Da por abandonada la sesión eliminando variables e identificador.
Session_unregister(‘variable’) Abandona una variable sesión

Para ampliar esta teoría y observar algunos ejemplos en linea, le invito a que se documente un poco mas, acudiendo a distintos enlaces que presentan de una forma mas detallada esta información, aqui le dispongo algunos:

http://www.desarrolloweb.com/articulos/321.php

http://www.desarrolloweb.com/articulos/235.php

http://www.webestilo.com/php/php12a.phtml

http://www.webestilo.com/php/php12b.phtml

Por favor no se limite a revisar sólo estas ya que información en Internet sobre este tema hay bastante.

Mis Ejemplos: A continuación les coloco algunos ejemplos reales donde se estan utilizando las variables de sesiones, estos ejemplos no son para descargar como los otros, es sólo para que observe como se trabaja lo indicado en la teoria:

Luego que se hace una consulta, usando la sentencia Select, para verficar si un usuario existe o no en la tabla podemos almacenar en variables de sesion los datos contenidos en la tabla, tal como se muestra a continuación:

    $_SESSION[«id_usuario»] = $Row[«id_usuario»];
$_SESSION[«usuario»] = $Row[«usuario»];
$_SESSION[«clave»] = $Row[«clave»];
$_SESSION[«cedula»] = $Row[«cedula»];
$_SESSION[«nombre»] = $Row[«nombre»];
$_SESSION[«apellido»] = $Row[«apellido»];
$_SESSION[«id_estado»] = $Row[«id_estado»];
$_SESSION[«nombre_estado»] = $Row[«nombre_estado»];
$_SESSION[«id_grupo»] = $Row[«id_grupo»];

A continuación, observe comopodemos utilizar estas variables dentro de nuestros programas, en este caso les coloco una porcion de código de un menu, en el cual se debe validar el nivel del usuario para determinar si tiene o no la posibilidad de acceder o no a alguna alternativa del menu de opciones.

<? if(($_SESSION[‘id_grupo’]==’1′)or($_SESSION[‘id_grupo’]==’2′)){?>
<li><a href=»javascript:;»>Administración</a>
<ul>
<li>
<a href=»javascript:;» onclick=»CargarAjax(‘Refugiados/Modulos/Usuarios/ListarUsuarios.php’, ‘AreaTrabajo’, false, », ‘imagenprincipal’, false, ‘POST’,’Refugiados/Modulos/Usuarios/ListarUsuariosJS.php’)»>Usuarios</a>
</li>
<? if($_SESSION[‘id_grupo’]==’1′){?>
<li>
<a href=»javascript:;» onclick=»CargarAjax(‘Refugiados/Modulos/Administracion/CambioGerencia/CambioGerencia.php’, ‘AreaTrabajo’, false, », ‘imagenprincipal’, false, ‘POST’,’Refugiados/Modulos/Administracion/CambioGerencia/CambioGerenciaJS.php’)»>Cambiar Gerencia</a>
</li>
<? }?>
</ul>
</li>
<? }?>
<li>

Por medio de la presente quiero dar mi mas sincero agradecimiento a mi alumno de Proyecto Socio Tecnológico, TSU Jorge Granda, por su gran apoyo en aceptar la colocación de este ejercicio donde se puede observar la forma integral como trabajan: HTML, PHP, JAVA SCRIP, SQL:

Mas o menos para que tenga una idea de la estructura de directorios que debe crear para que su apliacción funcione, es la siguiente:

Para crear la base de datos que utiliza el sistema aqui tiene el scrip, el cual usando el phpmyadmin, puede crear una base de datos llamada ejemplo y luego ejecuta importar, y le coloca el nombr del archivo llamado: ejemplo.odt, al darle continuar se crearan las tablas de la base de datos.

Descargue el siguiente archivo: ejemplo

Para que estos programas ejemplos funcionen, debe crear una carpeta en la carpeta www o htdocs, le puede llamar ejemplo y dentro de ella debe crear los siguientes programas:

El siguiente archivo muestra la pantalla tipica para ingresar a un sistema:

Nombre del programa: index.php

<html>
<head>
http://js/validar.js
<?php include(«encabezado.php»)?>
</head>
<body>
<table width=»80%» border=»0″ align=»center» cellpadding=»0″ cellspacing=»0″>
<tr>
<td><form name=»acceso» method=»post» action=»login_in.php» onSubmit=»return validar_acceso(this)»>
<p>&nbsp;</p>
<table width=»280″ border=»0″ align=»center» cellpadding=»0″ cellspacing=»0″>
<tr>
<td colspan=»2″><p align=»center»>ACCESO</p></td>
</tr>
<tr>
<td width=»86″>USUARIO </td>
<td width=»114″>
<input type=»text» name=»usuario» id=»usuario» onKeyPress=»return acceptNum(event)»/>
</td>
</tr>
<tr>
<td>CLAVE</td>
<td><input type=»password» name=»clave» id=»clave» onKeyPress=»return acceptLetNum(event)»/></td>
</tr>
<tr>
<td><input type=»submit» name=»ingresar» id=»ingresar» value=»Ingresar» /></td>
<td>&nbsp;</td>
</tr>
</table>
<p align=»center»><img src=»imagenes/logo_bicentenario_2011.jpg» width=»164″ height=»227″></p>
<p align=»center»>&nbsp;</p>
</form></td>
</tr>
</table>
<?php include(«pie.php»);?>
</body>
</html>

Note lo siguiente: Cuando en el programa aparece <?php include(«encabezado.php»)?>, significa que debe existir un programa llamado encabezado.php, el cual se está incluyendo en este programa:

Nombre del programa: encabezado.php

<meta http-equiv=»Content-Type» content=»text/html; charset=iso-8859-1″ />
<title>EJEMPLO DE UNA CARGA DE DATOS BASICO HECHO EN PHP. Jorge Granda </title>
<table width=»80%» border=»0″ align=»center» cellpadding=»0″ cellspacing=»0″>
<tr>
<td><img src=»imagenes/FOTOSTOTAL.JPG» width=»992″ height=»149″></td>
</tr>
</table>

De igual forma existe en el programa index.php, una incorporación de un programa llamado: pie.php, lo cual se hace con la orden: <?php include(«pie.php»);?>, en este sentido el contenido de ese programa es el siguiente:

Nombre del programa: pie.php

<meta http-equiv=»Content-Type» content=»text/html; charset=iso-8859-1″ />
<link href=»css/estilos.css» rel=»stylesheet» type=»text/css»>
<style type=»text/css»>
<!–
.style1 {
font-size: 14
}
–>
</style>
<table width=»80%» border=»0″ align=»center» cellpadding=»0″ cellspacing=»0″>
<tr>
<td><p align=»center»><img src=»imagenes/Linea_mov.gif» width=»55%» height=»3″ align=»middle»></p>
<p align=»center»>&quot;&iexcl;El conocimiento el LIBRE. como Dios nos hizo LIBRES!&quot;</p>
<p align=»center»><strong>COPYLEFT TSU. Jorge Granda</strong></p>
</td>
</tr>
</table>

Cuando en el programa index.php, se indica:   <td><input type=»submit» name=»ingresar» id=»ingresar» value=»Ingresar» /></td>, lo que ocurre allí es que se invoca a la acción que esta programada en el formulario , tal como aparece a continuación:      <td><form name=»acceso» method=»post» action=»login_in.php» onSubmit=»return validar_acceso(this)»>, tal como puede observar en el action del formulario, se llama a un programa llamado: validar_acceso.php,  es importante que observe la instrucción que está mas arriba en el mismo archivo index.php, como puede notar verá que existe un llamado a un Java Scrip, http://js/validar.js, esta instrucción lo que hace es invocar dentro de una carpeta llamada js a un archivo llamado validar.js y dentro de él es donde se encuentran todas las validaciones que se va a ejecutar del lado del cliente y no del lado del servidor como lo hace PHP, en ese sentido puede entonces crear una carpeta llamada js, dentro de la carpeta ejemplo previamente creada, dentro de ella cree un archivo llamado: validar.js

Nombre del archivo: validar.js, ojo dentro de este archivo encontrará una cantidad considerable de validaciones que puede usar en cualquier programa que desarrolle:

// JavaScript Document
<!– Campo de solo numeros –>
var nav4 = window.Event ? true : false;
function acceptNum(evt)
{
// NOTE: Backspace = 8, Enter = 13, ‘0’ = 48, ‘9’ = 57
var key = nav4 ? evt.which : evt.keyCode;
return (key <= 13 || (key >= 48 && key <= 57));
}
<!– Campo de solo letras –>
var nav6 = window.Event ? true : false;
function acceptLet(evt)
{
// NOTE: Backspace = 8, Enter = 13, ‘0’ = 48, ‘9’ = 57, ‘ñ’ = 164, ‘Ñ’ = 165
var key = nav6 ? evt.which : evt.keyCode;
return (key <= 13 || (key >= 164 || (key <= 165 || (key >= 65 && key <= 90 || (key >= 97 && key <= 122 || (key == 32))))));
}
<!– Campo de solo letras y numeros–>
var nav5 = window.Event ? true : false;
function acceptLetNum(evt)
{
// NOTE: Backspace = 8, Enter = 13, ‘0’ = 48, ‘9’ = 57
var key = nav5 ? evt.which : evt.keyCode;
return (key <= 13 || (key == 32 || (key == 8 || (key == 164 || (key >= 65 && key <= 90 || (key >= 97 && key <= 122 || (key >= 48 && key <= 57)))))));
}
<!– Campo de solo letras, numeros y algunos caracteres especiales–>
var nav5 = window.Event ? true : false;
function acceptLetNumCar(evt)
{
// NOTE: Backspace = 8, Enter = 13, ‘0’ = 48, ‘9’ = 57    45, ‘-‘ 64, ‘@’ 95, ‘_’
var key = nav5 ? evt.which : evt.keyCode;
return (key <= 95 || (key == 164 || (key <= 64 || (key <= 46 || (key <= 45 || (key <= 13 || (key >= 65 && key <= 90 || (key >= 97 && key <= 122 || (key >= 48 && key <= 57)))))))));
}
//CAMPO CORREO SIN @
var nav5 = window.Event ? true : false;
function acceptCorreo(evt)
{
// NOTE: Backspace = 8, Enter = 13, ‘0’ = 48, ‘9’ = 57    45, ‘-‘ 64, ‘@’ 95, ‘_’
var key = nav5 ? evt.which : evt.keyCode;
return (key <= 13  || (key == 164 || (key == 46 || (key == 45 || (key == 95 || (key >= 97 && key <= 122 || (key >= 48 && key <= 57)))))));
}
/* VALIDACIONES DE FORMULARIO DE PAGINA DE ACCESO */
//
//
//
function validar_acceso(acceso)
{
if (acceso.usuario.value.length < 6)
{
alert(«Introduzca su Número de Cédula CORRECTAMENTE»);
acceso.usuario.focus();
return (false);
}
if (acceso.clave.value.length < 4)
{
alert(«Su contraseña debe contener al menos cuatro (4) números o letras»);
acceso.clave.focus();
return (false);
}
return (true);
}
function personas(str)
{
if (str.length==0)
{
document.getElementById(«result»).innerHTML=»»;
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();//objeto
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject(«Microsoft.XMLHTTP»);//objeto
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById(«result»).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open(«GET»,»getper.php?p=»+str,true);
xmlhttp.send();
}
function up()
{
document.getElementById(«texto»).value=document.getElementById(«texto»).value.toUpperCase();
//toLowerCase(); minusculas
}
function insert()
{
window.open(«agregar_persona.php»,»Agregar una Persona»,»menubar=no,toolbar=no,scrollbars=no,width=900,height=680,left=50,top=50,location=no,resizable=yes»);
}
function imprimir()
{
window.print();
}
//AGREGAR USUARIO
function agrega(str)
{
if (str.length==0)
{
document.getElementById(«existe»).innerHTML=»»;
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();//objeto
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject(«Microsoft.XMLHTTP»);//objeto
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById(«existe»).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open(«GET»,»getper_2.php?b=»+str,true);
xmlhttp.send();
}
//¿Tendra acceso al sistema? SI o NO
function si()
{
document.getElementById(‘permisos’).style.visibility=’visible’;
}
function no()
{
document.getElementById(‘permisos’).style.visibility=’hidden’;
}
//CERRAR VENTANA
function cerrar_ventana()
{
window.close();
}
//validacion de formulario para la pagina de agregar una persona
function validacion(agrega_per)
{
//valido campo cedula
if(agrega_per.ced.value.length < 5)
{
alert(«Debe colocar su NUMERO de CEDULA correctamente «);
agrega_per.ced.focus();
return (false);
}
//valido campo nombre
if(agrega_per.nomb.value.length < 2)
{
alert(«Nombre INCORRECTO»);
agrega_per.nomb.focus();
return (false);
}
//valido campo apellido
if(agrega_per.apell.value.length < 2)
{
alert(«Apellido INCORRECTO»);
agrega_per.apell.focus();
return (false);
}
//valido lista/menu
if(document.getElementById(‘gen’).selectedIndex==0)
{
alert(‘Debe seleccionar el Genero’);
agrega_per.gen.focus();
return (false);
}
//valido campo direccion
if (agrega_per.dir.value.length < 4)
{
alert(«Debe colocar su DIRECCION de HABITACION»);
agrega_per.dir.focus();
return (false);
}
//valido campo correo y lista/menu
if(!(document.getElementById(‘no_correo’).checked))
{
if (agrega_per.correo.value.length < 6)
{
alert(«Su correo debe contener al menos cuatro (6) numeros o letras»);
agrega_per.correo.focus();
return (false);
}
if(document.getElementById(‘prov’).selectedIndex==0)
{
alert(‘Debe seleccionar el Proveedor de Sevicio de Correo Electronico’);
agrega_per.prov.focus();
return (false);
}
}
//valido los checkbox
if(document.getElementById(‘acceso_0’).checked)
{
if((document.getElementById(‘insert’).checked==false) && (document.getElementById(‘update’).checked==false) && (document.getElementById(‘delete’).checked==false) && (document.getElementById(‘print’).checked==false))
{
alert(«Usted debe asignar algun permiso para esta persona. si no lo desea, Responda NO en la pregunta anterior.»);
document.getElementById(‘acceso_0’).focus();
return (false);
}
}
return (true);
}
//PASAR TEXTO A MAYUSCULAS AUTOMATICAMENTE
function mayusculas1()
{
document.getElementById(«nomb»).value=document.getElementById(«nomb»).value.toUpperCase();
//toLowerCase(); minusculas
}
function mayusculas2()
{
document.getElementById(«apell»).value=document.getElementById(«apell»).value.toUpperCase();
//toLowerCase(); minusculas
}
//PASAR TEXTO A MINUSCULAS AUTOMATICAMENTE
function minusculas1()
{
document.getElementById(«correo»).value=document.getElementById(«apell»).value.toLowerCase();
//toLowerCase(); minusculas
}
function no_tengo(no_correo)
{
if(document.getElementById(‘no_correo’).checked)
{
//alert(«BLOQUEADO»);
document.agrega_per.correo.disabled=true;
document.agrega_per.prov.disabled=true;
}
else
{
//alert(«DESBLOQUEADO»);
document.agrega_per.correo.disabled=false;
document.agrega_per.prov.disabled=false;
}
}
function direccion(dir)
{
document.getElementById(«dir»).innerHTML=document.getElementById(«dir»).innerHTML.toUpperCase();
}
/*var nav7 = window.Event ? true : false;
function arroba(correo)
{
// NOTE: Backspace = 8, Enter = 13, ‘0’ = 48, ‘9’ = 57, ‘ñ’ = 164, ‘Ñ’ = 165
var key = nav7 ? evt.which : evt.keyCode;
if(key==64)
{
document.getElementById(‘prov’).focus();
}
}*/

Al ejecutar el programa index.php, observará las siguiente pantalla, claro es importante que tome en cuenta que usted debe crear una carpeta llamada imagenes y dentro de ella usted puede colocar todas las imagenes que usted va a utilizar en su desarrollo:

El contenido del programa login_in,php, puede usted observar como se trabaja con las variables de sesión:

Nombre del programa: login_in.php

<?php
session_start();//INICIAMOS FUNCION DE SESION
include(«conexion_mysql.php»);//incluyo el archivo de conexion a mysql
@$usuario=$_POST[‘usuario’];//obtenemos los datos de acceso del formulario
@$clave=$_POST[‘clave’];//obtenemos los datos de acceso del formulario
$busca_usuario=mysql_query(«SELECT a.nombre,a.apellido FROM usuarios b, personas a WHERE b.id_per=$usuario AND b.clave=’$clave'»);//consulto si existe dentro de la tabla USUARIOS de la base de datos
if(mysql_num_rows($busca_usuario) != 0)//certifico si hubo registros a partir de la consulta anterior
{
@$datos_personales=mysql_fetch_array($busca_usuario);
@$nombre_apellido=$datos_personales[‘nombre’].» «.$datos_personales[‘apellido’];
@$permisos=mysql_query(«SELECT * FROM permisos WHERE id_per=$usuario»);//solicito los permisos del usuario de la tabla permisos
$registros=mysql_fetch_array($permisos);
@$consultar=$registros[‘consultar’];//permisos
@$agregar=$registros[‘agregar’];//permisos
@$modificar=$registros[‘modificar’];//permisos
@$eliminar=$registros[‘eliminar’];//permisos
@$imprimir=$registros[‘imprimir’];//permisos
//CREAMOS VARIABLES DE SESION
$_SESSION[‘autenticado’]=»Si»;//esta es la mas importante porque nos ayudara
//Variables de sesion para permisos
$_SESSION[‘nombre_apellido’]=$nombre_apellido;
$_SESSION[‘consultar’]=$consultar;
$_SESSION[‘agregar’]=$agregar;
$_SESSION[‘modificar’]=$modificar;
$_SESSION[‘eliminar’]=$eliminar;
$_SESSION[‘imprimir’]=$imprimir;
//hasta aqui las sesiones
echo «<meta http-equiv=’refresh’ content=’0;URL=principal.php’>»;
}
else
{
echo «alert(‘USUARIO o CLAVE INVALIDOS, INTENTE DE NUEVO ‘)»;
echo «<meta http-equiv=’refresh’ content=’0;URL=index.php’>»;
}
?>

El contenido del programa case.php, puede usted observar como se trabaja de manera integral con las sentencias SQL, para llevar a cabo los procesos de mantenimiento básico sobre una tabla: Incluir (INSERT INTO), modificar (UPDATE), borrar registros (DELETE) y para consultar registros (SELECT):

Nombre del programa: case.php

<?php
if(isset($_REQUEST[‘opt’]))
{
session_start();
include(«conexion_mysql.php»);
@$opcion=$_REQUEST[‘opt’];
switch($opcion)
{
case 1:
//AGREGAR UNA PERSONA

@$busca_persona=mysql_query(«SELECT * FROM personas WHERE id_per=».$_REQUEST[‘ced’].»»);
if(mysql_num_rows($busca_persona)<>0)
{
//CREO LAS VARIABLES DE SESION PARA QUE NO SE PIERDAN LOS DATOS
@$_SESSION[‘id_per’]=$_REQUEST[‘ced’];//cedula
@$_SESSION[‘nomb’]=$_REQUEST[‘nomb’];//nombre
@$_SESSION[‘apell’]=$_REQUEST[‘apell’];//apellido
@$_SESSION[‘gen’]=$_REQUEST[‘gen’];//genero
@$_SESSION[‘dir’]=$_REQUEST[‘dir’];//direccion
@$_SESSION[‘correo’]=$_REQUEST[‘correo’];//correo
//@$_SESSION[‘prov’]=$_REQUEST[‘prov’];//proveedor
//@$_SESSION[‘acceso’]=$_REQUEST[‘acceso’];
if($_REQUEST[‘acceso’]<>0)
{
@$_SESSION[‘INSERT’]=$_REQUEST[‘insert’];
@$_SESSION[‘UPDATE’]=$_REQUEST[‘update’];
@$_SESSION[‘DELETE’]=$_REQUEST[‘delete’];
@$_SESSION[‘PRINT’]=$_REQUEST[‘print’];
}
echo «alert(‘Esta persona ya se encuentra registrada, Vuelva a intentarlo’)»;
echo «<meta http-equiv=’refresh’ content=’0;URL=agregar_persona.php’/>»;
exit;
}
else
{
@$cedula=$_REQUEST[‘ced’];
@$nombre=$_REQUEST[‘nomb’];
@$apellido=$_REQUEST[‘apell’];
@$genero=$_REQUEST[‘gen’];
@$direccion=$_REQUEST[‘dir’];
@$correo=$_REQUEST[‘correo’].$_REQUEST[‘prov’];
@$ins=$_REQUEST[‘insert’];
/*echo «alert(‘$ins’)»;*/
@$upt=$_REQUEST[‘update’];
/*echo «alert(‘$upt’)»;*/
@$del=$_REQUEST[‘delete’];
/*echo «alert(‘$del’)»;*/
@$prn=$_REQUEST[‘print’];
/*echo «alert(‘$prn’)»;*/
mysql_query(«INSERT INTO personas (id_per,nombre,apellido,genero,dir_per,correo) VALUES ($cedula,’$nombre’,’$apellido’,’$genero’,UCASE(‘$direccion’),’$correo’)»);
//asigno privilegios si los va a tener
if(($ins=»on») || ($upt=»on») || ($del=»on») || ($prn=»on»))
{
mysql_query(«INSERT INTO permisos (id_per,consultar,agregar,modificar,eliminar,imprimir) VALUES ($cedula,’on’,’$ins’,’$upt’,’$del’,’$prn’)»);
//CREO SU USUARIO SIEMPRE Y CUANDO TENGA ACCESO AL SISTEMA
mysql_query(«INSERT INTO usuarios (id_per,clave) VALUES ($cedula,$cedula)»);
}
echo «alert(‘Registro de Persona Satisfactorio’)»;
echo «<meta http-equiv=’refresh’ content=’0;URL=agregar_persona.php’/>»;
}
break;
case 2:
//MODIFICAR UNA PERSONA

break;
case 3:
//ELIMINAR A UNA PERSONA

break;

}
}
?>

El programa que se muestra a continuación, conexion_mysql.php, muestra un esquema clásico para efectuar la conexión a la base de datos MYSQL:


Nombre del Archivo: conexion_mysql.php

<?php
$con=mysql_connect(«localhost»,»root»,»») or die («NO SE PUEDE CONECTAR CON SERVIDOR DE BASE DE DATOS»);//CONEXION CON NUESTRO SERVIDOR DE BASE DE DATOS
mysql_select_db(«ejemplo»,$con) or die («NO SE ENCONTRAR LA BASE DE DATOS ‘ejemplo'»);//SELECCIONAMOS NUESTRA BASE DE DATOS
?>

El siguiente programa agregar_persona.php, constituye un formulario de captura de datos:

Nombre del programa: agregar_persona.php

<?php
include(«seguridad.php»);
include(«conexion_mysql.php»);
?>

<html>
<head>
<meta http-equiv=»Content-Type» content=»text/html; charset=iso-8859-1″ />
http://js/validar.js
<link href=»css/estilos.css» rel=»stylesheet» type=»text/css»>
</head>
<body onLoad=»agrega_per.ced.focus()»>
<table width=»100%» height=»» border=»0″ align=»center» cellpadding=»0″ cellspacing=»0″>
<tr>
<td><form id=»agrega_per» name=»agrega_per» method=»post» action=»case.php» onSubmit=»return validacion(this)»>
<p align=»center»>&nbsp;</p>
<p align=»center»>AGREGAR UNA PERSONA</p>
<table width=»90%» border=»1″ align=»center»>
<tr>
<td width=»26%»>C&eacute;dula de identidad</td>
<td width=»74%» colspan=»2″>
<input name=»ced» type=»text» id=»ced» size=»8″ maxlength=»12″ onKeyUp=»agrega(this.value)» onKeyPress=»return acceptNum(event)» value=»<?php if(isset($_SESSION[‘id_per’]))echo $_SESSION[‘id_per’];?>»/>
&nbsp;&nbsp;<span>* Dato Requerido</span>

</td>
</tr>
<tr>
<td>Nombres</td>
<td colspan=»2″>
<input name=»nomb» type=»text» id=»nomb» maxlength=»50″ onKeyPress=»return acceptLet(event)» onKeyUp=»mayusculas1(this.value)» value=»<?php if(isset($_SESSION[‘nomb’]))echo $_SESSION[‘nomb’];?>»/>
<span>* Dato Requerido</span></td>
</tr>
<tr>
<td>Apellidos</td>
<td colspan=»2″>
<input name=»apell» type=»text» id=»apell» maxlength=»50″ onKeyPress=»return acceptLet(event)» onKeyUp=»mayusculas2(this.value)» value=»<?php if(isset($_SESSION[‘apell’]))echo $_SESSION[‘apell’];?>»/>
<span>* Dato Requerido</span></td>
</tr>
<tr>
<td>Genero</td>
<td colspan=»2″><label for=»gen»></label>
<select name=»gen» id=»gen»>
<option selected>SELECCIONE</option>
<option value=»MASCULINO»>MASCULINO</option>
<option value=»FEMENINO»>FEMENINO</option>

</select>
<span>* Dato Requerido</span></td>
</tr>
<tr>
<td>Direcci&oacute;n</td>
<td colspan=»2″><label for=»dir»></label>
<textarea name=»dir» id=»dir» cols=»85″ rows=»6″ onKeyUp=»direccion(this)»><?php if(isset($_SESSION[‘dir’]))echo $_SESSION[‘dir’];?></textarea></td>
</tr>
<tr>
<td>Correo Electr&oacute;nico</td>
<td colspan=»2″><label for=»dir»></label>
<input name=»correo» type=»text» id=»correo» size=»35″ maxlength=»100″ value=»<?php if(isset($_SESSION[‘correo’]))echo $_SESSION[‘correo’];?>» onKeyPress=»return acceptCorreo(event)»>
<span>Proveedor</span>
<label for=»prov»></label>
<select name=»prov» id=»prov»>
<option>SELECCIONE</option>
<option value=»@gmail.com»>@gmail.com</option>
<option value=»@yahoo.com»>@yahoo.com</option>
<option value=»@yahoo.es»>@yahoo.es</option>
<option value=»@hotmail.com»>@hotmail.com</option>
<option value=»@hotmail.es»>@hotmail.es</option>
<option value=»@googlemail.com»>@googlemail.com</option>
<option value=»@cantv.net»>@cantv.net</option>

</select>            &nbsp;<span>No poseo Correo
<input type=»checkbox» name=»no_correo» id=»no_correo» onClick=»no_tengo(this)»>
<label for=»no_correo»></label>
</span></td>
</tr>
<tr>
<td>&iquest;Tendrá acceso al Sistema?</td>
<td colspan=»2″><p>
<label>
<input type=»radio» name=»acceso» value=»1″ id=»acceso_0″ onClick=»si()»>
Si</label>
<label>
&nbsp;&nbsp;<input name=»acceso» type=»radio» id=»acceso_1″ value=»0″ checked onClick=»no()»>
No</label>
&nbsp;&nbsp;<br>
</p></td>
</tr>
<tr>
<td colspan=»3″><table width=»100%» border=»1″ align=»center» id=»permisos» style=»visibility:hidden»>
<tr>
<td width=»38%»><span>Acceso al modulo </span><span>PERSONAS</span></td>
<td width=»15%»>

Agregar nueva Persona

</td>
<td width=»16%»>

Modificar datos de Persona

</td>
<td width=»15%»>

Eliminar datos de personas

</td>
<td width=»16%»>

Imprimir datos de Personas

</td>
</tr>
<tr>
<td><span>Permisos</span></td>
<td>

</td>
<td>

</td>
<td>

</td>
<td>

</td>
</tr>
<tr>
<td colspan=»5″>

AVISO: Los datos de acceso al sistema para este usuario será su número de cédula en ambos casos (USUARIO Y CLAVE).

</td>
</tr>
</table></td>
</tr>
<tr>
<td colspan=»3″>

 

 

 

</td>
</tr>
</table>
</form></td>
</tr>
</table>
</body>
</html>

Al ejecutar este programa observará la siguiente pantalla:

Es importante que observe lo siguiente dentro de este programa se hace un llamado por el action del formulario al programa case.php, que ya usted previamente creo, el llamado lo efectúa esta instrucción: <form id=»agrega_per» name=»agrega_per» method=»post»  action=»case.php» y recuerde que esta se ejecuta luego que se le da clic sobre el boton: Agregar Nuevo Usuario.


A continuación, les dispongo un conjunto de código fuente muy útil, para que logren verificar como desde PHP podemos ejecutar acciones sobre nuestro Sistema manejador de base de datos Postgresql, espero les resulte de utilidad:

 

Programa que permite ejecutar la conexión con nuestra base de datos en «Postgresql»:

El programa se llama: conexion.php

<?php
class conexion{

public  function conectar()
{
$user_base = ‘postgres’;
$port_base_datos = ‘5432’;
$dbname_base = ‘practica1’;
$password = ‘12345678’;
$host_base_datos = ‘localhost’;

$conexion_bd = pg_connect(«user =$user_base port =$port_base_datos dbname =$dbname_base
password =$password host=$host_base_datos»);

if (!$conexion_bd){
$error = ‘Falla al conectarse’;
throw new Exception($error);
}
return $conexion_bd;
}

}
try {
$objeto = new conexion();
$objeto->conectar();
echo ‘Conexion Satisfactoria’;
}
catch (Exception $e){
echo $e;
}
?>



A continuación les dispongo un código fuente muy sencillo para demostrar el funcionamiento de una calculadora, espero les resulte de utilidad.

El siguiente código: selecciónelo, cópielo y pegue en su editor de preferencia, guarde el archivo con extensión .php, Guárdelo en una carpeta llamada calculadora, ejecute en su browser de preferencia y listo:

Si desea que se visualice el  logo, debe descargarlo y colocarlo en la misma carpeta: logo_iutoms

 

 

 

<html>
<head>
<title>Calculadora desarrollada por: MSc. Angel Daniel Fuentes</title>

function suma(){

v1 = parseInt(calculadora.valor1.value);
v2 = parseInt(calculadora.valor2.value);
calculadora.txt_resultado.value=v1+v2;
}

function resta(){

v1 = parseInt(calculadora.valor1.value);
v2 = parseInt(calculadora.valor2.value);
calculadora.txt_resultado2.value=v1-v2;
}

function multiplica(){

v1 = parseInt(calculadora.valor1.value);
v2 = parseInt(calculadora.valor2.value);
calculadora.txt_resultado3.value=v1*v2;
}

function divide(){

v1 = parseInt(calculadora.valor1.value);
v2 = parseInt(calculadora.valor2.value);
calculadora.txt_resultado4.value=v1/v2;
}

</head>

<body>

<h2 align=»center»>Desarrollado por: MSc. Angel Daniel Fuentes</h2>
<p align=»center»>

<form name=»calculadora»>
<center>
<h1 align=»center»>Calculadora</h1>
<p align=»center»>
Introduzca Valor 1</align>
<input type=»text» name=»valor1″ size=»20″>
<p align=»center»>
Introduzca Valor 2</align>
<input type=»text» name=»valor2″ size=»20″>
<p align=»center»>

<input type=»button» value=»SUMAR» onClick=»suma()»>
<input type=»button» value=»RESTAR» onClick=»resta()»>
<input type=»button» value=»MULTIPLICAR» onClick=»multiplica()»>
<input type=»button» value=»DIVIDIR» onClick=»divide()»>
<input type=»reset» value=»BORRAR VALORES»>

<h1 align=»center»>Resultados</h1>
<p align=»center»>
<hr align=»center»>

Resultado Suma……………..:

<p align=»center»>
Resultado Resta………………:</align>
<input type=»text» name=»txt_resultado2″ size=»20″>
<p align=»center»>
Resultado Multiplicacion</align>
….:
<input type=»text» name=»txt_resultado3″ size=»20″>
<p align=»center»>
Resultado Division…………….:</align>
<input type=»text» name=»txt_resultado4″ size=»20″>
<p>

</form>
</body>
</html>

Al ejecutar el código, esto es lo que visualizará:

calculadora


Espero que lo publicado hasta aquí sea de utilidad para usted, de igual forma continuaré publicando mas ejemplos.

!!! EXITOS !!!

58 comentarios sobre “PHP

  1. Soy Enlace y Docente de Una aldea de Mision Sucre en PNFIS en el estado Zulia Cabimas y Simon Bolivar especificamente, mi pregunta es si existe una Mision Ciencia en este estado, y si no como podemos conformarlo, asi mismo saber como puedo aportar o conformar proyectos como investigador o promotor de esta gran mision

    1. Apreciado amigo, le indico lo siguiente: La Misión Ciencia en el Estado Zulia, trabaja de la mano con Fundacite Zulia, le recomiendo asista a sus instalaciones las cuales estan ubicadas:

      Avenida Universidad con Prolongación Cecilio Acosta junto al Museo de Arte Contemporaneo del Zulia. – Zulia – Maracaibo – Venezuela
      Teléfono(s): (0261) 7832906 / (0261) 7833160

  2. Hola Ángel…
    Soy julio, estudiante de sistemas y me gustaría que si también tienes conocimientos sobre java, lo publicaras puesto que estoy iniciándome en el lenguaje. si recomiendas algún tutorial no dudes en nómbralo.
    Gracias por publicar tus conocimientos para todos.

  3. PROF fuentes su pagina esta muy buena porque ayuda a saber cosas que a veces no sabemos por falta de averiguar o preguntar.
    Una pregunta este link que le voy a enviar como hago para convertirlo en un pag web como haria me lo puede revisar e indicar algunas sugerencias para acomodarlo gracias espero su respuesta pronto.
    http://invmsyasociados.spaces.live.com esto lo tengo por medio de hotmail que es mi proveedor de correo.

    1. Apreciado amigo Mario Sandoval:
      Usted lo que tiene es un Blog (Vitacora), es decir un espacio que su proveedor de correo le proporciona, para que usted escriba sobre algún tema de interes y el producto se lo ordena por fechas.
      Para lograr hacer que ese blog sea una página web publica, necesariamente usted debe primero registrar un dominio, por http://www.nic.ve, luego usted debe contratar o hacer uso de algún sitio que le permita tener un alojamiento de su pagina web (hosting), dependiendo si usted lo contrata o lo encuentra de forma gratuita, usted debe conocer cual es su Servidor de Nombre de Dominio (DNS), para que así lo disponga en su dominio creado ó contratado con http://www.nic.ve, por motivos de costo regularmente uno busca un Proveedor de Servicio de Internet (ISP), por ejemplo http://www.cantv.net, para alojar con ellos nuestra pagina web, lo cual por supuesto eso tiene un valor.
      Mi recomendación es: puede usted seguir explotando todos los recursos que le ofrece el blog, donde usted esta suscrito o en su defecto le recomiendo que cree su blog, por http://www.wordpress.com, el cual de una forma facil, rápida y versatil, sin ningún costo puede usted crear su pagina y además presentaria la gran ventaja que de acuerdo a sus temas de investigación o solamente con su nombre y apellido usted será visto en la www.
      Gracias por su comentario.

    1. En verdad muchas gracias por su comentario, de igual manera le informo que poco a poco seguire escribiendo, el curso hasta llegar a establecer formularios con conexión a las bases de datos, bien sea Mysql o Postgresql.

  4. HOLA AMIGO DANIEL, ESPERO QUE ESTES BIEN, ES UN PLACER PARA MI CONTAR CON UN COLEGA QUE COMO TU, QUE SIEMPRE LE ENTREGAS A TUS ALUMNOS UNA GRAN GAMA DE CONOCIMIENTOS EN ESTA AREA, Y EN VERDAD TE FELICITO POR TU DESEMPEÑO COMO DOCENTE UNIVERSITARIO, MUCHO EXITO Y QUE SIEMPRE SIGAS HACIENDO ESTE TIPO DE TRABAJO QUE REFUERZA MUCHO LA ENSEÑANZA DE NUESTROS ALUMNOS.

    1. Apreciado amigo Profesor: German Aranguren.
      Gracias por sus palabras y le recuerdo que siempre estoy a la orden para hacer llegar a todos mis colegas y amigos, las nuevas herramientas en el área de tecnología que día a día estoy aprendiendo.
      Saludos a todos y mis más sinceros aprecios.

      1. Buen dia profesor; estoy en el ultimo semestre de ing en informatica y estoy realizando mi proyecto, pero he tenido algunos inconvenientes en la realizacion de algunos, desearia me orientara para poder terminarlos. estoy programando en lenguaje php y las pantallas en html y css. mi correo sequera.alice@gmail.com le agradeceria de todo corazon . gracias!

  5. hola profe espero este bien y que el señor lo bendiga y lo siga llenando de bendiciones, profe el programa menu solo me aparece «aqui puede desarrollar su menu de trabajo» y no me aparece nada queria saber si lo arreglo, gracias y exelente pagina …. saludos

    1. Ok, no habia podido responder a los mensajes, ya que me encontraba muy complicado laboralmente hablando. Voy a publicar todo un compendio de ejemplos donde espero le sean de mucha utilidad. Estoy en estos momentos trabajando en ello.
      Gracias por sus comentarios.

  6. Muchas gracias por compartir sus conocimientos con aquellos que comenzamos en este campo. Me gustaría que publicara un ejemplo sobre trabajar cálculos pero en la misma pagina, algo así como una factura que se autocalcule o una lista de mercado, algo dinámico. Lo tengo de ejercicio y no me es aún funcional.

  7. Buenas tardes profesor.

    Primeramente permitame felicitarle por el trabajo diario y desinteresado que usted dignamente realiza para que todos conozcan el lenguaje PHP entre otras herramientas.

    De antemano le brindo toda mi disposición y mi apoyo en cuanto a este lenguaje.

    Muchos exitos

    Jorge Granda

    1. Gracias por sus palabras Jorgue Granda.
      De igual forma muchos exitos para usted también.
      Si usted tiene ejemplos y desea compartirlos con el Mundo, aqui tiene una ventana para hacerlo y de igaul forma le invito a que cree su BLOG y así poder compartir sus conocimientos con todas aquellas personas que lo desean.

  8. Saludos amigo Daniel, muchas felicitaciones por por el contenido de su blog. Es admirable, que dedique tiempo de su vida a compartir sus conocimientos.
    En la distancia, saludos profesor un fuerte abrazo!

    Luis Coraspe

    1. Apreciado amigo: José Granda.
      Quiero que reciba mi mas sincero agradecimiento por todo su apoyo.
      De igual forma quiero Felicitarle por su desempeño, calidad humana y por su incansable busqueda de conocimientos.
      Continue adelante y tenga por absoluta seguridad que todo lo que se proponga lo va a lograr.
      Exitos.

  9. Muchas gaias estaba buscando algo que me indique como recibir en otro formulario las variables de un Select o Radio, porque no me doy cuenta y no veo nada de lectura al respecto, pero si mucha de envias datos en forma normel (apellido,nombre,etc), muchas gracias desde Mendoza, Argentina.

    1. Gracias por sus comentarios.
      Reciba desde Caracas – Venezuela, un fuerte abrazo.
      De igual forma siempre voy a continuar colocando mas información al respecto, de las distintas áreas donde me desempeño.

    1. Muy bien, le Felicito.
      Lo importante es dejar a la humanidad información que en nuestro recorrer por la vida aprendemos.

    1. Disculpe usted la tardanza en responderle, no habia ingresado al Blog.
      Fijese el $link= es la conexion al manejador de base de datos. Es como un objeto con un identificador (ID) de acceso a la base de datos. Luego accede a una tabla y al final con el pg_query ejecuta la consulta en la tabla con ese identificador (ID) de acceso que es el $link.

      Espero le sirva de ayuda. igual dejeme buscar ejkemplos al respecto y se los dispongo.
      Gracias por sus comentarios.

  10. Le Felicito por su excelente labor.
    «Hay una fuerza motriz más poderosa que el vapor, la electricidad y la energía atómica: la voluntad» Alberth Einstein.
    Es la voluntad que Ud manifiesta con su trabajo. Exitos.

    1. Apreciado Antonio:
      Reciba usted un fuerte abrazo y muchas gracias por sus palabras, estas me dan mas fuerzas para continuar adelante y desarrollar mas cosas de interés para todos y todas.

      Gracias.

  11. me quedo sin palabras al ver la manera que tienes de enseñar ,, ,, muchas gracias por entregar tus conocimientos de corazon,, ,, nunca me gusto aprender de los profesores ,, pero tu eres un maestro ,,,tu trabajo esta lleno de amor ,eso es lo que lo hace tan facil ,, FELICITACIONES ,,,

    1. Por nada apreciada Marcela, Gracias por sus comentarios.
      Continuamente estoy colocando información para todos, en diferentes tópicos.
      Pronto voy a colocar un curso completo de java scrip, con una diversidad de ejemplos, que pueden resultar muy útiles para efectuar las validaciones en los programas en PHP.

      Gracias por su comentario.

  12. buenas tardes profesor, lo felicito por su excelente trabajo, estoy inicianome en esto de la programacion en php con conexiona a bd y espero sacar gran provecho de sus enseñanzas, y me gustaria estar al tanto de los tutoriales que en este tema usted publique…gracias de antemano

    1. Apreciada amiga Rosa Oropeza

      Gracias por sus comentarios. Quiero indicarle que poseo un ejemplo muy sencillo bastante completo para trabajar con PHP y MYSQL, en la actualidad estoy pasando el mimso ejemplo pero al sistema manejador de base de datos postgresql.

      En ese sentido estamos a la orden, cuando lo desee se lo puedo enviar a su correo.

      Desce Caracas – Venezuela, reciba un fuerte abrazo.

  13. Estimado señor, le escribo desde Santiago de Chile, y estoy aprendiendo a programar en php; le di una mirada a su programa y al parecer es lo que andaba buscando para poder entender esta nueva forma de programar. Soy autodidacta en la informática y estoy interesado en traspasar una aplicación que desarrollé hace muchos años en Clipper a PHP, ya he avanzado en algunas cosas menores pero de a poco he ido avanzando. Tengo esperanzas que su código me ayude a entender algunas cosas.
    Muchas gracias por darse el tiempo en publicar y responderle a cada persona que le escribe, eso habla muy bien de usted.
    Saludos cordiales.

    1. Apreciado amigo. Gaston Gutierrez.

      Gracias por sus comentarios. Quiero indicarle que poseo un ejemplo muy sencillo bastante completo para trabajar con PHP y MYSQL, en la actualidad estoy pasando el mimso ejemplo pero al sistema manejador de base de datos postgresql.

      En ese sentido estamos a la orden, cuando lo desee se lo puedo enviar a su correo.

      Desce Caracas – Venezuela, reciba un fuerte abrazo.

      1. Si estimado, me encantaría recibir su ejemplo de su sistema en PHP.

        muchas gracias

  14. Buenas tardes, profesor,seria muy bueno para mi recibir este ejemplo, pues etoy iniciandome en esto de la progamacion con php y postgres pgAdmin,he trabajado en el area desde al año 91, y programe hasta el año 99, luego pase al area de gestion en bd especificamente oracle,soy venezolana,estoy en caracas, y me gustaria saber si usted da cursos.

    de antemano le agradezco su atencion,y espero recibir pronto el ejemplo ofrecido… por ciero sabe usted algo de una aplicacion llamada lime survey, me lo recomendaron para hacer aplicativos de captura de datos tipo encuesta, que eso es en lo que debo pulirme. gracias

  15. disculpe no se si me pueda dar una explicacion sobre el lenguaje java, servlets y paginas jsp porfavor se lo agradeceria mucho.

  16. Hola Daniel, un saludo desde Colombia. Le he sacado mucho provecho a tu blog, sobre todo en la parte de php, tengo una duda ¿con respecto al ejercicio que propones de los datos del trabajador, tienes la BD, ya lista para poderla trabajar?, es que me gustaría poderla conectar y todas esas cosas. Gracias

    1. Disculpe lo tarde de la respuesta, mi correo es cedavilu@gmail.com, cuando desee me indica y le envio los ejemplos completos conbase de datos y todo. Lo que ocurre es que por este medio no lo puedo subir es muy grande el archivo.

      Gracias por su comentario.

  17. fantastic publish, very informative. I wonder
    why the opposite experts of this sector don’t understand this. You should proceed your writing. I am confident, you’ve
    a great readers’ base already!

    1. Thank you for your feedback.
      My desire is simply that we must share our knowledge with humanity.

      Thanks, from Caracas – Venezuela.

  18. Excellent site you have got here.. It’s difficult to find good quality writing like yours nowadays. I seriously appreciate individuals like you! Take care!!

    1. Thanks potr feedback, please tell at least one of the images that do not appear to me to review, I leave my all and I can see either under mozilla firefox or explorer. Please check and let me know. Thank you.

  19. Profesor Daniel un cordial saludo desde México, agradeciendo su aporte y conocimientos que nos brinda, gracias por el apoyo espero que su blog siga creciendo, estoy por concluir mi carrera en Ing. en TICS y estoy realizando un Help Desk para mi titulación, quería ver si me podría apoyar u orientarme para un ejemplo de uno por favor.

Replica a http://icecap.us/index.php/member/477816 Cancelar la respuesta