Logo-top
Top-menu-right Top-menu-left    INICIO
Top-menu-right Top-menu-left    CARÁTULAS
Top-menu-right Top-menu-left    ARTISTAS
Top-menu-right Top-menu-left    FOTOS
Top-menu-right Top-menu-left    LÍRICAS
Top-menu-right Top-menu-left    RADIO
Speakers-top
Logo-middleLogo-textLogo-button-chatRegistrateSpeakers-middle
Speakers-bottom
Sonando en la Radio

Navigation
Respuesta
 
LinkBack Herramientas

  #1 (permalink)
Antiguo 27-sep-2006, 15:52
El Tiburón
 
Avatar de AGE_vs_shory
 
Visto Hace: 19 días 13 horas
Fecha de Ingreso: junio-2005
Ubicación: Colombia
Mensajes: 1.441
Gracias: 0
Enviar un mensaje por Skype™ a AGE_vs_shory
Predeterminado [PHP] Firma dinamica

Introducción
Antes de empezar con el código es recomdable darnos una vuelta por aquí. Una firma en PHP no es solo la utilización de la librería GD (claro que solo podemos usarla a ella pero nos quedaria igual, solo con extención PHP), tambien podemos usar muchas opciones que nos ofrece PHP para generar las imágenes (es por eso la importacia del conocimiento PHP).

Requerimientos
Los requerimientos son sencillos y fáciles de obtener:
  • Conocer por lo menos la sitaxis de PHP
  • Tener un host con soporte PHP y con la librería GD
  • Tener nuestra imágen (no es necesario ya que con GD la podemos crear )

Manos a la obra!
Vamos a suponer que tenemos esta imágen:

(Sencilla, es solo jpg)

Pero es muy sencilla no?, que les parece está:

(Sencilla, solo nos muestra la ip)

Aquí podremos ver dos direriencias; la primera es que baja la calidad del jpg (nadie es perfecto ) y la segunda es que nos muestra nuestra ip. Pero esto es brujería ?, nah! es muy sencillo:

Código:
<?php
//////Indicamos que tipo de archivo es/////////
header("Content-Type: image/jpeg");
//////Ruta de muestro jpg//////////////////////
$ruta="./primera.jpg";
///////Mostramos su Ip/////////////////////////
if ($_SERVER["HTTP_X_FORWARDED_FOR"]){
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
}else{
$ip = $_SERVER["REMOTE_ADDR"];
}
$ip = explode(",", $ip);
$ip = $ip[0];
///////Creamos la imagen///////////////////////
$img=imagecreatefromjpeg($ruta);
///////Pintamos la fuente//////////////////////
$color=imagecolorallocate ($img, 255, 255, 255);
///////Ponemos la Ip///////////////////////////
imagettftext($img,8,0,40,94,$color,"./verdana.ttf",$ip);
///////Se muestra la imágen////////////////////
imagejpeg($img);
///////Se libera la memoria y fin//////////////
imagedestroy($img);
?>



Pero como se que son muy nuevos en esto, les explico detalladamente :

Código:
<?php

