13 jul 2013

Clase estándar de conexión a Base de Datos (PHP & MySQL)

Si eres uno de los programadores que realiza aplicativos usando php sin frameworks, este información puede serte útil. Si bien es cierto que cada desarrollador tiene un estilo al momento de maquetar la estructura y el código propiamente dicho de las aplicaciones, es bueno considerar que para los métodos que se usan de manera reiterada, como el de conexión a Base de Datos, existen clases estándar, esta demás decir que muchos frameworks utilizan dichas clases y métodos estandarizados por las comunidades de desarrollo.


Archivo: DB.class.php
class DB {

    private static $instance;
    private $MySQLi;

    private function __construct(array $dbOptions) {

        $this->MySQLi = @ new mysqli(
                $dbOptions['db_host'], $dbOptions['db_user'], $dbOptions['db_pass'], $dbOptions['db_name']);

        if (mysqli_connect_errno()) {
            throw new Exception('Database error.');
        }

        $this->MySQLi->set_charset("utf8");
    }

    public static function init(array $dbOptions) {
        if (self::$instance instanceof self) {
            return false;
        }

        self::$instance = new self($dbOptions);
    }

    public static function getMySQLiObject() {
        return self::$instance->MySQLi;
    }

    public static function query($q) {
        return self::$instance->MySQLi->query($q);
    }

    public static function esc($str) {
        return self::$instance->MySQLi->real_escape_string(htmlspecialchars($str));
    }
}

En Lugar de explicar el código y los métodos que conforman la clase "db", vamos a pasar directamente a explicar el modo de uso de esta clase.

Creamos un archivo llamado index.php y escribimos el siguiente código

// Referencia a la clase db
require './db.class.php';

// Datos de la conexion
$dbOptions = array(
    'db_host' => 'localhost',
    'db_user' => 'sces',
    'db_pass' => 'sces',
    'db_name' => 'sces01'
);

try {
    DB::init($dbOptions);
    echo "Conexion establecida";
} catch (Exception $exc) {
    echo $exc->getTraceAsString();
}



En el siguiente post veremos la recuperación de datos. Hasta Pronto

14 jun 2013

Netbeans 7.3. Cómo conectarse a un Servidor Web Remoto mediante FTP.

Muchos desarrolladores, aún tenemos problemas al momento de publicar nuestras aplicaciones locales (desarrolladas en un servidor web local cómo xampp, wampp, etc.) en un servidor alojado en la nube (hosting), en mi experiencia como desarrollador php tuve muchos inconvenientes usando un cliente ftp (filezilla) ya que su funcionalidad es demasiado básica, le indicamos el o los archivos a subir y si existe algun archivo con el mismo nombre en el hosting, simplemente lo sobreescribe, esto puede generar diversos problemas.



- No es posible revisar el contenido del archivo, para realizar una sincronización.

- Imposibilita el control de versiones.

Descrito el problema, pasaremos a mostrar la solución, seguiremos usando nuestro querido IDE Netbeans, en esta oportunidad nos encontramos con la versión 7.3.

¿Qué queremos lograr?




Para los que han desarrollado en Visual Studio, la captura anterior podría parecerles familiar, ya que el IDE de desarrollo de Microsoft tiene esta funcionalidad en el Team Foundation.

Pasaremos a detallar los pasos necesarios para configurar Netbeans y conectarnos a nuestro servidor web alojado en la nube.


Si ya tenemos un proyecto simplemente ingresamos a sus propiedades y configuramos la opción "Run Configuration".) Para ver detalles de la configuración obviaremos los siguientes 3 pasos.

1. Si aún no tenemos un proyecto, lo creamos.

2. Modificamos los datos del proyecto.


3. Aqui vemos que por defecto en la pestaña "Run As:" tenemos elegida la opción "Local Web Site" (Servidor Web Local = localhost)


4. Cambiamos "Local Web Site" por "Remote Web Site" (Servidor Web Remoto)


5. Vemos que se activa la casila "Remote Connection", le damos click al botón "Manage".


6. En la pantalla "Manage Remote Connections" tendremos todas las opciones para conectarnos a un servidor FTP. Si es la primera vez que ingresamos a esta pantalla le damos click al botón "Add" para agregar una configuración nueva.

 7. Los datos necesarios para conectarnos a un servidor FTP son: nombre del dominio (en mi caso "blockcontrol.com"), el puerto por defecto es el 21, el nombre de usuario, el password y el directorio inicial (Initial Directory), en general los servidores que manejan php y mysql estan basados en Linux y el directorio raíz para publicar los archivos de la web es "public_html", las demás opciones las dejamos por defecto.

