Galeria de Fotos PHP sin BBDD

PUBLICIDAD
publicidad


Muy buenas tigres de la programacion, bueno aqui nuevamente para mostrarles un recurso que les puede interesar, resulta que hace poco teniamos que resolver un problemilla, que era mostrar distintas imagenes a especie de catalogo de productos, hasta ahi todo sencillo porque con un “img src” se hubiera terminado el tema, pero el cliente queria cambiarlas el y no tenia ni p…. idea de HTML ni de PHP queria el agregar o quitar fotos cuando quisiera, bueno eso tampoco significaria mucho pues podiamos desarrollar un pequeño gestor de contenidos especificamente para esta seccion, osea subir, cambiar y eliminar fotitos.. nada del otro mundo, pero, aqui viene el tema y lo cabrones que quieren ser los clientes cuando quieren :) que no queria aumentar su presupuesto!!!! osea queria las joyas del nilo a precio de “todo 100″, bueno como era un cliente recomendado y teniamos que hacerlo para no quedar mal, negociamos un poco y despues de algunos arañazos y mordidas, resolvimos el tema para “bien” de los dos, lo pongo entre comillas porque fue un chollo para el cliente. Pero al menos nos sirvio de ejercicio para poner algo en este venerable blog de vuestro servidor :) .

Bueno, ahora explico como solucionamos este asunto.

1.-Organizamos la estructura de carpetas donde estaran las imagenes que se van a mostrar.
2.- Creamos un fichero que abrira y recorrera la carpeta asi como mostrara las imagenes. A este fichero le llamaremos catalogo_view.php y tendra el siguiente codigo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
$dir="imagenes/galeria/"; 
 
$directorio = opendir($dir); 
 
$ancho=80;
$alto=80;
while ($archivo = readdir($directorio)){ 
	if ($archivo != "." && $archivo != ".."){
		$ext=explode(".",$archivo);
		$ext[1] = strtolower($ext[1]);
		if($ext[1] == 'jpg' || $ext[1] == 'png' || $ext[1] == 'gif' || $ext[1] == 'jpeg'){		
			$archivos[$archivo] = '<a href="'.$dir.$archivo.'"><img  src="'.$dir.$archivo.'" width="'.$ancho.'" '.'height="'.$alto.'" /></a>'."\n";
		}	
	}
}
closedir($directorio);
ksort ($archivos);
?>

Ahora procedo a explicar brevemente las partes mas importantes.

En la primera linea definimos una variable $dir con la ruta exacta donde estan las imagenes a utilizar. La siguiente linea abre el directorio y guarda la informacion en la variable $directorio.

1
2
$dir="imagenes/galeria/"; 
$directorio = opendir($dir);

Ahora definimos las variables que guardan las dimensiones de las imagenes en formato thumbnail. Tener cuidado con guardar la proporcion de imagen.

1
2
$ancho=80;
$alto=80;

Lo siguiente es recorrer la carpeta donde tenemos las imagenes y evita que se recorran indices que podrian vulnerar la seguridad, recuerden, a este nivel trabajamos a modo UNIX.

1
2
while ($archivo = readdir($directorio)){ 
	if ($archivo != "." && $archivo != ".."){

Ahora buscamos el “.” para empezar a filtrar los ficheros por su extension, recuerden queremos obtener las imagenes con formato ‘jpg’, ‘png’, ‘gif’ o ‘jpeg’. Pero no se limiten que ahi pueden poner la extension que quieran.

1
2
3
$ext=explode(".",$archivo);
$ext[1] = strtolower($ext[1]);
if($ext[1] == 'jpg' || $ext[1] == 'png' || $ext[1] == 'gif' || $ext[1] == 'jpeg')

A continuacion guardamos cada imagen de la carpeta en una posicion determinada del array $archivo[], le he puesto un enlace porque en realidad tenia un efecto lightbox para darle un toque mas guapo.

1
$archivos[$archivo] = '<a href="'.$dir.$archivo.'" rel="lightbox[roadtrip]"><img  src="'.$dir.$archivo.'" width="'.$ancho.'" '.'height="'.$alto.'" /></a>'."\n";

Por ultimo cerramos el directorio, no olvidar, y ordenamos la matriz por clave.

1
2
closedir($directorio);
ksort ($archivos);

Pero ahi no queda la cosa jejeje nonono .. ahora tenemos que crear otro fichero que cargara nuestra genial programacion, y recorrera el array $archivo para mostrarlo en la pagina.

1
2
3
4
5
6
<?php
	include_once('catalogo_view.php');
	foreach($archivos as $enlaces_uo){
		echo $enlaces_uo;						
			}
?>

Y listo, asi de facil, ahora a probarlo y si teneis alguna duda, ya sabes donde encontrarme en el bar de Pepe el Toro :) Saludos!

publicidad


PUBLICIDAD

Colores Hexadecimales

PUBLICIDAD
publicidad


Hola chavalotes :) que pensabais que ya me habia vuelto a Perú! nooooo, aqui denuevo reloaded!, bueno a lo nuestro , aqui les dejo una cosilla que seguro os va a servir un guebo, con esta paleta tendreis los colores hexa chupaos!



