domingo, 8 de febrero de 2015

Artículos Interesantes Sobre PHP

www.samuelaguilera.com


5 errores habituales de desarrolladores web novatos


Cuando empiezas en el mundo del desarrollo web hay cosas que quizás puedes pasar por alto, pensando que no son importantes, pero no sólo lo son sino que además es muy fácil hacer las cosas bien desde el principio. A continuación puedes leer 5 errores típicos del desarrollo web con sus correspondientes soluciones para mejorar tus habilidades si estás empezado.

1. No llames a tus includes loquesea.inc

¿Por qué es una mala idea?: A menos que establezcas en el servidor que los archivos .inc sean tratados como archivos php, serán legibles simplemente cargándolos en el navegador. Algo que no es bueno si estamos hablando de archivos que incluyen el nombre de usuario y la contraseña de la base de datos.
Forma fácil de solucionarlo: Llama a tus includes *.inc.php o ponlos en una carpeta llamada includes, y nombralos como *.php
Forma alternativa de solucionarlo: Pon un archivo llamado .htaccess en el directorio donde están tus archivos .inc, y añade esta línea:
AddHandler application/x-httpd-php .inc

2. No des por hecho que como tu web es pequeña, no puede ser atacada por los crackers

¿Por qué es una mala idea?: Aunque ser atacado por crackers sería fruto de una cojunción unusual de eventos, para un sitio web es inevitable. Los bots existen con el único propósito de crackear sitios web para poder añadir redirecciones a malware o spam a la web.
Una vez construí una web  con ruby, simplemente una prueba para ver como funcionaba todo. Tenía un formulario de comentarios. No me preocupé de sanear la entrada, ya que no enlacé a esta web desde ningún sitio. Después de una semana había alrededor de 4000 comentarios, todos enlazando a spam. Afortunadamente no permití javascript en los comentarios, así que no había ninguna redirección maligna ni nada así, pero el tema está claro. Tu web será atacada.
Como solucionarlo: Lee acerca de los ataques por inyección de SQL o Cross Site Scripting (XSS). Usa la función de PHP mysql_real_escape_string para sanear todo lo que vayas a meter en la base de datos. No permitas etiquetas html en los datos que introduzcan tus usuarios. Intenta reventar tu web tú mismo.

3. No te limites a incluir aleatoriamente código de tutoriales en tu web

¿Por qué es una mala idea?: He visto sitios web que enlazan a 3 ó 4 frameworks javascript diferentes, a menudo para permitir animaciones bonitas o cosas así. Esto está bien, pero hay un montón de coincidencias entre ellos (no veo porque necesitas más de uno). Estos frameworks son bastante grandes, descargar incluso uno sólo para proporcionar una función trivial es cuestionable, pero enlazar a 3 ó 4 es una locura.
También está la regla de oro de la programación: si no entiendes lo que hace el código, ¡probablemente no deberías estar usándolo! (Nota: A menos que sea Perl – ¡Nadie lo entiende!).
Como solucionarlo: Aprende a usar javascript adecuadamente, o simplemente usa un único framework.

4. No ignores el diseño semántico

¿Por qué es una mala idea?: Te hace el trabajo más difícil. Sinceramente.
Usar un diseño semántico significa que las cabeceras están etiquetadas usando las etiquetas H1, H2, H3, los párrafos usando p, etc, etc… No metas estilos en línea en tus cabeceras con font size y font weight para hacerlas más grandes y negritas.
Usa clases sensatamente. No pongas el título en rojo en una clase llamada “títulorojo” (cuando rediseñes la web eso no tendrá sentido). Llámala “subtítulo” o algo que describa lo que es, no lo que hace.
Empezando desde lo más básico, considera usar tecnologías como los microformatos para ayudarte (estos describen la información de tu sitio por completo).
Como solucionarlo: Separa siempre el contenido de la presentación. Separa las hojas de estilo CSS de las páginas HTML. Piensa acerca del propósito para el que sirve cada elemento de la página, etiquetalo apropiadamente y entonces usa CSS para darle formato.

5. No reinventes la rueda

Comprueba lo que existe antes de empezar. Si quieres hacer un sitio web, comprueba las herramientas existentes: WordPress, Joomla, Drupal, etc. Todos te llevan ventaja, podría tener más sentido tomar como base su código y diseñar a partir de ahí.
Si estás usando ajax, usa un entorno de desarrollo (framework) javascript, ya que los nuevos navegadores vienen con soporte para distintas funciones. Si usas un framework bastará con actualizarlo en lugar de tener que lidiar tú con estos problemas.
Por supuesto, si estás empezando algo totalmente nuevo, una hoja en blanco es a menudo el sitio para comenzar, pero no pierdas tiempo en trabajo que no hace falta hacer.

Conclusión

Hasta aquí esta cinco cosas que puedes hacer para mejorar tus desarrollos web si estás empezando en este mundillo o has olvidado tus inicios. ¿Se os ocurre alguna cosa más?, decidlo en los comentarios.

miércoles, 4 de febrero de 2015

Diagrama Modelos, Vistas y Controladores (Model, Views & Controllers)

Muchos desarrolladores crean sus propios diagramas según lo que ellos piensan es el mejor método para desarrollar, yo he creado este diagrama según lo que se del MVC. En efecto, incluiría más cosas o haría sub-categorías en la parte del controlador como ser: diseño (ejemplo: CSS), seguridad (ejemplo: donde se realiza la conexión a la base de datos) y recursos compartidos.


www.desarrolloweb.com

martes, 3 de febrero de 2015

Crear Sitio con DreamWeaver CS6 y WampServer (localhost)