8. Una vez llenados los datos procedemos a probar nuestra conexión (botón "Test Connection"), si los datos son correctos tendremos un mensaje como el que se muestra.


9. Es importante configurar el modo de actualización de archivos, tenemos 3 opciones: "Manually": que permite subir o sincronizar los archivos de manera manual, "On Run" que sincroniza los archivos al momento de ejecutar la aplicación y "On Save" que sincroniza los archivos al momento de darle la orden de guardar en el Netbeans, personalmente recomiendo trabajarlo manualmente.

10. Por último le damos click al botón "Finish".



11. Finalmente tendremos nuestro aplicativo sincronizado.



Plan de festejos por la reinauguración del blog

Por algún motivo, los mensajes en el último post que hice hace 2 años, me animaron a seguir publicando artículos de apoyo a los que se inician en la programación, las pocas personas que revisan el blog, y tienen noción de lo rápido que avanzan las tecnologías de información, sabrán que mucho de lo que publiqué, en la actualidad no se usa. Trataremos de tocar los temas de interés usando lo que actualmente es considerado estándar, siempre con una cuota de innovación, creatividad, seducción, musicalidad, entretenimiento, sagacidad, maestría entre otras cosas.



Hasta muy pronto.

5 nov 2011

Llenar un combobox (lista desplegable) con datos de una bd (php & mysql)

Esta es una aplicación de lo explicado en los posts anteriores (conectarse a una base de datos, consultar y mostrar datos).

Primero veremos la forma de mostrar los datos de una consulta en un combobox.

El código html para mostrar un combobox es el siguiente

<select name="nombCliente">
   <option value="1">Opcion 1</option>
   <option value="2">Opcion 2</option>
</select>
Para mostrar los datos dinámicamente mediante una consulta vamos a tener que combinar código php y html.

Aquí les muestro la tabla con la que vamos a trabajar... sólo con 2 campos código y nombre, el campo código es autoincrementable.
El resultado que queremos es:
Ahora vamos con el código

<?php

/*
 * Código para mostrar datos dinámicamente en un combobox.
 */

include 'conexion_mysqli.php';

$query = 'SELECT * FROM cliente';

$result = $conexion->query($query);
//Como ya se dijo anteriormente la variable $conexion esta definida 
//en el archivo 'conexion_mysqli.php'

?>
<select>   
    <?php   
    while ( $row = $result->fetch_array() )   
    {
        ?>
   
        <option value=" <?php echo $row['codiCliente'] ?> " >
        <?php echo $row['nombCliente']; ?>
        </option>
       
        <?php
    }   
    ?>       
</select>

Como se darán cuenta simplemente estamos desdoblando la parte de <option></option> imprimiendo varios de ellos con el bucle while (mientras hayan datos), se le asigna como 'value' el campo codiCliente (lo que no se muestra) y como valor que se muestra el campo nombCliente.

¿Por qué es importante incluir el campo value?
Será necesario al momento de enviar datos desde un formulario, el dato que se envía es el que no se muestra.

link del proyecto en mediafire aquí

Consultar y mostrar datos de una BD (mysql / mysqli )

Ahora vamos a consultar y mostrar datos de una BD, luego analizaremos las diferencias entre la sintaxis de mysql y mysqli

Para este ejemplo vamos a usar una base de datos simple, sólo con una tabla llamada 'cliente' de la cual vamos a mostrar los datos mediante php, tendrán que realizar los cambios necesarios en el 'config.php' y en la variable $query para que les funcione si usan otra bd.


mysql
<?php

/*
 * Codigo para consultar y mostrar datos de una bd
 * sintaxis mysql.
 */

include 'conexion_mysql.php';  
//Llamada al archivo de conexion

$select = mysql_select_db($database_name);
//Seleccionamos la base de datos, si ya hicimos este proceso en el archivo de conexión obviamente quitamos ésta línea.

$query = 'SELECT * FROM cliente'; 
//Consulta a la BD

$result = mysql_query($query);
//Almacenamos en la variable $result los datos de la consulta

while ( $row = mysql_fetch_array( $result ) )   
{
    echo '<br>'.$row['nombCliente'];
}
//Recorremoos la consulta mediante un while imprimiendo el campo 'nombCliente'

?>

mysqli
<?php

/*
 * Codigo para consultar y mostrar datos de una bd
 * sintaxis mysqli.
 */

include 'conexion_mysqli.php';
 //Llamada al archivo de conexion

$query = 'SELECT * FROM cliente'; 
//Consulta a la BD

