PROGRAMAR EN ACCESS VBA

Aplicaciones access con visual basic for applications

  > Principal > Conexion a datos
 
.: Access
- Formularios access
- Informes access
- Formularios Arcgis
- Acceso a datos
- Ejemplos usuarios
- Libros access
- FAQ
.: Pdas
- Programar PDA
- Tutorial
- Ejemplos
.: Php
- basico
- conexion BBDD
- funciones
- construir Intranet
.: Foros
- Foro Access
- Foro PDAs
- Foro GIS
- Foro SQL
.: Blog
- Blog Access
.: SQL Access
- Consultas SQL
- Tutorial
.: Geotools
- Geotools
 
 
.: Novedades
- Una Aplicacion Access
- Ofertas de trabajo en access
- Libros de access
- Catálogo de imágenes access
-Newssletters
 

Construir una intranet con PHP

En esta seccion veremos como construir paso a paso una intranet de empresa, utlizando php + mysql. Iremos desde la validación de usuario por contraseña, hasta la asignacion de distintos roles segun el usuario. Se compondrá de varios modulos, como pedidos, formacion,correo, gastos, noticias, etc

.: Contratar Publicidad :.
 

1.- Introducción

Estos son los distintos modulos que vamos a ver dentro de la intranet:

1.- usuarios, creación, tablas, roles, validacion

2.- Pagina principal, validación de usuarios

3.- Modulo de noticias

4.- Modulo de Incidencias

5.- Modulo de pedidos

6.- Modulo de formación de usuarios

7.- Modulo de administración

 

2.- Usuarios: creacion y roles

El primer paso para crear nuestra intranet sera definir el diseño de nuestra base de datos. Un primer paso debería ser la tabla de usuarios, en mi caso, vamos a crear esta tabla con estos campos:

ID: Numero y autoincremental, clave primaria.

Nombre: Nombre completo del usuario;

usuario: Nombre de usuario para entrar en la intranet.

Password: Contraseña cifrada, en mi caso utilizo cifrado AES. Con la funciones AES_DECRYPT y AES_ENCRYPT puedo saber la contraseña, pero necesito una clave de validación.

Correo: correo web del usuario, lo utlizaremos para enviar avisos.

Por ahora no necesitaremos mas campos en la tabla de usuarios. La siguiente tabla que vamos a necesitar es la tabla ROLES. Esta tabla tendrá los permisos de cada usuario en cada uno de los modulos de la intranet. Los campos serán los siguientes:

ID: Numero y autoincremental, clave primaria.

Usuario: Id del usuario, es clave ajena de la tabla usuario (ID)

Noticias: Rol para el usuario en el modulo de visitas, podemos hacerlo asi: 0 (sin permiso), 1 (permiso limitado), 2 (permiso avanzado), 3 (Administrador)

Incidencias: Igual que noticias.

Pedidos:Igual que noticias.

Formacion:Igual que noticias.

Administracion:Igual que noticias.

 

Nuestro esquema de base de datos quedaría asi:

 

USUARIOS --------------1 Tiene 1--------------ROLES

 

Ahora que tenemos estas dos tablas, podemos diseñar el sistema de validacion y entrada a la intranet. Cada usuario entra validandose con su nombre de usuario y contraseña. Por lo tanto tendremos una pagina principal con un formulario, dos cajas de texto, para introducir nombre de usuario y contraseña, y un boton para ejecutar dicha validación.

Todo formulario web tiene asociada una acción. en este caso nuestra acción a ejecutar será: validar_usuario.php.

2.- Validar un usuario

Debemos crear una pagina validar_usuario.php que se encarge de conectarse con la base de datos y comprobar que la validación es correcta, el código sería así:

 

<?php

include("funs.php");


$usuario = $_POST['usuario'];
$pass = $_POST['pass'];

$query = "select AES_DECRYPT(pass,clave) as pass from usuarios where usuario = '" . $usuario . "'";

$result = conexion("basedatos",$query);

$row = mysql_fetch_array($result);

if ($row['pass'] == $pass and $pass != '') {

if ($usuario == '' or $usuario == NULL) {
header("Location:../fallo_login.php");
}else
{

header("Location:intranet/index.php?usuario=" . $usuario . "");
}

}
else {
header("Location:../fallo_login.php");

}


?>

