2. Un segundo fichero llamado "login.php" con el siguiente contenido:
Código:
<?
include ("funciones.php");
$tipoletranormal = "<font face=\"verdana\" style=\"font-size: 10pt\">";
$encabezadoaviso = "<font size=\"2\" color=\"#008080\"><span style=\"font-family: Arial\"><b>Aviso</b></span></font><hr size=2 width=\"100%\" align=center>";
$encabezadoerror = "<font size=\"2\" color=\"#008080\"><span style=\"font-family: Arial\"><b>Error</span></b></font><hr size=2 width=\"100%\" align=center>";
//comprobando la contraseña
if (!isset($password))
{
die ($encabezadoerror . $tipoletranormal .
"No ha introducido la contraseña.
XXXA href=\"javascript:history.back();\">Volver a intentarlo</A>");
}
if (empty($password))
{
die ($encabezadoerror . $tipoletranormal .
"No ha introducido la contraseña.
XXXA href=\"javascript:history.back();\">Volver a intentarlo</A>");
}
if ((strlen($password) < 5) || (strlen($password) > 15))
{
die ($encabezadoerror . $tipoletranormal .
"La longitud de la contraseña no es válida (entre 5 y 15 caracteres).
XXXA href=\"javascript:history.back();\">Volver a intentarlo</A>");
}
conectarbd ("bdajpdsoft");
//se selecciona el código de cliente y se extraen los datos
$sqlConsulta = "
SELECT contrasena, nombre, tipo, codigo, numerovisitas
FROM usuarios
WHERE codigo = " . $codigousuario;
$sqlResultado = mysql_query($sqlConsulta);
if ($row = mysql_fetch_array($sqlResultado))
{
if ($password != $row["contrasena"])
{
die ($encabezadoerror . $tipoletranormal .
"La contraseña introducida no coincide con la del usuario.
XXXA href=\"javascript:history.back();\">Volver a intentarlo</A>");
}
}
else
{
die ($encabezadoerror . $tipoletranormal .
"El código de usuario introducido no coincide con
ninguno de los existentes.
XXXA href=\"javascript:history.back();\">Volver a intentarlo</A>");
}
$tipousuario = $row["tipo"];
//actualizar la hora, la fecha de la visita y el contador de visitas
$nvisitas = $row["numerovisitas"];
$nvisitas = $nvisitas + 1;
$sql = "UPDATE usuarios SET " .
"fechaultimavisita='" . fechaactual() . "'," .
"horaultimavisita='" . horaactual() . "'," .
"numerovisitas='" . $nvisitas . "'" .
"WHERE codigo='" . $codigousuario . "'";
$result = mysql_query($sql);
//según el usuario mostrar página personal
$encabezadopersonal = "<font size=\"2\" color=\"#008080\"><span style=\"font-family: Arial\">Iniciada sesión: "
. $row["nombre"] . "</span></font><hr size=2 width=\"100%\" align=center>";
echo $encabezadopersonal;
echo $tipoletranormal . "<br>Seleccione la tarea a realizar:<br><br>";
if ($tipousuario == "Administrador") //si es el administrador
{
echo $tipoletranormal . "XXXA href=\"programaalta.php\">Añadir programa</A><br>";
echo $tipoletranormal . "XXXA href=\"usuariover.php?codigousuario=" .
$codigousuario . "\">Lista de usuarios</A><br>";
echo $tipoletranormal . "XXXA href=\"usuariogestionar.php?codigousuario=" .
$codigousuario . "\">Gestionar usuarios</A><br>";
echo $tipoletranormal . "XXXA href=\"programaver.php?codigousuario=" .
$codigousuario . "\">Lista de programas</A><br>";
}
echo $tipoletranormal . "XXXA href=\"incidenciagestionar.php?codigousuario=" .
$codigousuario . "\">Gestión de Incidencias de programas</A><br>";
echo $tipoletranormal . "<br>XXXA href=\"usuariodatos.php?" .
"codigo=" . $codigousuario . "\">Cambiar datos del usuario</A><br>";
echo $tipoletranormal . "<br>XXXA href=\"usuarioeliminar.php?" .
"codigo=" . $codigousuario . "\">Eliminar usuario</A><br>";
echo $tipoletranormal . "<br>XXXA href=\"ficherosubir.php?codigousuario=" .
$codigousuario . "\">Subir un fichero (para resolver incidencias,
para copia de seguridad, ...)</A><br>";
//hipervínculo para adquirir programa
echo $tipoletranormal . "<br>XXXA href=\"programacomprar.php?codigousuario=" .
$codigousuario . "\">Comprar un programa</A><br>";
if ($tipousuario == "Pago" | $tipousuario == "Pago-Lista" |
$tipousuario == "Administrador") //si es de pago
{
//pondremos un hipervinculo para configuracion.ini por cada programa
//que tenga registrado
if ($tipousuario == "Administrador") //si es el administrador (todos)
{
$sqlConsulta = "
SELECT codigoprograma, codigousuario, programas.nombre NombrePrograma
FROM usuariosprograma, programas
WHERE programas.codigo=usuariosprograma.codigoprograma";
}
else
{
$sqlConsulta = "
SELECT codigoprograma, codigousuario, programas.nombre NombrePrograma
FROM usuariosprograma, programas
WHERE programas.codigo=usuariosprograma.codigoprograma AND
codigousuario = " . $codigousuario;
}
$sqlResultado = mysql_query($sqlConsulta);
while ($row = mysql_fetch_array($sqlResultado))
{
echo "<b><br> * Para realizar actualizaciones automáticas de " .
$row["NombrePrograma"] . ", descargue estos dos ficheros en
la misma carpeta y ejecute el fichero: \"actualizar.exe\":</b>";
echo $tipoletranormal . "<br>XXXA href=\"httpdocs/usuactualiza/actualizar.exe\">
Pulse aquí para descargar el fichero ejecutable</A><br>";
echo $tipoletranormal . "XXXA href=\"httpdocs/usuactualiza/programa/" .
$row["codigoprograma"] . "/configuracion.ini\">
Pulse aquí para descargar el fichero de configuración</A><br>";
}
}
//mostrar hipervínculo para lista de CD's
if ($tipousuario == "Lista" | $tipousuario == "Pago-Lista"
| $tipousuario == "Usuario-Lista" | $tipousuario == "Administrador")
{
echo $tipoletranormal . "<br>XXXA href=\"cddatosver.php?codigousuario=" .
$codigousuario . "\">Lista de CD's de datos</A><br>";
}
?>
Nota: no olvides reemplazar "XXXA" por "<A", tenemos que ponerlo así para poder visualizarlo en el foro, de lo contrario no aparecería.
3. El contenido del fichero "funciones.php" será (ten en cuenta que algunas de las funciones de este fichero no las necesitarás, las ponemos por si sirven de algo):
//muestra encabezado y texto y finaliza la ejecución
function mostrarTextoError ($textoTitulo, $textoMensaje)
{
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"/estilos/estilo.css\">";
// $tipoletranormal = "<font face=\"verdana\" style=\"font-size: 10pt\">";
$encabezado = "<font size=\"2\" color=\"#008080\"><span style=\"font-family:
Arial\"><b>" . $textoTitulo . "</span></b></font><hr size=2 width=\"100%\"align=center>";
die ($encabezado . $textoMensaje);
}
//para conectarse a la base de datos
function conectarbd($bd)
{
// $tipoletranormal = "<font face=\"verdana\" style=\"font-size: 10pt\">";
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"/estilos/estilo.css\">";
$encabezadoerror = "<font size=\"2\" color=\"#008080\"><span style=\"font-family:
Arial\"><b>Error</span></b></font><hr size=2 width=\"100%\" align=center>";
$link = @mysql_connect("localhost", "usuariobd","contraseñabd")
or die ("<br>" . $encabezadoerror . $tipoletranormal .
"No se pudo conectar a la base de datos, inténtelo en otro momento.");
@mysql_select_db($bd, $link)
or die ($encabezadoerror . $tipoletranormal .
"No se pudo conectar a la base de datos, inténtelo en otro momento.");
}
//obtiene la fecha actual (formato: aaaa:mm:dd)
function fechaactual()
{
$dia = date ("d");
$mes = date ("m");
$ano = date ("Y");
$fecha = $ano . "-" . $mes . "-" . $dia;
return $fecha;
}
//obtiene el tipo de usuario según el código
function tipoUsuario($codigousuario)
{
conectarbd ("gestionintegral");
$sqlConsulta = "SELECT tipo, codigo FROM usuarios WHERE codigo = " .
$codigousuario;
$sqlResultado = mysql_query($sqlConsulta);
if ($row = mysql_fetch_array($sqlResultado))
{
return $row["tipo"];
}
else
{
return "0";
}
}
//comprueba si existe un usuario
function existeUsuario($codigousuario)
{
conectarbd ("bdajpdsoft");
$sqlConsulta = "SELECT codigo, email FROM usuarios WHERE codigo = " .
$codigousuario;
$sqlResultado = mysql_query($sqlConsulta);
if ($row = mysql_fetch_array($sqlResultado))
{
return $row["email"];
}
else
{
return "0";
}
}
//se le pasa como parámetro un 0 ó 1 y devuelve Sí o No
function SiNo ($valor)
{
if ($valor == 1)
{
return "Sí";
}
else
{
return "No";
}
}
function subirFTP ($servidor, $usuario, $contrasena, $archivoservidor, $archivolocal)
{
// $tipoletranormal = "<font face=\"verdana\" style=\"font-size: 10pt\">";
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"/estilos/estilo.css\">";
$encabezadoerror = "<font size=\"2\" color=\"#008080\"><span style=\"font-family:
Arial\"><b>Error</span></b></font><hr size=2 width=\"100%\" align=center>";
$ftp = @ftp_connect($servidor)
or die ($encabezadoerror .
"No se ha podido conectar al servidor. Inténtelo en otro momento.
XXXA href=\"javascript:history.back();\">Volver atrás");
@ftp_login ($ftp, $usuario, $contrasena)
or die ("La conexión ha sido rechazada, es posible que no tenga permisos suficientes
para realizar esta operación. Consulte al administrador enviando un
mensaje a: mailto:direccion@servidor.com");
$a = @ftp_put ($ftp, $archivoservidor, $archivolocal, FTP_BINARY);
if ($a == 1)
{
ftp_quit($ftp);
return true;
}
else
{
ftp_quit($ftp);
return false;
}
}
if (!(session_is_registered('codigousuario')))
{
@session_unset();
@session_destroy();
echo "<link rel=\"stylesheet\" type=\"text/css\" href=\"/estilos/estilo.css\">";
die($encabezadoerror .
"Debe inciar la sesión o registrarse (si no lo ha hecho).<br>
XXXA target=\"_blank\" href=\"login.html\">Iniciar sesión</A><br>
XXXA href=\"registro.html\">Registrar usuario</A>");
}
}
?>
Como antes, no olvides reemplazar "XXXA" por "<A".
Publicado:
Lun Jun 18, 2007 6:53 am
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Cosas que tendrás que cambiar
Lógicamente, algunas de las comprobaciones que realizamos no te servirán o querrás cambiarlas por otras. Por ejemplo, en nuestro caso combrobamos en la tabla "usuarios" si el campo "tipo" tiene el valor "Administrador", si es así se le muestra un menú con más opciones que si no tiene este valor.
Esto lo hemos puesto porque seguramente os sirva de ejemplo para poder mostrar opciones diferentes si un usuario es administrador o no.
También hay otra opción que no es estrictamente necesaria, por la cual se guarda la fecha, la hora y un contador con el número de visitas que ha realizado cada usuario.
Publicado:
Lun Jun 18, 2007 7:05 am
varios Magnífico usuario
Registrado: Oct 10, 2006 Mensajes: 2092
Asunto: Estructura de la tabla "usuarios"
¿podrías colocar la estructura de la tabla "usuarios"?
Publicado:
Lun Jun 18, 2007 7:09 am
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: Estructura de la tabla "usuarios"
Anuncios
varios escribió:
¿podrías colocar la estructura de la tabla "usuarios"?
Por supuesto, la estructura de la tabla "usuarios" en MySQL:
Código:
CREATE TABLE usuarios (
codigo tinyint(4) NOT NULL auto_increment,
codigousuario varchar(15) NOT NULL default '',
dni varchar(15) default NULL,
nombre varchar(150) NOT NULL default '',
contrasena varchar(15) NOT NULL default '',
direccion varchar(100) default NULL,
localidad varchar(30) default NULL,
codigopostal smallint(5) default NULL,
provincia varchar(30) default NULL,
pais varchar(30) default NULL,
fechaalta date default NULL,
fechaultimavisita date default NULL,
email varchar(200) NOT NULL default '',
envioinformacion smallint(6) default '0',
tipo varchar(30) default 'Usuario',
horaultimavisita time default NULL,
numerovisitas double NOT NULL default '0',
PRIMARY KEY (codigo),
UNIQUE KEY codigousuario (codigousuario),
UNIQUE KEY email (email)
) ENGINE=MyISAM;
Puede publicar nuevos temas en este foro No puede responder a temas en este foro No puede editar sus mensajes en este foro No puede borrar sus mensajes en este foro No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A