Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Casidiablo

#111
Java / Re: Duda con applet
17 Julio 2008, 18:27 PM
Aquí tienes algunos ejemplos de Applets:

http://casidiablo.net/java/

Lo de más es que, sabiendo como manejar imágenes y eventos hagas lo que te piden. Y lo de siempre... ¿qué has hecho? Pon tu código y ya luego te vamos ayudando.

Un saludo!
#113
Java / Re: Como el ListView de .net o VB??
7 Julio 2008, 01:39 AM
Muchacho wEON...

En ese caso te recomendaría usar el método setListData, al cual le pasas un arreglo de objetos con los items. Y puedes tener aparte un objeto que represente los datos como tal; así, podrías hacer algo como esto al momento de iniciar la lista:

Código (java) [Seleccionar]
listModel = new DefaultListModel();
listModel.addElement("Debian");
listModel.addElement("Gentoo");
listModel.addElement("Fedora");

lista = new JList(listModel);


Y posteriormente solo actualizas el listModel, y luego el JList.

Un saludo!

Edito: ummm... casi todas las distros de linux tienen 6 letras. Vaya satánicos!
#114
PHP / Cómo crear permalinks agradables
28 Junio 2008, 00:23 AM
Umm... esto lo escribí ya hace un rato, pero que más da (además que hace mucho que no aporto nada al foro). La idea de este artículo es mostrar un sencillo ejemplo de cómo hacer que los links de nuestras aplicaciones web sean "bonitos". De tal manera no tendríamos links como estos:

http://www.sitio.com/index.php?accion=consultar&objetivo=personas

Sino algo estéticamente más agradable como:

http://www.sitio.com/personas/

¿Qué necesito?

Es necesario tener en cuenta los prerrequisitos para poder hacer esto. Para este ejemplo voy a suponer que la aplicación la estás haciendo sobre el servidor Apache, y que estás programando en PHP+MySQL. Necesitas:


  • Manejar la mayor parte del trabajo con el archivo index.php. Esto más que un requisito es un consejo. Cuando estés desarrollando aplicaciones en PHP es recomendable que la mayor parte del sistema tenga que ser procesado inicialmente por este archivo, el cual se encargará de manejar todas las peticiones y utilizar los módulos que se necesiten. Esto, por supuesto, NO quiere decir que TODO el código vaya dentro del archivo index.php; una buena práctica es separar el código en módulos y llamarlos con funciones como include o require.
  • Es necesario tener instalado el mod_rewrite, el cual se utilizará desde un archivo .htaccess. El ModRewrite es un módulo para Apache que por lo general se configura (definir reglas) en el archivo httpd.conf, pero es posible poner una configuración ModRewrite en cualquier directorio de nuestro servidor web dentro del archivo .htaccess.
  • Puesto que de acuerdo al string que pasemos en la URL se debe determinar qué hacer, es necesario hacer algo de esto:

    • Hacer que dentro de la base de datos la llave primaria de la tabla a consultar sea una cadena de texto, ó
    • Hacer otro campo en la tabla de MySQL aparte de la llave primaria

Ejemplo
Para nuestro ejemplo necesitamos un servidor Apache con ModRewrite, PHP y MySQL. Lo primero es crear la base de datos, así:

Código (sql) [Seleccionar]
create database ejemplo;
create table contenidos(
id int(5) primary key auto_increment,
titulo varchar(50),
contenido varchar(1000),
slug varchar(50));


Luego creamos una carpeta dentro del htdocs de apache, en donde pondremos los archivos de nuestro ejempo (mkdir /opt/lampp/htdocs/ejemplo). Hecho esto, lo siguiente es crear el archivo .htaccess, en el cual indicaremos las reglas del ModRewrite. En nuestro ejemplo tenemos algo como esto:

Código (apache) [Seleccionar]
# Esto es un comentario
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /ejemplo/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /ejemplo/index.php [L]
</IfModule>


Una explicación breve de este .htaccess:


  • En los archivos .htaccess es posible hacer comentarios anteponiendo el simbolo numeral (almohadilla como dicen en España)
  • <IfModule mod_rewrite.c>: Esta instrucción funciona como un if, que verifica si el ModRewrite está instalado.
  • RewriteEngine On, activa el ModRewrite.
  • RewriteBase /ejemplo/, asigna el directorio base donde trabajará el ModRewrite
  • RewriteCond %{REQUEST_FILENAME} !-f y RewriteCond %{REQUEST_FILENAME} !-d, la instrucción RewriteCond funciona como una condición que en caso de ser verdadera hará que se ejecute una regla (RewriteRule) del ModRewrite. Funciona con expresiones regulares. En este caso lo que estamos verificando es si la petición se trata de un archivo (-f) o directorio (-d) que no (!) existe, en cuyo caso ejecuta la RewriteRule de abajo. Pero ¿para qué esto? Dado que las peticiones que hacemos usando URL bonitas no existen físicamente en el servidor, podemos aprovecharlas para indicar que dichas URL las manejará el archivo index.php, es decir, si por ejemplo hacemos una consulta como:
    http://www.sitio.com/link-agradable
    y en dicho servidor no existe ninguna carpeta o archivo que tenga el nombre link-agradable, el control de dicha petición se enviará al archivo index.php.
  • RewriteRule . /ejemplo/index.php [L], ejecuta la regla que en este caso hace que el control de la aplicacion pase al archivo index.php, el cual se encargará de analizar la URL y realizar las operaciones adecuadas. La instrucción [L] hace que cualquier otra regla por debajo de esa linea no se cumpla.
  • </IfModule>, cerramos nuestro if.