En este caso yo estoy usando el puerto 8080, por eso pongo “localhost:8080”, pero pueden cambiarlo según el puerto que estén usando.
















Crear Sitio con DreamWeaver CS3 y WampServer (localhost)

En este caso yo estoy usando el puerto 8080, por eso pongo “localhost:8080”, pero pueden cambiarlo según el puerto que estén usando.














jueves, 18 de diciembre de 2014

Guardar y Mostrar Imagen usando Base64 con MySQL y PHP

Lo que necesitaras es lo siguiente:


  1. En tu Base de Datos crearas un campo dentro de tu tabla, para guardar tu imagen. Este deberá ser del tipo LONGBLOB.
  2. Crearas las siguientes paginas con formato .php:


    • Conexion.php
    • Ingresar Imagen.php
    • Guardar imagen.php
    • Mostrar Imagen.php


Conexion.php

<?php
$server = "localhost";//nombre del servidor
$usuario = "root";//nombre del usuario
$pwd = "";//contraseña de mysql
$db = "guardar_imagen";//nombre de la base de datos

$conexion = mysql_connect($server,$usuario,$pwd,$db);
$link = $conexion;

if (!$conexion)
{
die("No hay conexi&oacute;n con el servidor, disculpe las molestias.");
}
mysql_select_db($db);
?>

Ingresar Imagin.php

<form action="Guardar imagen.php" method="POST" enctype="multipart/form-data" style="padding:5px;">
      Imagen: <input type="file" name="foto" />
   
     <div style="margin-left: 70px;"></br><input value="Subir Imagen" type="submit" /></div>
</form>

Guardar imagen.php

<?php
include("conexion.php");
?>

<?php
     $foto_name= $_FILES["foto"]["name"];
     $foto_size= $_FILES["foto"]["size"];
     $foto_type= $_FILES["foto"]["type"];
     $foto_temporal= $_FILES["foto"]["tmp_name"];

echo $foto_size;
# Limitamos los formatos de imagen admitidos a: png, jpg y gif
     if ($foto_type=="image/x-png" OR $foto_type=="image/png")
     {
      $extension="image/png";
     }
     if ($foto_type=="image/pjpeg" OR $foto_type=="image/jpeg")
     {
      $extension="image/jpeg";
     }
     if ($foto_type=="image/gif" OR $foto_type=="image/gif")
     {
      $extension="image/gif";
     }

/*Reconversion de la imagen para meter en la tabla abrimos el fichero temporal en modo lectura "r" y binaria "b"*/
      $f1= fopen($foto_temporal,"rb");

# Leemos el fichero completo limitando la lectura al tamaño del fichero
      $foto_reconvertida = fread($f1, $foto_size);

/* Anteponemos "\" a las comillas que pudiera contener el fichero para evitar que sean interpretadas como final de cadena.*/
 $foto_reconvertida = base64_encode($foto_reconvertida);

//cerrar el fichero temporal
fclose($f1);


/* QUERY O CONSULTA PARA GUARDAR LA IMAGEN A LA BASE DE DATOS */
$query="INSERT INTO imagen (Foto, Nombre, Tamano, Formato) values('".$foto_reconvertida."', '".$foto_name."', '".$foto_size."', '".$foto_type."')";
$result =mysql_query($query);
?>
<form action="Mostrar Imagen.php" method="POST" target="" style="padding:5px;">
       ID:<br /> <input name="ID" type="text" size="32" maxlength="20"/><br /><br />
       <div style="margin-left: 30px;" ><input name="" value="Ver Imagen" type="submit" /></div>
</form>

Mostrar Imagen.php

<?php
include("conexion.php");
?>

<?php
$id=$_POST["ID"];

# Buscamos la imagen a mostrar
$query = ("SELECT * FROM `imagen` WHERE ID='".$id."'");
$result = mysql_query($query);

# Mostramos la imagen
while ($row=mysql_fetch_assoc($result)){
$id=$row['ID'];
$nombre=$row['Nombre'];
$tamano=$row['Tamano'];
$formato=$row['Formato'];

header("Content-type:".$row["Formato"]);
$foto= $row['Foto'];

//Decodificamos $Base64Img codificada en base64.
$Base64Img = base64_decode($foto);
//escribimos la información obtenida en un archivo llamado
//unodepiera.png para que se cree la imagen correctamente
file_put_contents('unodepiera.png', $Base64Img);  

echo"
<div style='width: 790px;'>
<table>
<tr>
<td><strong>ID:</strong>  $id</td>
</tr>
<tr>
<td><strong>Imagen:</strong> <img src='unodepiera.png' alt='unodepiera' width='100' heigth='100'/></td>
</tr>
<tr>
<td><strong>Nombre:</strong> $nombre</td>
</tr>
<tr>
<td><strong>Tamano:</strong> $tamano</td>
</tr>
<tr>
<td><strong>Formato:</strong> $formato</td>
</tr>
</table>
</div>
";
}
?>

<form action="Ingresar imagen.php" />
     <div style="margin-left: 70px;"></br><input value="Subir Otra Imagen" type="submit" /></div>
</form>

<form action="" method="POST" target="" style="padding:5px;">
       ID:<br /> <input name="ID" type="text" size="32" maxlength="20"/><br /><br />
       <div style="margin-left: 30px;" ><input name="" value="Ver Imagen" type="submit" /></div>
</form>


jueves, 25 de septiembre de 2014

Mejorar la Apariencia de los Programas en Visual Basic .Net

Mejorar la Apariencia de las Aplicaciones en Visual Basic .Net
Mejorar la Apariencia de los Formularios en Visual Basic .Net
Mejorar la Apariencia de los Programas en Visual Basic 2010

DotNetBar



Sigue este LINK