Tutorial: Crear un acortador de URL en PHP y MySQL - Parte 2

cicklow

Admin
Beta
Verificado con documento
Verificación en dos pasos activada
Desde
30 May 2011
Mensajes
57
Crédito(s)
1
Puntos
25.567
Bueno recordando el tutorial anterior (http://forobeta.com/tutoriales/116748-crear-acortador-de-url-php-y-mysql.html) vamos a hacerle unas modificaciones para poner publicidad estilo adf.ly y publicidad por click (ver ejemplo)

Mas que nada les servirá para uso propio. Ya que no se da esta opción al usuario

Primero editaremos el .htaccess con estos datos:
Insertar CODE, HTML o PHP:
RewriteRule ^p/([0-9-a-z-A-Z-_]+)$ /go2.php?id=$1&tipo=p [L]
RewriteRule ^i/([0-9-a-z-A-Z-_]+)$ /go2.php?id=$1&tipo=i [L]
Creamos un file llamado go2.php
PHP:
<?php
    @set_time_limit();
    include('db.php');
    include('noin.php');

    $SEC = new secure();
    $SEC->secureGlobals();

    //verificamos si el hash existe en nuestra base de datos
    $SQL = @mysql_query("SELECT * FROM `acortador` WHERE `char`='".$_GET['id']."'");
    $ROW = @mysql_fetch_array($SQL);

    //Verificamos que tipo de publicidad a mostrar
    if($ROW['url']!=""){
        _suma($_GET['id']);
	if($_GET['tipo']!="i") include('tpl/publi.php'); else include('tpl/publi2.php');
        die();
    }else{
        //sino existe el hash en nuestra BD redireccionamos al index de nuestro sitio
        header('location: http://cicklow.net/acortador/');
        die();
    }

    //funcion encargada de sumar una visita al hash
    function _suma($U){
        mysql_query("UPDATE `acortador` SET stat=(stat+1) WHERE `char`='".$U."'");
    }
?>
Lo que hacemos es mostrar publicidad estilo adf.ly (Acortador con publicidad 2)
o publicidad por click (Acortador con publicidad)

Como ven lo que cambia no tenemos que editar nada del acortador anterior, solo agregaremos una i antes del hash si queremos publiciad como iframe (adf.ly) o una p si queremos publicidad por click.

Ahora creamos publi.php (encargado de la publicidad por click)
HTML:
<!DOCTYPE html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<style>
	body {
		font: normal 15px auto Verdana, Arial, Helvetica, sans-serif,"Trebuchet MS";
		color: #4f6b72;
		background: #E6EAE9;
	}
	</style>
	<title>Acortador con publicidad</title>
</head>
<body>
	<center>
		<div style="width:700px;margin-top:105px;padding:15px;border:solid 1px #4682B4;">
			<div style="display:inline;width:600px;height:100px;padding:5px;">
				<img src="http://api1.thumbalizr.com/?url=<?=urlencode($ROW['url']);?>&width=250" style="float:left;padding:15px;">
				<div style="float:left;padding:15px;text-align:left;">
					<b>Visitas</b>: <?=$ROW['stat'];?><br/>
					<b>Link</b>: <a href="<?=$ROW['url'];?>" target="_blank"><?=substr($ROW['url'],0,400);?>...</a>
				</div>
			</div>
			<div style="clear: both;"></div>
			<div style="display:inline;width:336px;height:280px;padding:5px;"><img src="https://www.google.com/help/hc/images/adsense/adsense_185665_adformat-text_336x280_es.png"></div>
			<div style="display:inline;width:336px;height:280px;padding:5px;"><img src="https://www.google.com/help/hc/images/adsense/adsense_185665_adformat-text_336x280_es.png"></div>
		</div>
	</center>
</body>
</html>
Lo que hacemos aca es mostrar adsense (pueden usar otra publicidad) y una vista previa de la url, la cantidad de visitas y la url para que hagan click.

Ahora creamos publi2.php (encargado de publicidad por iframe)
HTML:
<!DOCTYPE html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<style>
	html, body { min-height: 100%; }
	body {
		font: normal 15px auto Verdana, Arial, Helvetica, sans-serif,"Trebuchet MS";
		color: #4f6b72;
		background: #E6EAE9;
		margin:0px;
		height:100%;
		min-width:980px;
		overflow:hidden; 
		padding:0px;
	}
	</style>
	<title>Acortador con publicidad 2</title>
	<script language="JavaScript">
		<!--
		if (top.location != self.location)top.location = self.location;
		//-->
	</script>
</head>
<body leftMargin='0' topMargin='0' marginwidth='0'  marginheight='0' scroll='no' style="overflow:hidden">
	<center>
		<div style="width:100%;height:40px;background-color:#B0C4DE;">
			<div style="padding:10px;float:left;">Logo</div>
			<div style="padding:10px;float:right;color:#FFFFFF;" id="contador"></div>
		</div>
		<div style="clear: both;"></div>
		<iframe src="http://cicklow.net/acortador/tpl/iframe.html" width="100%" height="100%" frameborder="0" allowtransparency="true" style="position:fixed;top:40px;left:0px;bottom:0px;width:100%;" scrolling="auto"></iframe>
	</center>
	<script type="text/javascript"> 
		var c = 6;
		var t;
		if(document.loaded) {
			Contar();
		} else {
			if (window.addEventListener) {
				window.addEventListener('load', Contar, false);
			} else {
				window.attachEvent('onload', Contar);
			}
		}


		function Contar(){
			c--;
			document.getElementById('contador').innerHTML = 'Espere <b>' + c + '</b> segundos';
			t = setTimeout(Contar,1000);
			if(c<=0){
				clearTimeout(t);
				document.getElementById('contador').innerHTML = '<a href="<?=$ROW['url'];?>" target="_top">Saltar Publicidad</a>';
			}
		}
	</script>
</body>
</html>
Usando un estilo parecido a adf-ly lo que hacemos es usar un contador de 5 segundos para luego cuando este contador llega a 0 mostrar el link. Y abajo mostramos una web en el iframe (editar tpl/iframe.html)

Saludos y espero que les guste :)
Descarga:
Insertar CODE, HTML o PHP:
http://www.mediafire.com/?o00n7l1smlwlf8f
Nuevo Código 17/09/2012
Plugin: http://forobeta.com/plugins-wp/129225-convertir-links-externos-dinero.html
Lo que agregaremos ahora es otro complemento que solo le pasaremos la url como parámetro. Ejemplo:
Insertar CODE, HTML o PHP:
http://url.ly/go3.php?url=http://www.google.com.ar
Y se usara el tipo de acortador con publicidad:
Creamos go3.php
PHP:
<?php
    @set_time_limit();
    include('noin.php');

    $SEC = new secure();
    $SEC->secureGlobals();

    if($_GET['url']!=""){
	include('tpl/publi3.php');
        die();
    }else{
        //sino existe el hash en nuestra BD redireccionamos al index de nuestro sitio
        header('location: http://cicklow.net/acortador/');
        die();
    }
