Palabras Clave Programacion PHP Hosting Peru


   Hosting peru – Cookies

Las cookies son contenedores de información que tienen la misma función que las variables, sólo que estas quedan guardadas en la computadora del usuario por lo que pueden utilizarse en cualquier momento.

Las cookies se componen de una estructura básica que es nombre, valor y tiempo.

Para que entiendas su funcionamiento, vamos a hacer un sencillo ejemplo en donde crearemos una cookie llamada “prueba”:

<setcookie>

En este ejemplo se ha creado una cookie llamada “prueba” con el valor “probando” y que tendrá una duración de 1 hora. Ten en cuenta que el tiempo se pone en segundos.

Para obtener el valor de la cookie se usa una de las 3 formas que se muestran a continuación:

<Para>

De las 3 formas la recomendada es $_COOKIE[prueba], ya que la segunda fue usada en versiones anteriores de PHP como PHP 3, y la última puede ser insegura ya que si alguien conoce el nombre de la cookie la puede poner mediante el navegador de la siguiente forma:

http://nombre.webcindario.com/index.php?prueba=probando

También, esta forma será obsoleta con la llegada de PHP 6 que sólo permitirá el uso de variables seleccionandolas por su tipo ($_GET, $_POST, $_COOKIE, etc).

Se puede eliminar una cookie sólo indicando su nombre:

<setcookie>

Nota: Las cookies sólo pueden ser leídas y eliminadas en la web donde fueron creadas.

Si creas una cookie aquí:

http://nombre.webcindario.com

Podrás leer la cookie en todas las carpetas que se encuentren ahí:

http://nombre.webcindario.com/carpeta1/carpeta2/carpeta3

Pero si has creado una cookie en una carpeta:

http://nombre.webcindario.com/carpeta1

No podrás leerla en esta dirección:

http://nombre.webcindario.com

Para poder crear y eliminar cookies, no deberá haber ningún código de salida antes del código de la cookie, sino te provocará el error Cannot add headers.

El código de salida se refiere a código HTML y códigos en PHP como echo e incluso los espacios en blanco (excepto saltos de línea).

Ejemplo de forma incorrecta:

<html>
<head>
<title>Título</title>
</head>
<body>
Contenido
<echo>
</body>
</html>

Ejemplo de forma correcta:

<setcookie>
<html>
<head>
<title>Título</title>
</head>
<body>
Contenido
</body>
</html>

Tag: , , , ,

Enviado Por admin | Octubre 14, 2009 | En Programacion PHP | No hay Comentarios


   Manejo de archivos con PHP

PHP es uno de los lenguajes del lado del servidor más completos y con mayor número de funciones útiles. En este caso, estudiaremos las funciones que permiten trabajar con archivos, y en algunos casos con directorios.

basename()

Esta función devuelve la ubicación base de algún archivo. Es de utilidad cuando nos interesa eliminar la ruta física de algún archivo y devolver sólo el nombre de dicho archivo y su extensión:

<ruta>

Como ves, la función basename devuelve el archivo resultante de la eliminación de la ruta física. Su utilización es demasiado básica y no necesita de ninguna explicación amplia, aunque su utilidad también es un poco reducida.

chmod()

Increíblemente el PHP permite cambiar los permisos de algún archivo o directorio utilizando esta función. Obviamente está restringida y su aplicación no es más que un intento por cambiar el valor chmod de algún archivo o carpeta, pero para que verdaderamente funcione se requiere de soporte en el servidor.

La única particularidad de esta función es que para otorgar permisos se debe anteponer un 0 al valor del permiso. Por ejemplo, para 755 se debe escribir 0755.

La sintaxis de la función es:

<chmod>

En donde permiso, como ya mencionamos, debe ser el valor chmod que deseamos otorgar, con un 0 anteponiéndolo.

Para dar a archivo.txt permisos 777 debemos utilizar la siguiente sintaxis:

<chmod>

copy()

Como su nombre lo indica, esta función permite copiar archivos dentro del servidor. Muy útil si deseamos hacer un back-up online de modo que tengamos los archivos antiguos dentro del servidor evitando el peso de descargarlos todos. Aún así, las aplicaciones son muchísimas.

<copy>

copy() devuelve true si se ejecutó el proceso correctamente y false si no se logró la copia.
Podemos aprovechar esta capacidad para mostrar mensajes de error según suceda:

<if>

Lo anterior mostraría un mensaje de error si no se logra la copia del archivo archivo.txt a backup1.txt.

dirname()

Devuelve el nombre del directorio de una ruta:

<ruta>

diskfreespace()

Esta extraña función devuelve el número de bytes de espacio libre que hay en algún directorio. Para verificar, por ejemplo, el espacio libre disponible en el directorio raíz de un sitio web se utiliza la sintaxis:

<espacio>

readfile()

Lee un archivo completo y devuelve al final el número de bytes leídos. Si no se logra abrir la conexión con el archivo devuelve error.

<archivo>

Esta es una forma muy fácil de leer archivos aunque el problema está en que devuelve el número de bytes leídos, cosa que nadie desearía, para ello se utiliza más frecuentemente la función file() que devuelve un array con todas las líneas del archivo. Más adelante veremos cómo utilizarla.

fopen(), fclose(), fwrite(), fread()

fopen() crea una conexión a algún archivo, especificando el tipo de tratamiento que se le dará al archivo, es decir, si será de lectura, escritura o ambos. Por defecto, se puede leer un archivo pero para lograr escribir en él se requieren permisos chmod 755.

fclose() cierra la conexión para liberar memoria.

La sintaxis de fopen es:

$archivo = fopen(“archivo.txt”,permiso);

permiso equivale a una letra identificadora del tipo de tratamiento que le daremos al archivo. Existen tres básicamente: r (solo lectura), w (escritura) y a (ambos). En el caso de escritura el cursor se ubica al inicio del archivo por lo que la escritura afecta todo el contenido del mismo, mientras que a ubica el cursor al final del archivo para escribir nuevo contenido sin eliminar el existente.
Veremos un ejemplo de escritura en un archivo.

<fp>

Ahora hemos introducido la función fwrite() que permite la escritura en un archivo, según la conexión creada.
La sintaxis es:

fwrite($conexion, textoaescribir);

Otra de las muchas formas de leer archivos es utilizar la función fread aunque ésta está un poco limitada, pues sólo lee un archivo hasta determinado número de bytes, para evitar esto se puede utilizar la función file_size para establecer el número de bytes totales y así leer todo el archivo. Más adelante encontrarás información sobre esta función.

<fp>

file()

Esta función toma el contenido total de cualquier archivo y lo guarda línea por línea en un array. Es la más útil de todas las formas de lectura de archivos pues permite crear scripts complejos que trabajen en líneas… por ejemplo un rotador de banners que tenga en cada línea un banner diferente para rotar. Pero para ello es necesario conocer algunas funciones de cadena, cosa que no se tratará en este artículo.
la sintaxis de file no tiene problemas:

$archivo = file(“archivo.txt”);

