Dos primos luchan contra la tecnología

Aprendizaje y formación en informática profesional mediante videotutoriales

Abrir navegador en Java

En ocasiones queremos que una aplicación Java abra una página web que contenga por ejemplo la documentación del programa en formato HTML.
Para ello existe una orden que nos permite ejecutar aplicaciones externas desde un prrograma Java:

String url = "http://www.google.com";
Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler " + url);

Con esta orden se abrirá el navegador por defecto y mostrará la página indicada en url.
Por supuesto, esto sólo funcionará en Windows, perdiendo portabilidad de código.

Activar y conectar a Escritorio Remoto en Windows Xp y Windows Server 2003, aprende como se hace con este videotutorial

Windows Xp logoWindows Server 2003 logo

Para actiivar y hacer uso del Escritorio Remoto (RD, Remote Desktop) en Windows Xp Professional, o Windows Server 2003 deberemos hacer lo siguiente: Acceder a las propiedades del sistema, una vez aquí nos fijamos en la pestaña de Acceso Remoto la pulsamos y vemos en la parte inferior que se nos da la posibilidad de Permitir el acceso remoto a este equipo, lo marcamos y ya estará habilitado, de no ser que necesitemos agregar a otros usuarios cosa que podremos hacer con el boton que tenemos a la derecha (no recuerdo que pone exactamente)  pinchando en ese boton se abre una nueva ventana que nos permite agregar a Usuarios  que no sean Administrador para conectarse de forma remota al equipo y trabajar desde cualquier sitio, cosa muy recomendable si queremos tener acceso remoto al equipo sin correr grandes riesgos para lo que crearemos usuarios con pocos privilegios sobre el sistema y los añadiremos protegiendo el usuario Administrador con contraseñas seguras (Ver Post de seguridad).  Haciendo esto habilitaremos a Usuarios a conectarse a nuestro equipo, pero hemos de recordar que solo Windows Server 2003 es multiusuario al 100% por lo que al iniciar una sesion en un Windows Xp Professional en modo Remoto y estar otro usuario logeado en ese momento se nos preguntará si deseamos cerran la sesión que hay iniciada en ese momento tomando el control del equipo y dejando al usuario activo sin el. Para establecer la conexión necesitamos un cliente de acceso remoto compatible  y este se encuentra en los Sistemas Windows Xp y Windows Server 2003 en:

Inicio -> Todos los programas -> Accesorios -> Comunicaciones -> Conexion a escritorio remoto
(more…)

Output buffering

En ocasiones queremos utilizar el comando header para que un script redirija el navegador a otra dirección pero nos da el siguiente error: Cannot add header information - headers already sent

Esto se debe a que HTML require que las sentencias HEADER se encuentren dentro de las etiquetas <head></head> para que sean procesadas por el navegador. El problema viene cuando es imposible por el flujo del programa que aparezca dentro de estas etiquetas.

Para solucionar este problema hay dos soluciones:

  • Modificar php.ini:
    output_buffering = On
  • Añadir al script los comandos de control de buffer:
    <?php ob_start(); ?>
    ...código html...
    <?php ob_end_flush() ?>

    Utilizando estos comandos el script se comportará como si output_buffering estuviese activado.

PhpMyAdmin: DROP DATABASE

Las últimas versiones de phpMyAdmin no permiten borrar las bases de datos a los usuarios normales aunque sean de su propiedad.

Para solucionar esto hay que editar el archivo de configuración de phpMyAdmin llamado normalmente config.inc.php y editar la clave $cfg['allowUserDropDatabase'] = TRUE

Con esto se mostrará la pestaña que permite borrar la base de datos y también permitirá la ejecución del comando SQL.

Autenticación HTTP con PHP y MYSQL

Aunque es posible autenticar usuarios y prohibir el acceso a recursos utilizando htacces con Apache, hay ocasiones en las que no es posible o cómodo utilizar este recurso.

PHP posee dos variables constantes predefinidas para manejar la autenticación HTTP que son $_SERVER[PHP_AUTH_USER] y $_SERVER[PHP_AUTH_PW] que guardan el nombre de usuario y contraseña respectivamente.

1 -Crear un script que compruebe los datos de usuario llamado ‘logfunction.php’ por ejemplo:

<?php
//conectar a la base de datos...
$db = mysql_connect($host, $dbuser, $dbpass);
$query = "SELECT * FROM users WHERE hash = md5($_SERVER['PHP_AUTH_USER'].$_SERVER['PHP_AUTH_PW'])";
$result = mysql_query($query);
if (mysql_num_rows($result) != 1){
echo "<h1>No estas autorizado</h1>";
echo "<a href=log.php>Volver a login</a>";
exit();
}
?>

2 – Crear una página de login que mostrará el diálogo de login:

<?php
//aqui se solicita usuario y contraseña
header('WWW-Authenticate: Basic realm="Mi dominio"');
header('HTTP/1.0 401 Unauthorized');
header('status: 401 Unauthorized');
//se verifican los datos introducidos

include ("logfunction.php");

header ("Location: pagina_reservada.php"); ?>

3 – En cada principio de página hacer un include al script de validación que aquí se ha llamado ‘logfunction.php’.

JButton transparente

JButton btn = new JButton("MyButton");
btn.setContentAreaFilled(false);

HTML en JLabel

Un JLabel puede tener contenido HTML si encerramos el texto entre etiquetas <html>Un <b>texto</b></html> y así apodemos aplicar formato y enlaces. También permite escribir texto en vertical si ponemos un <br> entre cada caracter.