$result = $conexion->query($query);
//Almacenamos los datos en la variable $result
// * OJO: la variable $conexion ya se definió en el archivo
// * 'conexion_mysqli.php' la podemos usar ya que previamente
// * realizamos la invocación de este archivo con 'include'

while ( $row = $result->fetch_array() )  
{
    echo '<br>'.$row['nombCliente'];  
}
//Recorremos la variable $result y mostramos el campo 'nombCliente'

?>

link del proyecto en mediafire aquí

Conexión a BD (mysql / mysqli )

Antes ya debiste crear un proyecto y el archivo config.php donde se definen las variables de conexion a la BD.

Código config.php

<?php

/*
 * Archivo de configuración de la conexion a la BD
 * * $server : nombre del servidor de la base de datos
 * * $username : nombre del usuario de la base de datos
 * * $password : password del usuario de la base de datos
 * * $databas_name : nombre de la base de datos
 */

$server = 'localhost';
$username = 'root';
$password = '123';
$database_name = 'secayoelsistema';

?>


Diferencias en la sintaxis de la conexión a la BD.
mysql
<?php

/*
 * Código de conexión a una base de datos mediante sintaxis de mysql
 */
include 'config.php';

$conexion = mysql_connect($server, $username, $password);
if($conexion){
    echo 'Conexion OK';
}
else {
    echo 'Error';
}

?>

mysqli
<?php

/*
 * Código de conexión a una base de datos mediante sintaxis de mysqli
 */
include 'config.php';

$conexion = new mysqli($server,$username,$password,$database_name);

if ( $conexion->connect_error )
{
    die('Error de Conexión'. $conexion->connect_error);
}
else
{
    echo 'Conexion OK';
}

?>

Como se daran cuenta cuando usamos mysqli añadimos a la conexión el parámetro $database_name (nombre de la base de datos), en cambio en mysql ése parámetro es añadido en otra funcion llamada mysql_select_db. De esta manera ahorramos lineas de código. Otro detalle es el tratamiento de los errores. Pruebenlo!


link mediafire aquí

Creación del proyecto y archivo de configuración config.php

Para desarrollar en php recomiendo usar el IDE Netbeans (si eres experto creo que basta con el notepad++)

*Debo aclarar que antes ya debimos instalar nuestro servidor apache, si aún no lo han hecho pues el xampp les será de mucha ayuda. link xampp
Tambien existe el wampp server, el appserver entre otros.

1) Creación del proyecto mediante netbeans


2) Seleccionar PHP Application


3) Le asignamos un nombre al proyecto en Project Name, en Source Folder elegimos la carpeta de publicación de nuestro servidor, en este caso la carpeta de publicación del xampp es htdocs.


¿Esto para qué?

Al momento de ejecutar nuestro proyecto desde netbeans el navegador buscará estos archivos en la carpeta de publicacion htdocs (Ejemplo: localhost/tu_aplicacion_web/index.php, estará accediendo al archivo index.php que se encuentra en la carpeta tu_aplicacion_web y esta a su vez se encuentra en la carpeta de publicacion del servidor)





4) Si has configurado bien en el paso anterior, aqui no será necesario modificar nada


Project URL significa la dirección mediante la que se accederá desde un navegador al sitio web que estamos creando


5) Hare otro tutorial para usar frameworks, en este caso no debes elegir ninguno simplemente clic en Terminar



6) Finalmente tenemos ésto, nuestra carpeta de proyecto y un archivo index.php que se crea por defecto.





7) Crear el archivo config.php


Clic derecho a Source Folder -> Nuevo -> PHP File











8) Le damos el nombre de config y aceptamos




9) Nos debe quedar algo parecido a esto, OJO olvide cerrar la carpeta llamada TiendaVirtual (es un proyecto que posteriormente estaré compartiento con ustedes), nuestro proyecto en este caso se llama "SeCayoElSistema_mysqli" y es en el que trabajaremos por ahora




10) Código del archivo config.php

Este archivo nos servirá para no declarar otra vez las variables de conexión a la base de datos.

Recomiendo realizar comentarios para mantener la posibilidad de que alguien que revise el código pueda entenderlo.
Incluso si tu lo ves después de mucho tiempo olvidas donde esta tal o cual parte.




Código "config.php"

<?php

/*
 * Archivo de configuración de la conexion a la BD
 * * $server : nombre del servidor de la base de datos
 * * $username : nombre del usuario de la base de datos
 * * $password : password del usuario de la base de datos
 * * $databas_name : nombre de la base de datos
 */

$server = 'localhost';
$username = 'root';
$password = '123';
$database_name = 'secayoelsistema';

Ejemplos de desarrollo web con estándares ( php y mysqli )