?>
Creamos tpl/publi3.php
HTML:
<!DOCTYPE html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<style>
	body {
		font: normal 15px auto Verdana, Arial, Helvetica, sans-serif,"Trebuchet MS";
		color: #4f6b72;
		background: #E6EAE9;
	}
	</style>
	<title>Acortador con publicidad</title>
</head>
<body>
	<center>
		<div style="width:700px;margin-top:105px;padding:15px;border:solid 1px #4682B4;">
			<div style="display:inline;width:600px;height:100px;padding:5px;">
				<img src="http://api1.thumbalizr.com/?url=<?=urlencode($_GET['url']);?>&width=250" style="float:left;padding:15px;">
				<div style="float:left;padding:15px;text-align:left;">
					<b>Link</b>: <a href="<?=$_GET['url'];?>" target="_blank"><?=substr($_GET['url'],0,400);?>...</a>
				</div>
			</div>
			<div style="clear: both;"></div>
			<div style="display:inline;width:336px;height:280px;padding:5px;"><img src="https://www.google.com/help/hc/images/adsense/adsense_185665_adformat-text_336x280_es.png"></div>
			<div style="display:inline;width:336px;height:280px;padding:5px;"><img src="https://www.google.com/help/hc/images/adsense/adsense_185665_adformat-text_336x280_es.png"></div>
		</div>
	</center>
</body>
</html>
 
Última edición:

editor

Gamma
Verificación en dos pasos desactivada
Desde
28 Feb 2012
Mensajes
199
Crédito(s)
0
Puntos
58
para mi esta complicado todo esto, pero nada es imposible.. siempre he querido saber como hacerlo este es mi oportunidad voy a probarlo... gracias por la tuto..
 

bola6

Gamma
Diseñador
Verificación en dos pasos desactivada
Desde
16 May 2011
Mensajes
487
Crédito(s)
1
Puntos
71
Muchas gracias :encouragement:
 