"<?php" es el tag de apertura (le indicamos a nuestro server que empezamos a programar en PHP. Tambien podemos usar "<?" pero es mas sucio (hay que hacer las cosas bien!) .

Código:
//////Indicamos que tipo de archivo es/////////

Aquí lo que hacemos es escribir un comentario tipo "barra doble" se puede poner solo // pero vamos a darle estetica , tambien abarca todo el párrafo. Más info aquí.

Código:
header("Content-Type: image/jpeg");

"header()" es una función PHP y nos sirve para indicar la cabecera del archivo, "Content-Type: image/jpeg" significa que nuestra cabecera es una imagen de tipo jpeg (jpg). Más info aquí.

Código:
//////Ruta de muestro jpg//////////////////////

Otro comentario.....

Código:
$ruta="./primera.jpg";

Indicamos en la variable "$ruta" donde está nuestra imagen de donde vamos a partir.

Código:
///////Mostramos su Ip/////////////////////////

Otro comentario.....

Código:
if ($_SERVER["HTTP_X_FORWARDED_FOR"]){
$ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
}else{
$ip = $_SERVER["REMOTE_ADDR"];
}
$ip = explode(",", $ip);
$ip = $ip[0];

Aquí es muy importante poner atención, está pequeña sentencia (if/else) nos va a servir para identificar la ip aunque estes detras de un proxy

(cabe aclarar que sí estás detras de un proxy full anonimity no funca).Código:
///////Creamos la imagen///////////////////////

Otro comentario.....

Código:
$img=imagecreatefromjpeg($ruta);

Aquí ya empezamos a ver funciones PHP (para la creacion de imagenes), imagecreatefromjpeg() nos va a crear una imagen jpg desde un archivo y le ponemos nuestra variable. Más info aquí.

Código:
///////Pintamos la fuente//////////////////////

Otro comentario.....

Código:
$color=imagecolorallocate ($img, 255, 255, 255);

Declaramos la variable "$color" y le agregamos el valor de imagecolorallocate, esta función nos va a servir para pintar el texto de la imagen, la sintaxis es (ruta-imagen, color rojo, color verde, color azul). Los colores se expresan en hexadecimal. Más info Aquí

Código:
///////Ponemos la Ip///////////////////////////

Otro comentario.....

Código:
imagettftext($img,8,0,40,94,$color,"./verdana.ttf",$ip);

Llamamos a la función imagettftext(), la sintaxis es la siguente: (ruta-imagen, tamaño-de-fuente,angúlo,coodernada-X,coordenada-Y,color-fuente,ruta-de-nuestra-font,texto-a-mostrar). Más info aquí.

Código:
///////Se muestra la imágen////////////////////

Otro comentario.....

Código:
imagejpeg($img);

La función imagejpeg() nos sirve para mostrar un jpg desde archivo. Más info [urlhttp://es.php.net/manual/es/function.imagejpeg.php]aquí[/url]

Código:
///////Se libera la memoria y fin//////////////

Otro comentario.....

Código:
imagedestroy($img);

Destruimos la imagen (para que no quede en la memoria del server). Más info aquí

Código:
?>

Cerramos nuestro tag PHP.

Bueno hasta aquí va todo explicado ok?, en caso contrario regresate al principio y suerte! .


__________________
Prefiero reinar en el infierno q servir en el cielo

To view links or images in signatures your post count must be 10 or greater. You currently have 0 signatures.

To view links or images in signatures your post count must be 10 or greater. You currently have 0 signatures.


¿GOOG O EVIL?

To view links or images in signatures your post count must be 10 or greater. You currently have 0 signatures.


AGE_vs_shory no está en línea   Responder Citando
  #2 (permalink)
Antiguo 27-sep-2006, 15:53
El Tiburón
 
Avatar de AGE_vs_shory
 
Visto Hace: 19 días 13 horas
Fecha de Ingreso: junio-2005
Ubicación: Colombia
Mensajes: 1.441
Gracias: 0
Enviar un mensaje por Skype™ a AGE_vs_shory
Predeterminado

¿Qué hemos aprendido?

Ya debemos de comprender lo siguiente:
  • Que es PHP
  • La sitaxis PHP
  • Cómo poner comentarios
  • Que es la función header()
  • El uso de los if/else
  • El concepto de una variable
  • La función imagecreatefromjpeg()
  • La función imagecolorallocate()
  • La función imagettftext()
  • La función imagejpeg()
  • La función imagedestroy()

Sí te ha quedado alguna duda: http://es.php.net o pregunta aquí en el foro

Ya he aprendido todo lo anterior pero quiero más!

PHP nos ofrece una gran cantidad de opciones para agregar información, vamos a ver algunas

Detectar el navegador.- Es muy sencillo, vamos a extraer la cabecera del nuestro navegador y apartir de ahí obtendremos el mismo (se pueden mas cosas solo que ahora nos importa solo el navegador ok?).

Código:
<?php
$cabecera
=$_SERVER["HTTP_USER_AGENT"];
if(
eregi("MSIE",$cabecera)){
$navegador="Internet Explorer";
}
?>



Por partes :

Código:
<?php
$cabecera
=$_SERVER["HTTP_USER_AGENT"];
?>


Como ya sabemos que es una variable ($cabecera) no me voy a detener a explicarla, pasamos a $_SERVER["HTTP_USER_AGENT"]. $_SERVER es una variable preestablecida de apache (super global) y el array "HTTP_USER_AGENT" es el contenido de $_SERVER y nos va a servir para recojer la info del navegador (y otras cosas mas).

Veamos el contenido de $_SERVER["HTTP_USER_AGENT"]:

Mozilla/5.0 (Windows; U; Windows NT 5.1; es-AR; rv:1.7.6) Gecko/20050223 Firefox/1.0.1

Windows NT 5.1: Es la versión de de Windows que estamos usando (en este caso XP)
es-AR: Es el idioma de nuestro navegador (en este caso español de Argentina aunque yo este en México :S)
Firefox/1.0.1: Navegador y versión.

Ya hemos comprendido $_SERVER["HTTP_USER_AGENT"] ok?, pasemos a lo siguiente:

Código:
<?php
if(eregi("MSIE",$cabecera)){
$navegador="Internet Explorer";
}
?>


Aquí usamos un if() pero eregi()?? que es eso , bueno eregi es otra función muy distinta a las que hemos visto, nos sirve para buscar en una cadena algún texto. De esta forma decimos algo parecido a "sí encuentras la palabra MSIE en la cabecera devuelta asignamos el valor Internet Explorer a la variable $navegador".

De esta forma podemos hacer lo siguiente:

Código:
<?php
$cabecera
=$_SERVER["HTTP_USER_AGENT"];

if(
eregi("MSIE",$cabecera)){
$navegador="Internet Explorer";
}
elseif (
eregi("Firefox",$cabecera)){
$navegador="Firefox";
}
elseif (
eregi("netscape",$cabecera)){
$navegador="Netscape";
}
elseif(
eregi("Mozilla",$cabecera)){
$navegador="Mozilla";
}
else{
$navegador="No ideintificado";
}
?>



Podemos agregar mas solo que hay que ver las cabeceras .

__________________
Prefiero reinar en el infierno q servir en el cielo

To view links or images in signatures your post count must be 10 or greater. You currently have 0 signatures.

To view links or images in signatures your post count must be 10 or greater. You currently have 0 signatures.


¿GOOG O EVIL?

To view links or images in signatures your post count must be 10 or greater. You currently have 0 signatures.


AGE_vs_shory no está en línea   Responder Citando
  #3 (permalink)
Antiguo 27-sep-2006, 15:54
El Tiburón
 
Avatar de AGE_vs_shory
 
Visto Hace: 19 días 13 horas
Fecha de Ingreso: junio-2005
Ubicación: Colombia
Mensajes: 1.441
Gracias: 0
Enviar un mensaje por Skype™ a AGE_vs_shory
Predeterminado

Detectar el sistema operativo.- Al igual del ejemplo anterior vamos a usar los siguiente:

Código:
<?php
$cabecera
=$_SERVER["HTTP_USER_AGENT"];
if(
eregi("Windows 3.1",$cabecera)){
$sistema="Windows 3.1";
}
elseif(
eregi("Windows 95",$cabecera)){
$sistema="Windows 95";
}
elseif(
eregi("Windows 98",$cabecera)){
$sistema="Windows 98";
}
elseif(
eregi("NT 5.0",$cabecera)){
$sistema="Windows 2000";
}
elseif(
eregi("NT 5.1",$cabecera)){
$sistema="Windows Xp";
}
elseif(
eregi("NT 6.0",$cabecera)){
$sistema="Windows Vista"; //D nos adelantamos al futuro DD
}
elseif (
eregi("NT",$cabecera)){
$sistema="Windows NT";
}
elseif (
eregi("SunOS",$cabecera)){
$sistema="Sun Solaris";
}
elseif (
eregi("Linux",$cabecera)){
$sistema="Linux";
}
elseif (
eregi("OS/2",$cabecera)){
$sistema="OS/2";
}
elseif (
eregi("Mac",$cabecera)){
$sistema="Macintosh";
}
elseif (
eregi("Windows CE",$cabecera)){
$sistema="Windows Mobile 2003";
}
else{
echo
"No ideintificado";
}
?>



Detectar la ubicación (país).- Bueno aquí cambia casi todo :

Código:
<?php
$isp
=$_SERVER['REMOTE_ADDR'];
if(
eregi("mx",gethostbyaddr($isp))){
$ubicacion="México";
}
?>



__________________
Prefiero reinar en el infierno q servir en el cielo

To view links or images in signatures your post count must be 10 or greater. You currently have 0 signatures.

To view links or images in signatures your post count must be 10 or greater. You currently have 0 signatures.


¿GOOG O EVIL?

To view links or images in signatures your post count must be 10 or greater. You currently have 0 signatures.


AGE_vs_shory no está en línea   Responder Citando
  #4 (permalink)
Antiguo 27-sep-2006, 15:54
El Tiburón
 
Avatar de AGE_vs_shory
 
Visto Hace: 19 días 13 horas
Fecha de Ingreso: junio-2005
Ubicación: Colombia
Mensajes: 1.441
Gracias: 0
Enviar un mensaje por Skype™ a AGE_vs_shory
Predeterminado


Y podemos implemetar mas opciones basandonos el la ISO :

Código:
<?php
$isp
=$_SERVER['REMOTE_ADDR'];
if(
eregi("co",gethostbyaddr($isp))){
$ubicacion="Colombia";
}
elseif(
eregi("pr",gethostbyaddr($isp))){
$ubicacion="Puerto Rico";
}
elseif(
eregi("mx",gethostbyaddr($isp))){
$ubicacion="Mexico";
}
elseif(
eregi("ar",gethostbyaddr($isp))){
$ubicacion="Argentina";
}
elseif(
eregi("pe",gethostbyaddr($isp))){
$ubicacion="Perú";
}
elseif(
eregi("ve",gethostbyaddr($isp))){
$ubicacion="Venezuela";
}
elseif(
eregi("cl",gethostbyaddr($isp))){
$ubicacion="Chile";
}
elseif(
eregi("ec",gethostbyaddr($isp))){
$ubicacion="Ecuador";
}
elseif(
eregi("cu",gethostbyaddr($isp))){
$ubicacion="Cuba";
}
elseif(
eregi("gt",gethostbyaddr($isp))){
$ubicacion="Guatemala";
}
elseif(
eregi("bo",gethostbyaddr($isp))){
$ubicacion="Bolivia";
}
elseif(
eregi("do",gethostbyaddr($isp))){
$ubicacion="República Dominicana";
}
elseif(
eregi("sv",gethostbyaddr($isp))){
$ubicacion="El Salvador";
}
elseif(
eregi("hn",gethostbyaddr($isp))){
$ubicacion="Honduras";
}
elseif(
eregi("py",gethostbyaddr($isp))){
$ubicacion="Paraguay";
}
elseif(
eregi("ni",gethostbyaddr($isp))){
$ubicacion="Nicaragua";
}
elseif(
eregi("es",gethostbyaddr($isp))){
$ubicacion="España";
}
elseif(
eregi("cr",gethostbyaddr($isp))){
$ubicacion="Costa Rica";
}
elseif(
eregi("uy",gethostbyaddr($isp))){
$ubicacion="Uruguay";
}
elseif(
eregi("pa",gethostbyaddr($isp))){
$ubicacion="Panamá";
}
elseif(
eregi("bz",gethostbyaddr($isp))){
$ubicacion="Belice";
}
elseif(
eregi("com",gethostbyaddr($isp))){
$ubicacion="Red (com)";
}
elseif(
eregi("net",gethostbyaddr($isp))){
$ubicacion="Red (net)";
}
else{
$ubicacion="No ideintificado";
}
?>



Ya sabemos que es "if()" y que es "eregi()" ok?, ahora veamos la función gethostbyaddr() (la que más me guta ) nos sirve para detectar el isp de navegante. Más info aquí

Saludetes
__________________
Prefiero reinar en el infierno q servir en el cielo

To view links or images in signatures your post count must be 10 or greater. You currently have 0 signatures.

To view links or images in signatures your post count must be 10 or greater. You currently have 0 signatures.


¿GOOG O EVIL?

To view links or images in signatures your post count must be 10 or greater. You currently have 0 signatures.


AGE_vs_shory no está en línea   Responder Citando
  #5 (permalink)
Antiguo 27-sep-2006, 19:58
Killer
 
Avatar de xxhiramxx
 
Visto Hace: 2 meses 25 días
Fecha de Ingreso: febrero-2005
Ubicación: Mexico
Mensajes: 4.112
Gracias: 0
Predeterminado

Ojojojo MAGNIFICO!! ese tuto es magnifico, nunca pense que con el PHP se hacian esas firmas :S
__________________

To view links or images in signatures your post count must be 10 or greater. You currently have 0 signatures.
xxhiramxx no está en línea   Responder Citando
  #6 (permalink)
Antiguo 27-sep-2006, 20:03
El Tiburón
 
Avatar de AGE_vs_shory
 
Visto Hace: 19 días 13 horas
Fecha de Ingreso: junio-2005
Ubicación: Colombia
Mensajes: 1.441
Gracias: 0
Enviar un mensaje por Skype™ a AGE_vs_shory
Predeterminado

jajaja pues pa que vea las maravillas del php si tiene dudas o algo que necesite solamente aviseme
__________________
Prefiero reinar en el infierno q servir en el cielo

To view links or images in signatures your post count must be 10 or greater. You currently have 0 signatures.

To view links or images in signatures your post count must be 10 or greater. You currently have 0 signatures.


¿GOOG O EVIL?

To view links or images in signatures your post count must be 10 or greater. You currently have 0 signatures.


AGE_vs_shory no está en línea   Responder Citando
  #7 (permalink)
Antiguo 28-sep-2006, 19:26
Killer
 
Avatar de xxhiramxx
 
Visto Hace: 2 meses 25 días
Fecha de Ingreso: febrero-2005
Ubicación: Mexico
Mensajes: 4.112
Gracias: 0
Predeterminado

estaba leyendo eso de los paises y tengo una duda, si alguien esta en un pais que no has marcado como opción, que sale, eso de NO IDENTIFICADO??
__________________

To view links or images in signatures your post count must be 10 or greater. You currently have 0 signatures.
xxhiramxx no está en línea   Responder Citando
  #8 (permalink)
Antiguo 28-sep-2006, 19:29
El Tiburón
 
Avatar de AGE_vs_shory
 
Visto Hace: 19 días 13 horas
Fecha de Ingreso: junio-2005
Ubicación: Colombia
Mensajes: 1.441
Gracias: 0
Enviar un mensaje por Skype™ a AGE_vs_shory
Predeterminado

Cita:
Iniciado por xxhiramxx Ver Mensaje
estaba leyendo eso de los paises y tengo una duda, si alguien esta en un pais que no has marcado como opción, que sale, eso de NO IDENTIFICADO??
yes asi es sale No identificado claro usted puede editarlo por en que puto pais vives tu o cosas asi jajaja.

y si deseas agregar ams paises solamente agrega esto

}
elseif(
eregi("co",gethostbyaddr($isp))){
$ubicacion="aca el nombre del pais";
}

:despide:
__________________
Prefiero reinar en el infierno q servir en el cielo

To view links or images in signatures your post count must be 10 or greater. You currently have 0 signatures.

To view links or images in signatures your post count must be 10 or greater. You currently have 0 signatures.


¿GOOG O EVIL?

To view links or images in signatures your post count must be 10 or greater. You currently have 0 signatures.


AGE_vs_shory no está en línea   Responder Citando
  #9 (permalink)
Antiguo 29-sep-2006, 00:17
The MAN
 
Avatar de krna
 
Visto Hace: 17 horas 24 mins
Fecha de Ingreso: marzo-2006
Ubicación: Mexico
Mensajes: 1.048
Gracias: 7
Enviar un mensaje por MSN a krna
Predeterminado

Vez danny esta seccion en el foro es buenisima ami me encanto
__________________

To view links or images in signatures your post count must be 10 or greater. You currently have 0 signatures.
krna no está en línea   Responder Citando
  #10 (permalink)
Antiguo 29-sep-2006, 02:06
El Tiburón
 
Avatar de AGE_vs_shory
 
Visto Hace: 19 días 13 horas
Fecha de Ingreso: junio-2005
Ubicación: Colombia
Mensajes: 1.441
Gracias: 0
Enviar un mensaje por Skype™ a AGE_vs_shory
Predeterminado

jajajaja bueno entonces espero verlo de seguido por aca
__________________
Prefiero reinar en el infierno q servir en el cielo

To view links or images in signatures your post count must be 10 or greater. You currently have 0 signatures.

To view links or images in signatures your post count must be 10 or greater. You currently have 0 signatures.


¿GOOG O EVIL?

To view links or images in signatures your post count must be 10 or greater. You currently have 0 signatures.


AGE_vs_shory no está en línea   Responder Citando
Respuesta

Herramientas

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los Códigos BB están Activado
Las Caritas están Activado
[IMG] está Activado
El Código HTML está Desactivado
Trackbacks are Activado
Pingbacks are Activado
Refbacks are Activado


La franja horaria es GMT -3. Ahora son las 12:29.
Desarrollado por: vBulletin® Versión 3.7.4
Derechos de Autor ©2000 - 2008, Jelsoft Enterprises Ltd.
Template-Modifications by TMS
 
Inicio | Historial del Foro | Contacto | Politica de Privacidad | Términos y condiciones | Contratar Publicidad
1,770 Días Online
 
Propiedad de High Level Webs | Creación de Daniel Santiago Meléndez
© MundoReggaeton.com 2004-2008. Todos los derechos reservados.