Con lo anterior, $archivo ya es un array con todas las líneas de archivo.txt.
Pero para poder recorrer cada línea de archivo.txt es necesario crear un bucle. ¿Pero cómo sabrá el bucle en donde parar? Para ello haremos uso de la función count() que devuelve la cantidad de elementos de un array.

Como $archivo es un array con cada línea de archivo.txt esto quiere decir que cada elemento en el array equivale en una línea, por ello se puede usar count() facilmente.
Pero para aclararlo veamos un ejemplo:

<?
$archivo = file(“archivo.txt”); //creamos el array con las lineas del archivo
$lineas = count($archivo); //contamos los elementos del array, es decir el total de lineas
for($i=0; $i <lineas>

Como ves es muy sencillo. Primero abrimos el archivo y lo convertimos en vector (array). Posteriormente guardamos su número total de elementos (que equivale al número de líneas) en la variable $lineas.
Luego un bucle se encarga de recorrer cada línea y escribirla en pantalla.

La ventaja de este método es que podemos leer cualquier línea fácilmente, pues $archivo es un array. Si deseamos leer la primera línea podemos utilizar $archivo[0] y así sucesivamente.

file_exists()

Muy útil función que verifica la existencia de un archivo, devolviendo true si verdaderamente existe y false si no.
Veamos un ejemplo:

<archivo>

Hemos hecho uso de una estructura condicional para mostrar un mensaje de acuerdo a la existencia o no del archivo. Como PHP puede crear conexiones a servidores externos, es posible verificar la existencia de una URL con file_exists() antes de dirigir al usuario a dicha dirección.

fileatime()

Devuelve la fecha del último acceso a un archivo, o false en caso de error.

<echo>

Escribiría en pantalla la última fecha de acceso a archivo.txt

filesize()

Devuelve el número total de bytes que ocupa cualquier archivo. Es posible modificar estos valores mediante divisiones para convertirlo a megabytes, kilobytes, etc.

<tam>

El anterior código devolvería el tamaño total en bytes que está ocupando imagen.gif

is…

Las funciones is permiten conocer algunas características de un archivo o directorio. Todas poseen la misma sintaxis por lo que sólo veremos para qué sirve cada una.

La sintaxis base es:

<funcion>

Donde funcion es alguna de las siguientes:

is_dir: Devuelve true si $archivo es un directorio
is_executable: Devuelve true si $archivo es ejecutable
is_file: Devuelve true si $archivo es un archivo y no directorio
is_readable: Devuelve true si se puede leer $archivo
is_writeable: Devuelve true si se puede escribir en $archivo

mkdir()

Trata de crear una carpeta en el servidor:

mkdir(“/ruta/al/nuevo/directorio”,permiso);

El primer parámetro debe ser la ruta al nuevo directorio, es decir, al que se trata de crear y permiso es el permiso chmod en formato octal, es decir, con un 0 antes. El permiso permite establecer el chmod que deseamos al momento de crear el directorio. Funciona igual que chmod().

rename()

Trata de renombrar algún archivo.

<rename>

Con eso terminamos la primera parte de este artículo sobre el tratamiento de directorios y archivos. El tema de próximos artículos será cómo aplicar realmente estas funciones, para lo cual crearemos un script que funcionará como administrador de archivos vía online. Tipo FTP pero más sencillo.

Una nota de importancia es que en casi todos los ejemplos se ha utilizado como archivo el nombre archivo.txt pero en realidad puede ser cualquiera.

Tag: , , , ,

Enviado Por admin | Octubre 14, 2009 | En Programacion PHP | No hay Comentarios


   Validar un email

La mejor forma de validar un email es usando expresiones regulares, estas nos permitirán indicar de que forma está compuesta una dirección de correo y se intentará buscar un texto que coincida con lo que queremos. Para este ejemplo usaremos preg_match().

<email>

El código a primera vista se ve muy complejo pero ahora lo desglosaremos para poder analizarlo. Cada parte coloreada de la expresión regular será descrita a continuación.

^\w+([.-]\w+)*@\w+([.-]\w+)*\.\w{2,4}$

Nos dice que el correo debe comenzar (^) con uno o más caractéres alfanuméricos (\w+).

^\w+([.-]\w+)*@\w+([.-]\w+)*\.\w{2,4}$

Después del caractér alfanumérico puede o no (*) haber un punto o guión medio seguido de uno o más caractéres alfanuméricos (([.-]\w+)*).

^\w+([.-]\w+)*@\w+([.-]\w+)*\.\w{2,4}$

Después de lo anterior simplemente debe haber una arroba (@).

^\w+([.-]\w+)*@\w+([.-]\w+)*\.\w{2,4}$

En esta parte usaremos las mismas condiciones para el nombre, pero esta vez se usarán para el servidor de correo (hotmail, yahoo, etc). Algunos correos pueden indicar el país antes del servidor de correo (mx.servidor).

^\w+([.-]\w+)*@\w+([.-]\w+)*\.\w{2,4}$

Para terminar, nos dice que debe haber un punto seguido de una cadena de 2 a 4 caractéres alfanuméricos (\.\w{2,4}) sin permitir ningún caractér más ($) lo que nos indica el dominio del servidor de correo.

El uso de expresiones regulares es complicado al principio y es conveniente que tu mismo vayas modificando una expresión que ya está funcionando para que veas como se va comportando. Para más información sobre expresiones regulares puedes consultar la sección de Funciones de Expresiones Regulares (compatibles con PERL) en el manual de http://www.php.net.

Tag: , , , ,

Enviado Por admin | Octubre 14, 2009 | En Programacion PHP | No hay Comentarios


   Transformar una URL en un enlace

En este caso queremos encontrar cualquier URL en un texto y transformarla automáticamente en un enlace, para esto haremos uso de la función preg_replace().

La función trabaja de la siguiente forma:

preg_replace(Busqueda,Reemplazo,Texto) ;

Este es el código:

</a>

Se está buscando dentro del texto una cadena de texto que comience con http://, que puede contener cualquier caractér (letras, números, guiones, etc.) excepto espacios en blanco ([^\s]+), al haber un espacio en blanco nos está indicando que aquí termina la URL.

En la parte de Reemplazo usamos $0 para obtener la URL encontrada y meterla en un enlace usando HTML.

Tag: , , , ,

Enviado Por admin | Octubre 14, 2009 | En Programacion PHP | No hay Comentarios


   Codigo tipo BBCode

Si tenemos en nuestra página alguna sección donde los visitantes pueden escribir sus comentarios sobre nuestra página o cualquier cosa que utilice un formulario, puede que queramos dejar que el visitante le de formato al texto (negrita, cursiva, darle color, etc.) pero no deseamos dejar que el usuario utilice HTML ya que puede ser un riesgo de seguridad y nuestra página quedaría vulnerable a ataques por personas maliciosas. Para esto hace tiempo se creo un código comúnmente conocido como BBCode y que permite darle formato a nuestro texto sin los riesgos de utilizar directamente HTML.

Como en el ejemplo anterior volveremos a usar preg_replace() aunque para otros ejemplos con el uso de str_replace() tendremos más que suficiente. Mostraré varios ejemplos que puedes ir uniendo según lo que quieras.

Texto en negrita

Para poner un texto en negrita podemos hacer uso de str_replace():

<?
$texto = ‘Quiero este texto en negrita.’ ;
$texto = str_replace(array(‘‘,’‘),array(‘‘,’‘),$texto) ;
echo $texto ;

El ejemplo anterior nos daría como resultado esto:

Quiero este texto en negrita.

También podemos usar preg_replace():

Nota: Los mismo creadores de PHP recomiendan str_replace() por encima de preg_replace() en cuestión de rendimiento, ya que el primero hace una sustitución simple y directa, y el segundo usa el motor de expresiones regulares lo cuál ocasiona una carga ligeramente mayor, así que en la medida de lo posible es recomendable primero buscar una solución mediante str_replace() y posteriormente con preg_replace().

Texto a color

Para un texto a color podemos hacer una combinación de preg_replace() con str_replace():

<?
$texto = ‘Quiero este texto en color naranja.’ ;
$texto = preg_replace(‘/\[color=(#?[a-z0-9]+)\]/i’,'<span>’,$texto) ;
$texto = str_replace(‘[/color]‘,’</span>’,$texto) ;
echo $texto ;

Este es el resultado:

Quiero este texto en color naranja.

Podemos usar sólo preg_replace() aunque debemos hacer uso del modificador “U” si indicamos dos o más colores diferentes:

</span>

El resultado sería este:

Quiero este texto en color naranja y este en color verde.

Si no usas “U” en la expresión, la función no se detendría en el primer [ /color] y se iría hasta el último encontrado en el texto, dando como resultado esto:

Quiero este texto en color naranja [ /color] y [ color=#00c000]este en color verde.

Tag: , , , ,

Enviado Por admin | Octubre 14, 2009 | En Programacion PHP | No hay Comentarios


   Noticias con Paginacion php y css

Crear tabla de noticias :
*************************
CREATE TABLE IF NOT EXISTS `noticias` (
`idnot` int(10) unsigned zerofill NOT NULL auto_increment,
`tema` varchar(100) collate latin1_general_ci default NULL,
`autor` varchar(100) collate latin1_general_ci default NULL,
`cont` text collate latin1_general_ci,
`imagen` varchar(150) collate latin1_general_ci default NULL,
`fpub` datetime default NULL,
PRIMARY KEY (`idnot`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=1;

Crear los estilos : (colocar entre <head> </head>)
*******************
.link a, .link{color:#FFF; font-weight:bold}
.link a:visited{color:#FFF;}
.link a:hover{color:#FFF;}

#pages {
clear: both;
text-align: center;
font-size:9px;
}
#pages li {
display: inline;
padding: 3px 6px 4px;
}
#pages li.page {
border: 1px solid #F05BF2;
margin-right:1px;
}
#pages li.current {
background:#F05BF2;
color:#FFF;
}

Crear archivo Php :
*******************

<?
$rowCount = 6; // Número de registros por página.
$pagesToShow = 2; // Número de páginas a mostrar adelante o atrás de la actual en la paginación.

$SQL = mysql_query(“SELECT COUNT(*) FROM noticias”,$conexion);
$ROW = mysql_fetch_array($SQL);

// Obtenemos el número de registros en la tabla.
$notCount = $ROW[0];

// El número de páginas que podemos mostrar.
$pagesCount = (int)ceil($notCount / $rowCount);

// Obtenemos el índice de la página que nos piden mostrar y nos aseguramos que esté entre 0 y $pagesCount.
$pageIndex = isset($_REQUEST['pageIndex']) ? (int)$_REQUEST['pageIndex'] : 0;
if ($pageIndex >= $pagesCount)
$pageIndex = $pagesCount – 1;

// Obtenemos unicamente los registros de la página actual.
$offset = $pageIndex * $rowCount;
?>

<html>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>paginacion en php</title>
</head>

<body>
<?
$SQL = mysql_query(“SELECT * FROM noticias ORDER BY fpub DESC LIMIT $offset, $rowCount”,$conexion);
while($ROW = mysql_fetch_array($SQL)){
echo “<div style=’width:250px;border:#FFF 1px solid;float:left;’>

<b>$ROW[1]</b><br /><br />
$ROW[3]<br /><br />
<center><img src=’images/$ROW[4]‘/></center><br /><br />
<b style=’font-size:10px;’>$ROW[2] <br /> $ROW[5]</b>
</div>”;
}
?>
<div style=”clear:both;”></div>

<ul id=”pages” style=”margin-top:10px;”>
<?php
// Página anterior.
if ($pageIndex > 0) {
?>
<li><a href=”?pageIndex=<?php echo $pageIndex – 1 ?>”>&laquo; Anterior</a></li>
<?php } ?>

<?php
$start = $pageIndex – $pagesToShow;
if ($start < 0)
$start = 0;

$end = $pageIndex + $pagesToShow;
if ($end >= $pagesCount)
$end = $pagesCount – 1;

if ($start > 0) {
for ($i = 0; $i < 2 && $i < $start; ++$i) {
?>
<li><a href=”?pageIndex=<?php echo $i ?>”><?php echo $i + 1 ?></a></li>
<?php
}
}

if ($start > 2) {
?>
<li>…</li>
<?php
}

for ($i = $start; $i <= $end; ++$i) {
if ($pageIndex == $i) {
?>
<li><?php echo $i + 1 ?></li>
<?php
} else {
?>
<li><a href=”?pageIndex=<?php echo $i ?>”><?php echo $i + 1 ?></a></li>
<?php
}
}

if ($end < $pagesCount – 3) {
?>
<li>…</li>
<?php
}

if ($end < $pagesCount – 1) {
for ($i = max($pagesCount – 2, $end + 1); $i < $pagesCount; ++$i) {
?>
<li><a href=”?pageIndex=<?php echo $i ?>”><?php echo $i + 1 ?></a></li>
<?php
}
}

?>

<?php
// Siguiente página
if ($pageIndex < $pagesCount) {
?>
<li><a href=”?pageIndex=<?php echo $pageIndex + 1 ?>”>Siguiente &raquo;</a></li>
<?php } ?>
</ul>
<br />

</body>
</html>

Tag: , , , ,

Enviado Por admin | Octubre 14, 2009 | En Programacion PHP | No hay Comentarios


   20 Tips para ser un mejor Programador

20 Tips para ser un mejor Programador

Ya llevo varios años programando, a nivel web el lenguaje que mas me gusta o al menos el que mas domino es PHP, voy a intentar dar algunos tips que realmente me han servido mucho durante mi aprendizaje.

1. Estudia, estudia y estudia
El estudiar nos permite perfeccionarnos, cuanto mas estudiemos mas oportunidades de programar mejor tendremos, no solamente estoy hablando de universidades, ni tampoco de cursos, hoy por hoy gracias a internet existen infinidad de tutoriales y manuales, sin ir mas lejos el sitio oficial de PHP es realmente muy bueno.

2. Busca antes de preguntar
Esto es un mal común del que quiere aprender a programar, es mas fácil preguntarle a alguien que sepa, pero realmente no tiene que ser así por varias razones, primero por que es algo de muy de vago, luego que cuando alguien nos da la respuesta fácil no aprendemos nada, lo interesante cuando se nos presenta un problema es buscar la solución nosotros mismos, sino damos con la respuesta recién ahí preguntar, este ejercicio realmente es muy beneficio, nos permite preparar nuestra cabeza para solucionar futuros problemas.

3. Busca scripts ya desarrollados
Por lo general podemos encontrar muchas funciones, scripts listos para utilizar, pero lo interesante es estudiarlos, ver como funcionan, de ahí aprendemos si copiamos y pegamos vamos mal.

4. Lee el código fuente libre
Yo muchas veces descargo algunas aplicaciones para ver como están programadas, de verdad que se aprende mucho, a medida que realicemos esta practica cada vez iremos aprendiendo mas, en especial si estas aplicaciones son de uso popular en donde miles de programadores del mundo “meten” mano para mejorarla. Un buen ejemplo de esto es Wordpress.

5. No copies y pegues
Es fácil, entramos a google buscamos una función que sirva para lo estamos necesitando y listo. Pero la realidad es que no siempre lo que descargamos es correcto, y si luego tenemos que solucionar un problema lo mas probable es que no tengamos ni idea por donde empezar. Ni hablar del factor aprendizaje cero que esta practica implica.

6. Buscar el momento para programar
Estas sentado delante de tu ordenador, llaman por teléfono, tu compañero de trabajo o familiar te pregunta algo, realmente es lo mas molesto e incomodo que hay, es difícil concentrarse, es preferible hacer algo mas “Light” antes de programar algo mal y después tener que arreglarlo.

7. Ten tu propia Wiki
Esto lo recomiendo muchísimo, es muy sencillo instalar una Wiki en nuestra pc, simplemente podemos descargar el Easyphp y tener en nuestro ordenar un servidor funcional, y mejor aun si quieres hacer la instalación “a mano”. La wiki es interesante para poder almacenar rutinas que usamos frecuentemente, en mi caso suelo guardar validaciones, etc. Una vez que aprendimos a hacer algo y lo tenemos lo mejor posible es interesante tenerlo a mano para no perder tiempo escribiendo lo mismo una y otra vez.

8. Comenta todo lo que sea necesario
Escribir comentarios en el código suele ser bastante molesto y parecer innecesario, pero comentar las cosas importantes nos puede ahorrar mucho tiempo cuando tengamos que retocar el código meses después.

9. Participa en foros/comunidades
Es interesante para interactuar con otras personas que estén en nuestra misma sintonía, muchas veces ayudaremos nosotros y otra vez nos podrán ayudar. En línea general estas comunidades tienen muy buena onda, y la ayuda mutua es lo que abunda, unas líneas de código pueden ser útiles para muchas personas, de ahí que entre todos se puede perfeccionar. Recuerden respetar el punto 2.

10. Habla con otros programadores
Mensajería instantánea, en un café, por teléfono, etc. Es interesante tener amigos que están en lo mismo, no solamente por el tema de la ayuda mutua, estos grupos suelen ser también de ayuda “emocional” del programador, unos chistes, algún comentario puede ser una inyección de energía para continuar con un problema que no podemos resolver.

11. Tiempo libre para otras cosas
Me encanta programar, pero entendi que no es lo unico en la vida, a veces es bueno una salida, una película, realmente es necesario desenchufarnos.

12. Arma tu bunker
Tener un espacio de trabajo acorde con tus gustos es indispensable para programar, un buen sillón que no dañe nuestra columna, un lindo escritorio que nos permita desparramar CDS, libros, etc. También hay que ser organizado, pero siempre a nuestro gusto, es bueno que sea TU espacio y que nadie meta mano, uno a la larga lo termina sintiendo como un refugio.

13. Tu equipo en condiciones
Otro punto importante, una buena computadora, que no tenga problemas, si es necesario un poco mas de RAM, no hace falta tener una supermáquina para programar con PHP pero si algo que no se este colgando cada 2 seg.

14. Usa herramientas gratuitas
Si no podes pagar ciertas herramientas realmente ni te gastes en bajar las versiones piratas, en PHP no se necesita mucho y realmente no vale la pena estar trucando programas.

15. Organiza tu propia biblioteca de scripts
Relacionado con el punto 7. La wiki es muy buena, pero hay que tenerla organizada, sino encontrar algo puede llevarnos mas tiempo que volverlo a escribir. Yo soy bastante desorganizado, pero con los años aprendí a manejar mi problemita .

16. Se agradecido con los que te ayudan
Si alguien te ayuda, por favor al menos di gracias. Recuerda que las personas que te rodean no son tu soporte técnico (Al menos que les pagues). Si alguien se molesta en responder a tus consultas agradécele, para la próxima esa persona seguirá teniendo buena predisposición.

17. Se humilde
Esencial. Siempre hay alguien que sabe más que uno y mas en este “rubro” en donde hay verdaderos cráneos, Yo hace varios años que programo en PHP y sin embargo siempre aprendo algo nuevo, y en parte eso es lo que me gusta de programar, siempre se puede mejorar.

18. Siempre busca perfeccionarte
Relacionado con el punto anterior. Las tecnologías evolucionan y nosotros debemos hacer lo mismo. Una linda practica cuando tenemos un poco de tiempo libre es tratar de optimizar un código nuestro de unos meses anteriores, si aprendimos cosas nuevas de seguro que podemos hacerlo mejor que antes.

19. Intenta ser eficiente y luego inténtalo de nuevo
Que funcione no quiere decir que este bien. También una de las cosas más lindas de programar: Siempre se puede hacer una función mas eficiente, que consuma menos recursos, no hay que conformarse que arroje los resultados que queremos, probablemente lo podemos hacer mejor.

20. Programa primero lo que menos te gusta
Esto es bastante personal, pero por lo general me da buenos resultados. Cuando me siento a programar algo los primeros minutos son de “ambientación” luego tengo un periodo de concentracion digamos maxima, en ese momento las cosas que parecen o son mas complicadas son cuando mas rápido y mejor salen, luego cuando uno esta mas cansado puede dedicarse a las cosas mas sencillas y rutinarias.

Tag: , , , ,

Enviado Por admin | Octubre 14, 2009 | En Programacion PHP | No hay Comentarios


   Como generar un Thumbnail en PHP utilizando GD

Antes que nada avisar que se requieren las librerías GD para poder realizar los thumbnails. Y en función de la versión de GD, podremos usar una u otra función Primero pegaré el código de una función con la que generaremos directamente un thumbnail de alta calidad.

Código PHP:
function thumbjpeg($imagen,$altura) {
// Lugar donde se guardarán los thumbnails respecto a la carpeta donde está la imagen “grande”.
$dir_thumb = “thumbs/”;
// Prefijo que se añadirá al nombre del thumbnail. Ejemplo: si la imagen grande fuera “imagen1.jpg”,
// el thumbnail se llamaría “tn_imagen1.jpg”
$prefijo_thumb = “tn_”;

// Aquí tendremos el nombre de la imagen.
$nombre=basename($imagen);
// Aquí la ruta especificada para buscar la imagen.
$camino=dirname($imagen).”/”;

// Intentamos crear el directorio de thumbnails, si no existiera previamente.
if (!file_exists($camino.$dir_thumb))
@mkdir ($camino.$dir_thumb, 0777) or die(“No se ha podido crear el directorio “.$camino.$dir_thumb);

// Aquí comprovamos que la imagen que queremos crear no exista previamente
if (!file_exists($camino.$dir_thumb.$prefijo_thumb.$nombre)) {
echo $camino.$dir_thumb.$prefijo_thumb.$nombre.” NO existía
\\n”;
$img = @imagecreatefromjpeg($camino.$nombre) or die(“No se encuentra la imagen $camino$nombre
\\n”);

// miramos el tamaño de la imagen original…
$datos = getimagesize($camino.$nombre) or die(“Problemas con $camino$nombre
\\n”);

// intentamos escalar la imagen original a la medida que nos interesa
$ratio = ($datos[1] / $altura);
$anchura = round($datos[0] / $ratio);

// esta será la nueva imagen reescalada
$thumb = imagecreatetruecolor($anchura,$altura);

// con esta función la reescalamos
imagecopyresampled ($thumb, $img, 0, 0, 0, 0, $anchura, $altura, $datos[0], $datos[1]);

// voilà la salvamos con el nombre y en el lugar que nos interesa.
imagejpeg($thumb,$camino.$dir_thumb.$prefijo_thumb.$nombre);
}
}
Para llamar a la función sencillamente hacer:

Código PHP:
thumbjpeg($imagen, 125);
En este caso, ‘$imagen’, es la imagen que queremos reducir, y ‘125′, es la altura en píxeles que queremos que tenga la imagen reducida, de modo que el ancho quede proporcionado respecto a la imagen original.

Con la instrucción “or die()” se mostrará en pantalla el mensaje entrecomillado solo en el caso de que fallara la primera sentencia de la línea.

NOTAS:

Si en lugar de GD2 disponemos de GD1, no podremos utilizar la función imagecopyresampled() y deberíamos conformarnos con la función imagecopyresized() , que utiliza los mismos parámetros, lo malo es que ésta última da como resultado una imagen de calidad más pobre. A cambio, es mucho más rápida que la anterior.

Así si tenemos GD2, podemos usar la que más nos interese, si queremos CALIDAD y no nos importa el número de ciclos consumidos en el servidor,

imagecopyresampled();

en caso contrario:

imagecopyresized();

Si lo que queremos es crear imágenes “al vuelo”, sin guardarlas en ningún archivo (cosa poco recomendable si usamos la función de más calidad), el segundo parámetro de la función imagejpeg() no se debe de poner, quedando la llamada en el scritp que hay más arriba:

Código PHP:
imagejpeg($thumb);
Bueno, démonos cuenta que este script solo sirve para reducir imágenes de tipo JPEG, no de otro, para otros formatos, tan solo habría que cambiar un par de funciones por las correspondientes en los formatos que nos interesen.

Ejemplo:

imagecreatefromjpeg() por imagecreatefrompng() o imagecreatefromwbmp() o etc.

Tag: , , , ,

Enviado Por admin | Octubre 14, 2009 | En Programacion PHP | No hay Comentarios


   Validar una dirección de e-mail con PHP

DiseñoProgramaciónMarketingRecursos y Contenidos para Webmaster y Freelances del Diseño Categoría: Códigos PHP
Validar una dirección de e-mail con PHPAquí teneis las instrucciónes para utilizar un script que se usa para determinar si una dirección de correo electrónico introducida por el usuario es válida o no

Si la dirección de correo es válida se le envía un correo y si no se le advierte que la dirección que ha introducido está mal

En este artículo adjunto un fichero para conseguir detectar si una cuenta existe o no.

El uso de este fichero (es una función de php3) es el siguiente:

Hacemos un include de la función en la página en la que queramos comprobar la validez del e-mail, dicha página será por tanto la de destino del formulario donde el usuario escribe su nombre. Este include quedaría de la siguiente forma (suponiendo que el fichero se llame validateEmail.php3 :

Tag: , , , ,

Enviado Por admin | Octubre 14, 2009 | En Programacion PHP | No hay Comentarios


   Crear un sistema de comentarios con PHP

Enseñare como crear un sistema de comentarios, normalmente esto se hace para que los usuarios comenten sobre noticias de tu web, pero tambien se puede usar para otros casos como comentarios sobre cada script.

Para el correcto aprendizaje supondremos una “situacion”, supongamos que tienes un sistema de noticias, en el cual los usuarios pueden ver las noticias de la forma noticia.php?id=1, entonces queremos que los usuarios
dejen sus comentarios sobre cada noticia.

Nota: La explicacion la hago suponiendo un conocimiento basico de PHP y interaccion con bases de datos(en este caso MySql) por parte del lector.

Lo primero que tenemos que pensar es ¿que datos del usuario necesitamos?, bien, supongamos que queremos que el usuario deje su comentario junto con un nick(nombre,sobrenombre,alias), para ello creariamos una tabla
llamada comentarios con los campos:

id – Tipo Entero
nick – Tipo Caracter
comentario – Tipo Caracter

La instruccion para su creacion seria:

CREATE TABLE comentarios (
id bigint(7) NOT NULL auto_increment,
nick char(20) default NULL,
comentario char(250) default NULL,
KEY id (id) )

Bien, pero aqui viene el problema que se le presenta a muchas personas y es ¿como reconocer que comentarios corresponden a una noticia determinada?, aunque para algunos paresca sencillo les digo(por experiencia con esas personas) que puede ser un dilema para muchos que no lo “ven”.

Muchos piensan que se hace desde la noticia, reconociendo los comentarios, pero es al contrario, son los comentarios quienes tienen que saber a que noticia pertenecen, para ello necesitamos otro campo en nuestra tabla de comentarios:

CREATE TABLE comentarios (
id bigint(7) NOT NULL auto_increment,
id_noticia bigint(7) default NULL,
nick char(20) default NULL,
comentario char(250) default NULL,
KEY id (id) )

El campo de tipo entero id_noticia, el cual contendra el id de la noticia a que corresponde.

Nota: Recordemos que en este caso suponemos que las noticias se llaman de la forma noticia.php?id=234, donde el id corresponde al id de la noticia en la base de datos.

Ahora debemos mostrar los comentarios, y tener un formulario de envio de comentarios en mi noticia.php y una aplicacion que lo procese.

Nota: Solo voy a poner el codigo que muestra los comentarios y el formulario de envio, ya que de eso es que trata este tutorial y se supone que ya tienes tu sistema de noticias(o en lo que sea que lo vayas a implementar).

Este es el codigo que muestra los comentarios de la noticia actual(despues el codigo para enviar los comentarios), recordemos que obtenemos el id de la noticia que lo hemos pasado por medio de noticia.php?id=123, primero el codigo, luego la explicacion del codigo:

<CENTER>

<TABLE>
<TR>
<TD>
<CENTER>
<SPAN>

.Comentarios De Los Usuarios.
</SPAN>
</CENTER>
</TD>
</TR>
<TR>

<TD>
</TD>
</TR>
<TR>

<TD>
<SPAN>

<resultComen>
<FONT>
<echo>
</FONT>
:
<echo>

<mysql_free_result>
</SPAN>

</TD>
</TR>
</TABLE>
</CENTER>

Aqui lo importante es la lectura de nuestros comentarios, lo que debemos hacer primero que todo es obtener los comentarios, pero solo queremos aquellos que correspondan a la noticia actual, para ello pedimos aquellos cuyo campo id_noticia corresponda con el id de la noticia actual(noticia.php?id=456):

$resultComen = mysql_query(“SELECT * FROM comentarios WHERE id_noticia=’$id’ ORDER BY id ASC”);

Y el resto es sencillo, simplemente imprimir en pantalla cada comentario, con su respectivo nick:

while($rowComen = mysql_fetch_array($resultComen))
{
?>
<FONT>
<echo>
</FONT>
:
<echo>

<?
}

Ahora necesitamos una aplicacion que envie los comentarios a la tabla y un formulario de envio, el cual en este caso estara ubicado en la pagina de la noticia(noticia.php), y pasara por medio de un campo oculto el id de la noticia a la aplicacion que se encargara de enviar el comentario.

Primero el codigo del formulario, utilizaremos un campo de tipo HIDDEN para pasar el id de la noticia a la aplicacion que procesa el formulario(despues el codigo de dicha aplicacion, llamaremos a nuestra aplicacion nuevoComentario.php), este codigo debemos ponerlo en noticia.php:

<CENTER>

<SPAN>

.Enviar Comentario.
</SPAN>
</CENTER>
<P>
<FORM>
<INPUT>
Nick : <INPUT>

Comentario: <INPUT>

<INPUT>
</FORM>
Aqui
cabe destacar el campo:
<INPUT>

El cual recibe como valor el id de la noticia, ahora necesitamos la aplicacion nuevoComentario.php que recibe el id que corresponde al id de la noticia y el nick y comentario correspondientes, solo pondre el codigo de la parte
que lee los datos y introduce el comentario en la base de datos, de ti depende la conexion con la base de datos, dicho codigo es el siguiente:

if(isset($HTTP_POST_VARS["id"])
&& isset($HTTP_POST_VARS["nick"]) && isset($HTTP_POST_VARS["comentario"]))

{
if($HTTP_POST_VARS["comentario"] != “”)
{
if($HTTP_POST_VARS["nick"] == “”)
{
$nickNuevo = “anonimo”;
}
else
{
$nickNuevo = $HTTP_POST_VARS["nick"];
}
$idNoticia = $HTTP_POST_VARS["id"];
$comentarioNoticia = $HTTP_POST_VARS["comentario"];
mysql_query(“INSERT INTO comentarios (id_noticia,nick,comentario) VALUES (‘$idNoticia’,'$nickNuevo’,'$comentarioNoticia’)”);
echo “Comentario Enviado Con Exito.
Espere Unos Segundos…<SCRIPT>window.location.href = “”.getenv(‘HTTP_REFERER’).”";</SCRIPT>”;
}
else
{
echo “Debe Introducir Un Comentario.”;
}
}

Creo que no hay mucho que decir sobre este script, como ya dije estoy suponiendo un conocimiento basico de php y interaccion con bases de datos por parte del lector

Tag: , , , ,

Enviado Por admin | Octubre 14, 2009 | En Programacion PHP | No hay Comentarios


   Ventajas de configurar Google Analytics

Frecuentemente los nuevos de Google Analytics no valoran en su justa medida esta potente herramienta de analítica web y piensan que básicamente ofrece lo mismo que otras muchas herramientas de estadística web que se incluyen de forma gratuita con sus planes de hospedaje y la razón es que usan Analytics con su configuración básica, sin personalizarlo para dar respuesta a sus necesidades reales.

Dar de alta una cuenta en Analytics es muy sencillo y el único “trabajo” que supone es el de copiar un código de control que debe estar instalado en todas las páginas del web, algo muy sencillo y rápido si hemos realizado un diseño previsor y tenemos partes comunes en las páginas web que nos permitan actualizar toda la web con modificar un único archivo.

En la configuración básica Analytics nos ofrece información estadística que efectivamente proporcionan todos los demás sistemas de estadística gratuitadel mercado como son el número de nuestras visitas, las páginas vistas, procedencia de las mismas, páginas más visitadas, navegadores utilizados, etc.

El verdadero problema consiste en cuando deseamos mejorar una web de la que sólo tenemos esta información básica ya que solo podremos conocer si el sitio web está creciendo en visitas, pero no en rentabilidad. Si el modelo de negocio de su empresa se basara únicamente en vender banners y lo único que nos interesara es aumentar el número de páginas vistas por usuario y el de páginas vistas o impresiones en total, puede que este dato nos ayudara, pero… ¿Acaso busca usted solamente visitas o busca Clientes? ¿Qué pasa si lo que queremos es saber la rentabilidad real del web?

Una configuración Avanzada de Google Analytics le permite definir objetivos de rentabilidad de forma que respondamos a preguntas como estas: ¿de qué provincia o país son los clientes que compran más? ¿Qué contenido publicado (artículos, textos…) es el que consigue que se den de alta los usuarios en nuestra base de datos? ¿Piden más información los clientes que leen la oferta A o la oferta B? ¿Son más rentables mis campañas de tráfico gratuito en buscadores (SEO) o las campañas de pago (SEM)? ¿Cuántos clientes generaron las campañas de email que realicé la semana pasada? ¿Es realmente rentable el banner que he contratado en esa web? ¿Qué buscador y palabras clave en SEO y SEM me traen clientes finales y no sólo curiosos?….

En resumen una configuración avanzada de Google Analytics y personalizada le permite saber si lo que tenemos son “más curiosos” o “más clientes potenciales o finales” y no invertir a la vieja usanza con frases como “Sé que estoy tirando a la basura la mitad de mi presupuesto publicitario, pero no sé qué mitad”, tal y como sigue pasando por desgracia con muchas campañas en medios tradicionales.

Tag: , , , ,

Enviado Por admin | Octubre 14, 2009 | En Programacion PHP | No hay Comentarios


   Los foros – puntos positivos y negativos

En materia de posicionamiento web, el hecho de crear siempre contenido y actualizar información en un sitio web es la manera ideal de mostrar crecimiento. Ya que los sitios web que mantienen un estándar de crecimiento consistente incitan de esa forma a que las arañas de un motor de búsqueda deban realizar más revisiones en el sitio y entreguen el sitio al usuario como respuesta a sus búsquedas. No se recomienda colocar 20 hojas de contenido y después dejar de hacerlo por meses.

¿Cómo podemos actualizar nuestro contenido? es difícil el obtener ese crecimiento constante. Siempre se puede escribir acerca de nuestros servicios o productos, sobre sus características o nuevas formas de uso. Pero en general no es una tarea fácil, toma mucho tiempo y por eso buscamos herramientas que nos ayuden y lo faciliten, un ejemplo es el foro.

Con un foro podemos obtener información diaria y actualización constante mediante los comentarios de los integrantes. Así se aumenta el contenido de un sitio sin necesitar tanto esfuerzo, no hace falta pagar por el, ni nos ocupa tiempo. Es una gran ventaja que hará que usuarios ingresen a nuestro sitio por lo que incluso genera tráfico.

Ahora bien, una desventaja importante es el hecho de que un foro se debe dirigir. Existen comentarios que quizás no consideramos positivos a publicar o que quizás nos afecten negativamente si llegaran a nuestros competidores. Y también por otro lado no debemos dejar que llegue a existir algún manejo de información ofensiva como seria pornografía, y etc. por lo cual tampoco recomendamos otorgar enlaces salientes. Sí se quiere dar la opción a los usuarios a colocar un enlace se deben hacer únicamente no follow.

En conclusión: un foro nos da contenido pero, ¿es de la calidad que queremos? ¿Podemos estar seguros de que los comentarios son de acuerdo al tema del sitio? La solución sería el crear un mecanismo con el que pueda leer los comentarios para después publicarlos.

No se debe tomar a la ligera la decisión de incluir un foro en nuestro sitio web, ya sea porque está de moda o porque queremos generar tráfico y contenido, debemos tomar todas las precauciones posibles para su manejo efectivo.

Tag: , , , ,

Enviado Por admin | Octubre 14, 2009 | En Programacion PHP | No hay Comentarios


   Como Instalar Joomla con Fantastico

Bienvenido a esta pequeña guia de como instalar joomla en tu cuenta de hosting, para instalar via cpanel, buscar la opción Fantastico alli encotraras aproximadamente 52 scripts pre instalados esto quiere decir que ya estan en el server para ser instalados, y no tienes que subir ningun archivo, mas que configurar tu base de datos primero entrando a tu cpanel, base de datos, crear la base de datos, el usuario y contraseña, luego darle lo privilegios necesarios. En este caso le daremos todos los privilegios.

Luego ver en tu base de datos con todo prefijo, nombre de tu base de datos, usuario y su contraseña, en host o server colocar localhost. Y luego rellenar con todos estos datos.

Si sigues correctamente la secuencia te saldra un template de joomla por defecto el cual podras modificar subiendo plantillas.

Este Administrador de Contenidos es una poderosa herramienta y con mucho futuro SEO.

Tag: , , , ,

Enviado Por admin | Octubre 14, 2009 | En Programacion PHP | No hay Comentarios


   Joomla

Joomla: razones para usarlo en su sitio web

Una de las más grandes empresas mixtas colombianas ha solicitado mi opinión acerca de Joomla, como plataforma web para administrar los contenidos de uno de sus portales web. Están pensando seriamente la opción de migrar la plataforma actual (software privativo) a Joomla (software libre).

Me ha parecido muy interesante poder compartir con los lectores de mi blog en El Tiempo y en Astrolabio la respuesta, ya que encuentro que en este momento muchas empresas del sector público y privado les estará picando la gana de probar el software libre para sus páginas web e Intranets.

Joomla es la evolución de Mambo
“Joomla; todos juntos.”

El proyecto Joomla nace en agosto de 2005, como el resultado de la división entre la compañía australiana Miró (fundadora del software libre llamado Mambo) y sus desarrolladores, a raíz de unas cláusulas que violaban los valores principales del código abierto.

Los desarrolladores quisieron darle continuidad a Mambo, siguiendo la filosofía del software libre, así que le dieron un nuevo nombre al proyecto: Joomla, que en lengua swahili significa “todos juntos” (ojo, que se pronuncia “yumla” y no “jungla”).

Joomla es un CMS (Content Management System), es decir, un sistema de administración de contenidos web. Su código es abierto y está escrito en PHP, usa bases de datos MySQL y se distribuye bajo la licencia GPL. En palabras menos técnicas, es un software libre, que no paga licenciamiento y se basa en herramientas similares, que no generan costos de licencias.

Por qué Joomla es tan popular
Una de las razones para ser un software tan difundido es su propia esencia: “free software”. Estas dos palabritas que al traducir al español resultan un tanto ambiguas. Algunos la traducen como programa gratis, cuando el verdadero significado es programa libre.

De todas formas, hay que decirlo: Joomla no tiene costo (de licencia). Usted lo puede bajar y usar sin tener que pagar nada. Pero lo más importante: usted es libre de acceder al código, modificarlo, mejorarlo o adaptarlo a sus necesidades.

Joomla: un software de más de dos millones de dólares
Si su empresa quisiera programar un software como Joomla le costaría más de dos millones de dólares.

Algunos desarrolladores ven en el software libre como Joomla una amenaza. Lo “gratis” para muchos equivale a “malo”. Nada más lejos de la realidad. De hecho, el costo de Joomla está valorado en USD$ 2,194,486, teniendo en cuenta que si una empresa decidiera llegar a un software similar, debería dedicar 11 programadores durante 18 meses continuos para alcanzar las 65.880 líneas de código que Joomla tiene escrito.

Es la gran fortuna del software libre: muchos de los mejores desarrolladores del planeta trabajando al tiempo, desde diferentes partes del mundo y aportando su conocimiento para construir entre todos el mejor software CMS del mundo.

Joomla: mejor CMS del mundo
Así fue considerado en el CMS Award de los dos últimos años (2006 y 2007): el mejor CMS de código abierto del mundo. Durante dos años consecutivos este prestigioso premio ha sido otorgado a Joomla, por encima de otros también importantes y grandes, como Drupal o PHP Nuke.

Las Naciones Unidas usa Joomla
“Las Naciones Unidas usan Joomla en su sitio web www.unric.org”

Son miles de sitios los que hoy en día usan Joomla, sin embargo, es importante resaltar algunos casos exitosos, como el de las Naciones Unidas, que prefirió usar Joomla a una solución de administración de contenidos de Microsoft. Menudo golpe de opinión produjo en todo el mundo que un organismo como Naciones Unidas base toda la plataforma multilingüe a software libre.

Algo similar ocurrió con Orbitel Estados Unidos y Orbitel España. Ahora ellos también usan Joomla para la tienda de comercio electrónico en estos dos países. También la revista América Economía, migró su versión electrónica a Joomla.

Ya en Colombia, hay casos recientes, en el tema de Gobierno Electrónico. Se trata de entidades como la Secretaría de Gobierno de Bogotá, que usa tanto para su portal como para su Intranet a Joomla. De igual forma, los Bomberos de Bogotá, la Gobernación del Valle con su sitio de Inciva, el Centro Internacional para la Agricultura Tropical CIAT con proyectos como Agrosalud, el Hospital La Samaritana, entre otras empresas han confiado en Joomla como solución de administrador de contenidos.

” En Colombia hay ejemplos de empresas del Estado y privadas que han usado exitosamente Joomla para sus portales e intranets.”

Ventajas de Joomla
Orbitel en Estados Unidos y España ha confiado en Joomla para su tienda electrónica.
Dentro de las principales ventajas de usar Joomla, encontramos:

Software libre: usted es libre de usarlo, no necesita pagar costos de licenciamiento.
Posibilidad de modificar el código fuente: los programadores o diseñadores podrán acceder a lo más íntimo del código y modificarlo según las necesidades de la organización.
Más de tres mil extensiones: la gran mayoría de libre uso, que permiten ampliar las posibilidades y características de Joomla. Si el núcleo de Joomla no suple alguna necesidad específica, busque una extensión… seguramente la encontrará.
Instalación en servidores Linux, Mac y Windows: no hay excusa, si usted tiene su propio servidor en Windows (pasa mucho en empresas colombianas), podrá instalarlo sobre Apache.
Velocidad de carga: a diferencia de otras plataformas, Joomla permite una carga muy rápida de sus páginas gracias al sistema de caché.
Cumplimiento de estándares web: la más reciente versión de Joomla se acerca al ideal de cumplimiento de los estándares del W3C. Gracias a su sistema de plantillas es posible separar la presentación del contenido y marcar semánticamente los documentos.
Facilidad en la creación de módulos personalizados: gracias al código abierto, si su empresa necesita un módulo muy particular, ¡prográmelo sin arrancar desde cero!
Software en constante evolución: el grupo de desarrolladores y toda la comunidad está trabajando permanentemente para ofrecernos cada día un software mejor y más seguro.
Versatilidad en los diseños: cualquier idea de diseño es posible de llevarla a cabo. No se limite a un encabezado, dos columnas y un pie de página. Diseñe la interfaz que mejor se acomode a sus usuarios.
Seguridad: gracias a una comunidad de miles de usuarios es posible tener una vigilancia exhaustiva de posibles vulnerabilidades en el código. Y cuando aparece una, la solución es inmediata por parte de toda la comunidad.
SEO (optimización para motores de búsqueda): Joomla tiene unas excelentes prácticas para posicionar nuestros sitios en los motores. Por ejemplo, títulos independientes por página, uso de etiquetas meta diferenciadas en cada página, URL amigables, entre otras.
En español: para muchas personas esto resulta un plus bastante interesante, para entender mejor la interfaz de administración.
La seguridad en Joomla
Tal vez la seguridad sea uno de los principales caballitos de batalla de los detractores del Joomla. La verdad, es que la seguridad dependerá del administrador de la página. Debe estar muy atento a las actualizaciones y parches que salgan (normalmente cada dos o tres meses). Y listo… Pero si hay descuido por parte del Webmáster y nunca se actualiza, las vulnerabilidades estarán presentes y la puerta abierta para que la página sea atacada.

Pero esta situación puede resultar tan crítica en el software libre como en el privativo. Muestra de ello fue el ataque hacker recibido en un servidor de Microsoft, porque la empresa no actualizó un parche de seguridad de uno de sus programas.

Entonces ¿migrará su sitio web a Joomla?
Migrar su sitio a Joomla requerirá de un análisis de todas estas ventajas, comparadas con las ventajas (y desventajas, sobre todo) que su organización reciba de usar software privativo. Esperamos que este breve análisis le sirva en esta importante toma de decisión.

Tag: , , , ,

Enviado Por admin | Octubre 14, 2009 | En Programacion PHP | No hay Comentarios


   PHP compilado de manera CGI

Informacion sobre PHP suEXEC y Preguntas Frecuentes (FAQ)Todos los servidores seran compilados con PHP suEXEC. PHP suEXEC ejecuta todos los scripts PHP con tu nombre de usuario en vez de correr como “nobody” asi que es mucho mas facil saber que cliente o sitio web en nuestros servidores ha sido hackeado. Esto tambien va a arreglar cualquier error de permisos/ownership que puedas tener subiendo/modificando un archivo a travez de una interfaz web.PREGUNTAS FRECUENTES (FAQ) PHP suEXEC#1. Cual sera la diferencia entre antes y despues de PHP suEXEC?

La mayoria de los sitios no seran afectados gracias a este cambio. PHP suEXEC funciona de la misma manera que los scripts CGI (perl, etc). Todos los scripts de tu sitio web seran ejecutados con tu nombre de usuario en vez que el usuario “nobody”.

Esto simplemente significa que de la misma manera que manejas scripts CGI es como vas a manejar PHP de ahora en adelante – Los maximos permisos que se le pueden asignar a los scripts PHP (y directorios) bajo PHP suEXEC es 755. Si los permisos de los directorios y tu script son mayores que 755 tu script va a darte un error #500 cuando lo intentes ver/ejecutar.

#2. Necesito cambiar los permisos de carpeta a 777?

No, tu no necesitas tener tus directorios o archivos con permisos 777, incluso si tus documentos de instalacion te indican lo contrario. Los permisos 755 funcionan del mismo modo. Los scripts que sean de tu propiedad (nombre de usuario) seran capaces de escribir en tus archivos, de la misma manera que lo harian con permisos 777.

Tambien si tienes aplicaciones PHP/scripts con directorios de permisos 777 (necesario para que sean escritos u modificados cuando se usa el modulo php en apache *no es este caso*) los permisos de carpeta deberan ser cambiados a 755.

#3. Y que sobre .htaccess?

Tu no puedes cambiar la configuracion de PHP usando .htaccess cuando el servidor utiliza PHP suEXEC, para eso puedes usar un archivo llamado php.ini con las directivas que necesites (sin PHP_FLAG).

Si estas usando un .htaccess con PHP_VALUE, recibiras un ERROR 500 (Internal server error) cuando intentes ejecutar el script. Esto es porque PHP esta con suEXEC y ya no utiliza el modulo de apache, y ya no va a usar esas directivas.

#4. Que es un archivo php.ini y como hago para crear uno?

PHP.ini es el archivo que el servidor utiliza para ver que tipo de configuracion han sido modificadas comparandola con la configuracion default del servidor. Mientras que el nombre parezca avanzado, es un simple archivo llamado php.ini

Puedes crearlo con notepad, cuando le das salvar archivo le cambias el nombre a php.ini y por supuesto lo salvas como “TODOS LOS ARCHIVOS” no como TXT.

Como resolver problemas

Mi script PHP no funciona y recibo errores 500 (Internal Server…)
VERIFICA QUE TU SCRIPT PHP TIENEN PERMISOS 755 y no mas de esos. Permisos 644 tambien funcionan normalmente, pero eso no es algo que sera necesario de cambiar en la mayoria de los casos.

Verifica que el directorio donde reside tu script PHP y sus antecesores tienen permisos no mayores que 755.

Verifica que tu .htaccess no contenga PHP_FLAG o PHP_VALUE en ellos

Tag: , , , ,

Enviado Por admin | Octubre 13, 2009 | En Programacion PHP | No hay Comentarios