Que lo disfruten



Agur!

publicidad


PUBLICIDAD

Enviando mensajes HTML con PHP-Mail (III)

PUBLICIDAD
publicidad


Buenas amigos del PHP y demas hierbas, despues de un breve tiempo “fuera del ring” he vuelto para poner algunas cosillas. Continuando con el tema del envio de mensajes por PHP, como ya les repito es muy util que le hagais a vuestros clientes cuando tengais alguna chapuzilla web, pues un formulario de envio de contactos o presupuestos, etc.. en condiciones, entonces a todo lo que estabamos haciendo le faltaba el envio de mensajes como HTML, osea que nos llegue el mensaje ordenado con formato HTML predefinido y bien, esto a los clientes les vuelve loco: :) asi que aprovechen el siguiente codigo que es muy sencillo ademas es el codigo de un caso real.

Bueno, primero como siempre creamos un formulario, en este caso me la he currado y he hecho un formulario como debe ser con capas y todo correctamente ordenado o al menos eso parece :)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<div id="contenidosformulario" style="width:30%; border:1px solid;"> 
<form name="form1" action="enviar3.php" method="post">
	 <div style="width:100%; float:left;">
		<div style="float:left;">
			<label>empresa:</label> <input type="text" id="empresa" name="empresa"/>
		</div>
	</div>
             <div style="width:100%; float:left;">
		<div style="float:left;">
			<label>persona de contacto:</label> <input type="text" id="contacto" name="contacto"/>
		</div>
	</div>
             <div style="width:100%; float:left;">
		<div style="float:left;">
			<label>teléf. de contacto:</label> <input type="text" id="telefono" name="telefono"/>
		</div>
	</div>
	<div style="width:100%; float:left;">
		<div style="float:left;">
			<label>e-mail:</label> <input type="text" id="email" name="email"/>
		</div>
	</div>
             <div style="width:100%; float:left;">
		<div style="float:left;">
			<label>Comentarios:</label>
		</div>
	</div>
	<div style="width:100%; float:left;">
		<div style="float:left;">
			<textarea id="comentario" name="comentario" cols="40" rows="5"></textarea>
		</div>
	</div>
	<div style="width:100%; float:left;">
		<div style="float:right;">
		<label for="">&nbsp;</label> <input class= "btn" type="submit" value="Enviar consulta"/>
		</div>
	</div>
</form>
</div>

Facil no? pero si esto es XHTML de primero de ESO !! :) jejejeje bueno ahora creamos el proceso, recordar publicar el proceso en un servidor con server APACHE o alguno que permita ejecutar PHP o en su XAMPP de toda la vida :)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?
$empresa=$_REQUEST['empresa'];
$contacto=$_REQUEST['contacto'];
$telefono=$_REQUEST['telefono'];
$email=$_REQUEST['email'];
$comentario=$_REQUEST['comentario'];
 
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: '.$email. "\r\n";
 
$mensaje= "<b>Empresa:</b>".$empresa."<br/>".
"<b>Nombre:</b>".$contacto."<br/>".
"<b>Telefono:</b>".$telefono."<br/>".
"<b>Email:</b>".$email."<br/>".
"<b>Comentario:</b>".$comentario;
 
mail('webtrainner@hotmail.com', 'Contacto de la Web', $mensaje, $headers);
 