Vamos ahora con nuestro archivo index.php:

Código (php) [Seleccionar]
<?php
   
//URL base de la aplicacion
   
$base "http://localhost/ejemplo/";
   
//Crear la conexion a la base de datos
   
$conexion mysql_connect("localhost""root""");
   
mysql_select_db("ejemplo"$conexion);
   
//Si se requiere unicamente el index
   
if(("http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']) == $base ||
      
basename($_SERVER['REQUEST_URI']) == "index.php")
      
$contenido "Lo que vaya en el index por defecto";
   else {
      
$id $_GET["id"];
      
//Si es una URL fea-asquerosa...
      
if(!empty($id))
         
$consulta mysql_query("SELECT contenido FROM contenidos WHERE id = $id"$conexion);
      
//Si es una URL bonita...
      
else
      {
         
//Obtener el nombre clave
         
$slug basename($_SERVER['REQUEST_URI']);
         
$consulta mysql_query("SELECT contenido FROM contenidos WHERE slug = '$slug'"$conexion);
      }
      
//Si la consulta es correcta...
      
if(mysql_num_rows($consulta) > 0)
         
$contenido mysql_result($consulta00);
      
//Informar del terrible error
      
else
         
$contenido "Lo que est&aacute;s buscando no existe :P ";
   }
?>

<html>
<head><title>Un ejemplo</title></head>
<body><?php echo $contenido ?></body>
</html>



       
  • Línea 3: es recomendable para este tipo de aplicaciones (y para casi todas en general), que tengamos una URL fija definida para nuestra aplicación. En este caso almacenamos el string  http://localhost/ejemplo/ en la variable  $base.
  • En las líneas 5 y 6 creamos la conexión a la base de datos.
  • En el if de la línea 8 verificamos si la petición HTTP es para la raiz de nuestro proyecto (llamar simplement al index.php), de lo contrario...
  • En las líneas 12 y 14 verificamos si se trata de una petición GET normal, en la que pasamos pares variable-valor dentro de la URL. En cuyo caso se realiza una consulta a la base de datos tomando en cuenta las variables GET (línea 15).
  • Si la peticion está formada como una URL bonita, creamos una variable llamada $slug que contiene el nombre base de la URI (línea 20), es decir, si la peticion es http://www.sitio.com/link-agradable, el nombre base de la URI es link-agradable. Posteriormente, en la línea 21 hacemos una consulta en la base de datos buscando un registro que contenga dicho slug.
  • En la línea 24 verificamos si la consulta ejecutada anteriormente contiene registros, en cuyo caso pone el contenido en la variable $contenido. Sino, se mete en esa variable un mensaje que dice que no se encontró el registro.

Hecho esto, nuestra aplicación tendrá el siguiente comportamiento:

La aplicación por defecto:



Una consulta a la antigua (URL fea):



Una consulta estéticamente más bonita:



Cuando no encuentra un registro:



Enlaces

P.d. El código es SOLO de ejemplo. Si hacen algo muy parecido podría ser vulnerable, por ejemplo, a inyecciones SQL. En sus aplicaciones tengan cuidado con eso.
P.d. Sobra decir que pueden hacer lo que quieran con el mini-tutorial (copiar, modificar, etc.) con o sin ánimo de lucro. Siempre y cuando se referencie la fuente ;)
#115
Si... debe ser un error del SMF. A mi tambien me pasa a ratos :P
#116
Java / Re: no encuentra las "librerias"
25 Junio 2008, 16:30 PM
Yo creo que es la manera como estás intentando ejecutar el programa. ¿que comando ejecutas, y desde qué carpeta?
#117
Es:

jCheckBox1.setEnabled(true);

Un saludo!
#118
Una vez tengas el combobox, haces:

Código (csharp) [Seleccionar]
comboBox1.Items.Clear(); //borrar los items actuales
comboBox1.Items.Add("Un dato"); //añadir item
comboBox1.Items.Add("Otro dato");
comboBox1.Items.Add("Y un ultimo dato");
#119
Lo único que debes hacer es, una vez que tienes el string ( str = cajaDeTexto.getText() ), invocas algún método de la clase que maneja la base de datos. Ese método debe recibir el string, y hacer con eso lo que le venga en gana.

El problema es que, primero, no tienes clara la idea de clase, y segundo, no pones lo que llevas, por lo que no podemos ayudar mucho.

Un saludo!
#120
OK... que llevas hecho hasta ahora? Que problemas has tenido? Que has encontrado cuando buscas con Google?