Este codigo es muy sencillo. Lo que hacemos en primer lugar es recuperar los valores del formulario, que estan almacenados en $_POST[]. Luego hacemos una consulta a la base de datos que nos devuelva la contraseña del usuario, si coinciden la validacion es correcta, si no, con header("Location:.. redirigimos a una pagina de fallo.

3.- Modulo de noticias

Vamos a ver a continuación como crear una pagina para insertar noticias y luego poder ver estas noticias. En primer lugar tendremos la pagina formulario. donde ponemos la noticia y su importancia:

 
<form name="form1" id="form1" method="post" action="guarda_noticia.php?usuario=<?php echo $usuario; ?>">
<p>Titulo:</p>
<p>
<input name="titulo" type="text" id="titulo" size="60" />
</p>
<p>Contenido:</p>
<p>
<textarea name="contenido" cols="60" rows="10" id="contenido"></textarea>
</p>
<p>Urgencia:
<select name="tipo" id="tipo">
<option value="1">MUY IMPORTANTE</option>
<option value="2">IMPORTANTE</option>
<option value="3">NORMAL</option>
<option value="4">INTRASCENDENTE</option>
</select>
</p>
<p>&nbsp;</p>
<p>
<input type="submit" name="Submit" value="Enviar" />
</p>
<p>&nbsp; </p>
</form>

 

Este formulario, redirige a la pagina guarda_noticia.php, que es la que guarda el registro en la base de datos:

 
<?php

session_start();

$titulo = $_POST['titulo'];

$contenido = $_POST['contenido'];

$fecha = date("y-m-d");

$usuario = getnusuario($_GET['usuario']);

$urgencia = $_POST['tipo'];


$sql = "insert into noticias (emisor,titulo,contenido,urgencia,fecha,valido) values (" . $usuario . ",'" . $titulo . "','" . $contenido . "'," . $urgencia . ",'" . $fecha . "',1)";

$resultado = conexion("Incidencias", $sql);

//header("location:../interno/indexintra.php?usuario=" . $_GET['usuario'] . "");
echo '<script language="javascript"> document.location.href="index.php?usuario='.$_GET['usuario'].'" ; </script>';
?>

 

Y luego, para mostrar las noticias sería:

 
$columns = 1;
$sql = "select * from noticias where valido = 1 order by fecha desc";
$result = conexion("Incidencias",$sql);
$columnas = (mysql_num_rows($result));
for($i = 0; $i < $columnas; $i++) {
echo "<TR>";
$row = mysql_fetch_array($result);
if ($row['urgencia'] == 1) {
echo "<td height='40' align='left' valign='middle' bgcolor='#FFFF00' >" . $row['titulo'] . "</td>";
echo "<td height='40' align='left' valign='middle' bgcolor='#FFFF00' ><span class='txt-desc-noticias'>" . $row['contenido'] . "</span></td>";
//echo "<td height='40' align='left' valign='middle' bgcolor='#FFFF00' ><a href='../img/noticias/" . $row['foto'] . "'><img src='../img/noticias/" . $row['foto'] . "' width='150' height='100' /></a></td>";

echo "<td height='40' align='left' valign='middle' bgcolor='#FFFF00' >MUY IMPORTANTE</td>";
echo "<td height='40' align='right' valign='middle' bgcolor='#FFFF00' >" . fechabuena($row['fecha']) . "</td>";
}else {
echo "<td height='40' align='left' valign='middle' bgcolor='#EEFBF7' >" . $row['titulo'] . "</td>";
echo "<td height='40' align='left' valign='middle' bgcolor='#EEFBF7'><span class='txt-desc-noticias'>" . $row['contenido'] . "</span></td>";
//echo "<td height='40' align='left' valign='middle' bgcolor='#EEFBF7' >imagen</td>";

echo "<td height='40' align='left' valign='middle' bgcolor='#EEFBF7' >IMPORTANCIA</td>";
echo "<td height='40' align='right' valign='middle' bgcolor='#EEFBF7'>" . fechabuena($row['fecha']) . "</td>";
}
echo "</TR>\n";
}
?>
</table>

 

 
 
 
 
Añadir a favoritos Contacto Libros sobre access y vba Enlaces Todo Access  
 
.: En ProgramarVBA podrá encontrar:        
Visual Basic Formularios Access Informes Foro de programación PDAs Conexión a bases de datos Blog de adps
Foro GIS Foro PDAs Tutorial VBA Bases de datos Access Foro SQL Acceso a datos access Informes access