Como todos sabemos uno de los principales problemas de los programadores es la falta de orden al codificar en cualquier lenguaje y mucho más en la programación web.

Mediante esta secuencia de aportes trataré de compartir con ustedes la sintaxis del MYSQLI (predecesor de mysql) al momento de realizar la interacción con la BD desde php.


Creación de un proyecto php con NETBEANS


Consultar y Mostrar datos de una BD (mysql / mysqli)

11 oct 2011

Mantener actualizado el antivirus NOD32

A quien no le ha pasado que luego de un tiempo de tener instalado el antivirus, muestra el mensaje de error y el ícono se pone de color rojo, molesto verdad?...



Aquí les presento la solución a sus problemas... MINODLOGIN

¿Qué es minodlogin?
Es una aplicación que se ejecuta cuando inicia windows, su función es la de buscar claves para nuestro antivirus e instalarlas, este proceso se realiza a diario, si un día caduca alguna clave pues este programa vuelve a buscar otra y otra... asi mantener nuestro antivirus siempre actualizado
Es necesario tener la máquina virtual de java instalada para que el programa se ejecute

Ahora los links del minodlogin
Opcion 1
Opcion 2

La instalación es realmente sencilla, pasaré a explicar algunos puntos que deben tener en cuenta...

1) Bloqueo de la página del minodlogin
Existe la posibilidad que nuestro antivirus bloquee alguna de las páginas de descarga del minodlogin, para ésto simplemente desactivamos por un momento la Protección del tráfico de Internet en el antivirus, de la siguiente manera:

Paso 1. Ingresar al antivirus y elegir la pestaña de Configuración
Paso 2. Seleccionar la primera opción Protección antivirus y antiespía
Paso 3:   Desactivar momentáneamente la protección de tráfico de internet

2) Otro problema que puede surgir al usar el minodlogin es que el antivirus lo reconozca como virus y no lo deje trabajar... para ello sólo tenemos que hacer lo siguiente

a) Ingresar al antivirus -> Pestaña Configuración
b) Elegir Muestra las opciones avanzadas de configuración

c) En la pestaña de la izquierda elegir Exclusiones
d) En la parte derecha damos clic en Agregar y buscamos la ruta C:\Archivos de programa\ESET\MiNODLogin (ruta donde se encuentra instalado el minodlogin por defecto)


 Y listo, no deberían tener problemas para actualizar su antivirus... cualquier duda comenten.

29 jul 2011

Configurar PES6J para jugar pes6 online. Corregir error se perdio la conexion al servidor.

Bueno después de sufrir un poco en configurar mi pes6 con pes6j para jugar online les cuento como logre que no aparezca el mensaje "Se perdio la conexion con el servidor" y al fin poder jugar al pes6 en linea mediante el servidor de pes6j.net

Requerimientos.


1) PES6 Limpio (no importa si es original o no).
*Debe estar limpio sin ningun parche. OJO: Esto es importante.
Si tenemos datos guardados en la carpeta /Mis Documentos/KONAMI ... /folder1, recomiendo que guardes los archivos en una carpeta diferente y deja vacía la carpeta folder1 (cuando entres al pes6 el archivo OPTIONFILE se creará como si fuera la primera vez o sea con los datos originales de juego, raul, guti, beckham en el madrid, ronaldinho en el barza, etc,etc.... pero no te preocupes...!! cuando juegues online todos los traspasos y habilidades de los jugadores serán configurados por el servidor pes6j.net o sea CR7 en el Madrid, El Kun en el City, etc,etc)
*El kitserver no deberia generar problemas. Si quieres lo mantienes activo.

2) Descargar la aplicación que conecta el servidor pes6j con nuestra pc (parecido a Hamachi, goalserver y otras aplicaciones que esta vez no seran necesarias)
http://www.megaupload.com/?d=J5EQRSTK
No recuerdo de donde lo saque pero es una herramienta hecha en pesexpertos.com... supongo.

3) Tener una cuenta en pes6j.net, creala cliqueando aqui

4) Reemplazar el archivo PES6.exe que por defecto esta en la ruta
C:\Archivos de programa\KONAMI\Pro Evolution Soccer 6
descarguen el nuevo archivo PES6.exe de aquí http://www.mediafire.com/?ntr5obqnznz85cs

En la pagina pes6j.net y en otros tutoriales encontre el link con los archivos PES6.exe y 0_text.afs
considero que muchas personas tienen problemas para bajarlo pues pesa 325mb, es por esto que sólo subo el archivo PES6.exe, el otro archivo supongo que es para actualizar los escudos. teoricamente no deberian tener problemas si juegan con los escudos anteriores. Por si alguien quiere bajarse los 325mb puede hacerlo desde aquí http://www.megaupload.com/?d=6NVN04D1