header('Location: form3.php?rpta=ok&contacto='.$contacto);
?>

Ya sabeis que los datos que estan ahi son temporales, no lo dejeis asi y lo publiqueis hee pajaroo!! que se entera vuestro cliente y os cruje hee!!! :) . Bueno como veis ya en el mensaje podeis meter HTML sin problemas, lo que querais, esto es un breve ejemplo pero se puede extender a muchas aplicaciones.

Ver ejemplo

Pues asi de rapido ha sido este post, espero que os sirva, y ya saben recuerden que esta prueba llega a mi e-mail asi que porfavor no me pidan dinero que estoy a dos velas quilllooo!, Agur!!!!

publicidad


PUBLICIDAD

Cargando paginas por pais con PHP

PUBLICIDAD
publicidad


Buenas, amigos de PHP, otra vez lunes ufff, que mal dia para poner un post, pero bueno aqui estoy “eme aqui y aqui eme”, esta vez vamos a detectar el codigo del pais donde os encontreis y segun eso cargareis una u otra pagina, esto viene bien cuando se tienen versiones del Sitio Web para cada pais aun compartiendo el mismo idioma, bueno lo mas importante es obtener el codigo del pais donde nos encontramos para esto usamos la funcion $_SERVER["HTTP_ACCEPT_LANGUAGE"] que nos devolvera el codigo del pais y su correspondiente lenguaje, por ejemplo:

en-us
en-gb
de
nl
en-us,zh;q=0.5
es
en
nl-be

$_SERVER es una matriz que contiene información tal como headers, paths, y script locations, las entradas a esta matriz son proporcionadas por el servidor web. Esta matriz tiene muchos atributos el que veremos en esta ocasion sera HTTP_ACCEPT_LANGUAGE, pero hay muchas mas como : REQUEST_TIME, QUERY_STRING, HTTP_ACCEPT etc.. para mas informacion podeis ver la madre del los manuales de PHP el manual oficial.

Bueno vamos al negocio, crearemos un nuevo documento PHP y ahi escribiremos el siguiente codigo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<?php
// IMPORTANTE: 
// - Cambia pagina.php por el archivo correcto de acuerdo al pais
// - Quita el comentario del include para que cargue la pagina correspondiente
if (isset($pais) && ($pais <> '')) {
	$cod_pais = substr($pais,0,5);
} else {
	$cod_pais = substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,5);
}
 
echo "El codigo de tu pais es: ".$cod_pais;
return false;
 
//Dependiendo del codigo del pais cargara una u otra pagina;
 
switch ($dgo_pais) {
 
	case "es-es":
	//si el pais es España
	include("pagina.php");
	break;
 
	case "es-pe":
	//si el pais es Perú
	include("pagina.php");
	break;
 
	case "es-ar":
	//si el pais es Argentina
	include("pagina.php");
	break;
 
	case "es-cl":
	//si el pais es Chile
	include("pagina.php");
	break;
 
	case "es-ve":
	//si el pais es Venezuela
	include("pagina.php");
	break;
 
	case "pt-br":
	//si el pais es brasil
	include("pagina.php");
	break;
 
	case "es-co":
	//si el pais es colombia
	include("pagina.php");
	break;
 
	case "es-ec":
	//si el pais es ecuador
	include("pagina.php");
	break;
 
	case "es-uy":
 
	//si el pais es uruguay
	include("pagina.php");
	break;
 
	default:
	//si es algun otro pais
	include("pagina.php");
	break;
}
?>

Como veis, primero creamos una condicional que dara siempre FALSE, entonces entrara a esta linea $cod_pais = substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,5); donde creamos una variables que guardara el codigo y lenguaje usado por la zona geografica donde nos encontremos, y el resto es historia, usamos un SWITCH/CASE de toda la vida para determinar que pagina cargar dependiendo del valor de la variable, pero debeis comentar estas lineas

1
2
echo "El codigo de tu pais es: ".$cod_pais;
return false;

y claro, cambiar el nombre de la pagina.php dependiendo del caso.

Bueno pues nada mas, facil no?, si teneis alguna duda ya sabes dejad un comentario “pa ver que hacemo quilloo!” :)

Ver ejemplo

publicidad


PUBLICIDAD