NetReyes

Eta
Verificación en dos pasos desactivada
Desde
16 Ago 2012
Mensajes
1.347
Edad
26
Crédito(s)
1
Puntos
1.058
Gracias amigo, pero puedo hacer como adf.ly que pongo un script en mi web y convierte todos los enlaces automaticamente para que los lleve al acortador, o que pueda excluir los dominios que no necesito.

http://forobeta.com/members/cicklow.html@cicklow
 

cicklow

Admin
Beta
Verificado con documento
Verificación en dos pasos activada
Desde
30 May 2011
Mensajes
57
Crédito(s)
1
Puntos
25.567

cicklow

Admin
Beta
Verificado con documento
Verificación en dos pasos activada
Desde
30 May 2011
Mensajes
57
Crédito(s)
1
Puntos
25.567
Hola, te ha quedado muy bien. ¿Como le hiciste para poner adsense?
Si te fijas el "adsense" son imagenes, el usuario todavia no edito el codigo para poner adsense, sino que son imagenes de los banners :)
 

Mustang007

Eta
Verificación en dos pasos desactivada
Desde
3 Jun 2012
Mensajes
1.321
Crédito(s)
0
Puntos
1.014
Si te fijas el "adsense" son imagenes, el usuario todavia no edito el codigo para poner adsense, sino que son imagenes de los banners :)
:p7: Es verdad jeje. Pero... ¿es aceptado por Adsense poner anuncios en esta clase de acortadores? Sino, también se pudiera usar otro tipo de publicidad.
 

cicklow

Admin
Beta
Verificado con documento
Verificación en dos pasos activada
Desde
30 May 2011
Mensajes
57
Crédito(s)
1
Puntos
25.567
:p7: Es verdad jeje. Pero... ¿es aceptado por Adsense poner anuncios en esta clase de acortadores? Sino, también se pudiera usar otro tipo de publicidad.
no creo que tengas problema. Ya que no estas infringiendo nada. Lo unico que seria es que no tiene mucho contenido... pero por lo demas no hay drama.
 

Joker

Beta
Social Media
Verificación en dos pasos desactivada
Desde
10 Jun 2012
Mensajes
61
Crédito(s)
0
Puntos
0
Vaya amigo, gracias por el aporte. Muy bueno. :encouragement:
 

deskpro123

Zeta
CPA
Verificación en dos pasos desactivada
Verificado por Whatsapp
Desde
5 Jun 2012
Mensajes
1.852
Crédito(s)
0
Puntos
6.506
Exelente aporte :D

Alguien lo usa con adsense??? Que tal??? ningun banneo??? He visto que en scriptmafia lo usan y no los bannean jeje.

Saludos espero respuestas.
 

Saloz

Alfa
Verificación en dos pasos desactivada
Desde
16 Sep 2012
Mensajes
15
Crédito(s)
0
Puntos
0
Muy buen aporte, me hacía bastante falta para mi blog. Gracias.
 

jerelesi

VIP
Lambda
Social Media
Verificación en dos pasos desactivada
Verificado por Whatsapp
Desde
4 Nov 2011
Mensajes
2.903
Edad
37
Crédito(s)
5
Puntos
1.449
Muy bueno gracias, pero me uno a la pregunta, de quien lo a utilizado sin que lo baneen de adsense

Enviado desde mi XT615 usando Tapatalk 2
 

Jorge Slayer

Delta
SEO
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
5 Jul 2011
Mensajes
616
Crédito(s)
0
Puntos
33
Buen aporte, sin duda :encouragement:

Sobre el ban de Adsense, siempre es recomendable consultar antes con Adsense si es o no compatible este sistema con su publicidad, para evitar complicaciones (y para no perder horas de sueño de paso :welcoming:).
 

sondeoh

Eta
Programador
Verificación en dos pasos desactivada
Desde
23 Nov 2012
Mensajes
1.411
Crédito(s)
1
Puntos
288
unas criticas constructivas:

algunas cosas malas:

1. El uso de comillas dobles en el codigo php

2. El uso de comillas dobles en las querys

3. El tapar errores usando @

4. la mezcla de OOP con estructurada

5. al utilizar mysql_fetch_array se extrae la información en un array el doble de largo.

6. en los IFS podrias haber usado isset() or empty()


eso es todo :encouragement:

no lo hago ni para bardear ni nada solo es una critica constructiva :encouragement:
 

Arriba