Ahora comencemos con lo que deberiamos hacer para que funcione el modo online.

A>Entren a la pagina http://www.pes6j.net registrense, logueense e ingresen al foro (Forum), dejar la pagina ahi, no cerrar el navegador.

B>Ejecutar el archivo "Cliente PE Para PES6J.exe" que se encuentra en la carpeta
Herramientas PesExpertos\Cliente PE Para PES6J (es la aplicacion que descargamos en la parte 2)

Debería mostrarse lo siguiente:
Si no tienes este resultado, quizas debas desactivar tu antivirus y el firewall de windows.
Si te aparece algun mensaje sobre permisos para el PES6 donde te da 2 opciones bloquear y desbloquear obviamente eliges desbloquear.

Solo queda ingresar al PES6 y elegir la opcion de RED o Network (Si tienen la version en ingles)
-Al inicio les pide una clave, escriben cualquier cosa e ingresan.
-Crean un jugador al que le pondran el nombre que ustedes quieran eligiendo uno de las 3 recuadros en blanco que aparecen, supongo que se pueden crear 3,
OJO, creo que luego no se le puede cambiar de nombre. Mediante este jugador podran ver sus estadisticas, en que nivel estan, partidos ganados, perdidos, etc.

Y lo demás ya lo ven por su cuenta, elegir servidor, elegir su ubicacion (sudamerica, europa, etc), buscar salones creados o crear uno propio, etc etc etc.

Espero que les sirva y comenten si tienen algun problema.

14 jun 2011

Como desactivar el deep freeze (descongelar) sin tener la contraseña

deep freeze iconoComo todos sabemos el deep freeze es un software que mantiene congelada la pc, esto implica que mientras este activo todos los cambios que hagamos no se guardarán luego de reiniciar.

homero pc olvidar clave forgot password



Para realizar cambios necesitamos desactivarlo, ésto sólo se logra abriendo el programa (shift+doble click en el icono del deep freeze al lado del reloj) e insertando la clave pero... aqui viene el problema...


4 ene 2011

Recuperar icono original de Internet Explorer en el escritorio

Con éstos pasos lograremos restaurar el icono original de internet explorer...
”Diferencia
¿Para que?, ¿Cuál es la diferencia?

El original tiene las opciones de configuracion del navegador, pagina de inicio, historial, etc, el acceso directo... NO

Si no puedes restaurar el icono mediante propiedades de pantalla, en el boton de personalizar escritorio...
así:

”propiedades

El problema está cuando no tenemos la opcion  de Internet Explorer para activar o desactivar (generalmente en windows xp sp3), entonces vamos a tener que aplicar una solucion alternativa...

25 sept 2010

Algunos consejos para mantener tu pc sin virus

En realidad lo siguiente es un recuento de todo lo que pude sacar de otras páginas en donde se discuten la limpieza de virus informáticos tales como malware, trojanos, adware, spyware, starwar, avatar, voldemort, la nada que lo destruye todo,etc.

Seguramente a las personas que usan su PC para cosas normales  (en otras palabras para hacer cosas sin sentido y perder el tiempo) no les interese demasiado las denominaciones que tienen, les doy la razón, no tiene porque interesarles... la finalidad es simplemente que no estén, que no te cierren el Pro Evolution Soccer justo cuando estas jugando la final de la liga master y estas ganando 3 a 0, que cuando dejaste cargar un video 2 días para que lo puedas ver pues tu conexion es mas mala que Hitler y Bush juntos, salga la famosa ventanita... 

no enviar voldemort harry potter
Donde tienes que razonar 20 minutos para darle clic en "No enviar" y que se cierre el programa que estás usando, con ésto crecio la demanda de teclados (keyboards) ya que es el más propenso a soportar el desfogue de la persona que lo tiene enfrente...

Ya dejando de lado la introducción iremos a lo que realmente les interesa...


20 sept 2010

Plan de festejos por la primera entrada en el blog

"Separa tu cita con anticipación
porque sólo asistirán a éste magno evento
aquellos que posean gran persuasión
en este momento no se paga por sentimiento... (o tal ves un poco)"

Mientras espero la venida del señor... de aquél obeso que quita el candado de la bodega de enfrente, trataré de inaugurar, como dicen los "grandes" (si cabe el término), éste espacio de 2 metros cuadrados de código que me lo alquiló un sujeto que espera también la llegada de algun señor, quizás obeso.

Entradas populares