Acortador de links!

Iniciado por Castg!, 19 Febrero 2010, 23:15 PM

0 Miembros y 1 Visitante están viendo este tema.

Castg!

bueno, me decidi a postear el codigo de un acortador de links que hice hace poco. tuve problemas con el dominio pero ya se terminaron los tramites. el resto de la web esta en pleno desarrollo xD! pero bueno. para usarlo pueden entrar al link: http://castg.com.ar/tiny osea, para ser un acortador es un toq grande el dominio xD pero esta bueno para las sqli o para poner por ejemplo post de elhacker en el subnick del msn xD! jejejej bueno. pero ademas de poner mi link, les dejo el codigo fuente:
[les aviso que es re simple, puede tener vulnerabilidades, igual con janito24 ya andubimos probando algo, pero les agradeceria que me pongan otras mas que encuentren. si encuentran algo como para hacer flood ¬¬ como janito  >:( tengan encuenta que no es un servidor en mi pc, asi que se las arreglan con el host, igualmente es gratiutio!!!]

insert.php (ingresa la direccion a la base de datos, si ya existe, devuelve la clave de la misma) tambien guarda la ip y el dia con la hora... [para el flood xD!]
Código (php) [Seleccionar]
<?php
$ref
=$_SERVER["HTTP_REFERER"];
$svn=$_SERVER['SERVER_NAME'];
if(!
preg_match("/^(http:\/\/((www\.)?$svn))/"$ref)){
echo 
chr(172).chr(172);
exit();
}
if(isset(
$_GET['uri_p']) && $_GET['uri_p']!=""){
$uri_p $_REQUEST['uri_p'];
if(!
preg_match("/^(ht|f)tp(s)?:\/\//"$uri_p)){
$uri_p "http://".$uri_p;
}
require(
'func.php');
$mysql mysql_connect("host","user","pass");
mysql_select_db("basededatos"$mysql);
$nodupli mysql_query("SELECT * FROM datos WHERE url='".urlencode($uri_p)."'"$mysql);
if(
mysql_num_rows($nodupli)!=0){
$resultado_nd=mysql_fetch_array($nodupli);
$nuevadir="http://".$_SERVER["SERVER_NAME"].str_replace("insert.php","",$_SERVER["PHP_SELF"]).$resultado_nd['token'];
echo 
$nuevadir;
}else{
$token_f=clave();
$nodupli mysql_query("SELECT * FROM datos WHERE token='$token_f'");
while(
mysql_num_rows($nodupli)!=0){
$token_f=clave();
$nodupli mysql_query("SELECT * FROM datos WHERE token='$token_f'");
}
mysql_query("INSERT INTO datos (url,token,ip,date) VALUES ('".urlencode($uri_p)."','$token_f','".$_SERVER['REMOTE_ADDR']."','".date("j \d\e\l n \d\e Y \a \l\a\s h:i:s")."')"$mysql);
$nuevadir="http://".$_SERVER["SERVER_NAME"].str_replace("insert.php","",$_SERVER["PHP_SELF"]).$token_f;
echo 
$nuevadir;
}
}else{
echo 
"Ingresa la direccion";
}
?>



index.php (el ajax que utilizo es uno que encontre por ahi :p ami en firefox me anda bien, no probe en otros navegadores... si tienen un mejor metodo aca toy :P)
Código (php) [Seleccionar]
<?php
$pag 
"
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html>
<head>
<title>Castg! - Anonimizador de links</title>
<link href=\"style.css\" rel=\"stylesheet\" type=\"text/css\" />
<script type=\"text/javascript\">
function insertar(url){ 
     div_result = document.getElementById('result');
     peti=getXMLHttp();  
     peti.open(\"GET\", \"insert.php?uri_p=\"+url);  
     peti.onreadystatechange=function() {  
        if (peti.readyState==4) { 
//saco la ***** de publicidad 
            if(peti.responseText.split(\"\\n\")){
                resultado=peti.responseText.split(\"\\n\");
            div_result.value = resultado[0];
            }else{
            div_result.value = peti.responseText;
            }
        }  
    }  
    peti.send(null);  
}
function  getXMLHttp()
{
  var xmlHttp

  try
  {
    //Firefox, Opera 8.0+, Safari
    xmlHttp = new XMLHttpRequest();
  }
  catch(e)
  {
    //Internet Explorer
    try
    {
      xmlHttp = new ActiveXObject(\"Msxml2.XMLHTTP\");
    }
    catch(e)
    {
      try
      {
        xmlHttp = new ActiveXObject(\"Microsoft.XMLHTTP\");
      }
      catch(e)
      {
        alert(\"Your browser does not support AJAX!\")
        return false;
      }
    }
  }
  return xmlHttp;
}
</script>
</head>
<body>
<div id=\"on\">
<input type=\"text\" name=\"uri_p\" id=\"uri_p\" value=\"Ingresa la direccion\" autocomplete=\"off\" onFocus=\"if(this.value=='Ingresa la direccion'){this.value='';}\" style=\"background-color: #FFFFFF; font-size:10pt; color:#2F2F7B;\">
<input type=\"button\" onclick=\"insertar(document.getElementById('uri_p').value)\" value=\"Anonimizar!\">
<div>
<br/>
<p><span class=\"Estilo1\">Tinycastg:
  </span><input name=\"result\" type=\"text\" id=\"result\" onClick=\"if(this.value!=''){this.select();}\" style=\"background-color: #CCCCCC; font-size:10pt; color: #222299;\" readonly=\"readonly\" >
</div>
</div>
</body>
</html>
"
;
if(!isset(
$_GET['t'])){
echo 
$pag;
}else{
$mysql mysql_connect("host","user","pass");
mysql_select_db("basededatos"$mysql);
$url mysql_query("SELECT * FROM datos WHERE token='".$_GET['t']."'");
if(
mysql_num_rows($url)!=0){
$url mysql_fetch_array($url);
header("Location: ".urldecode($url['url']));
}else{
echo 
$pag;
}
}
?>



func.php (hay una sola funcion xD pero no tenia ganas de cambiar todo el code. estuve buscando alguna encriptacion corta de unos 7 u 8 caracteres peo no encontre. asi que se me ocurrio esta forma para poder elegir la cantidad de caracteres que quiera...)

Código (php) [Seleccionar]
<?php
function clave(){
$chars='7539846210qazwsxedcrfvtgbyhnu7539846210jmikolpPOIUYTREWQALKJHGFDSMNBVCXZ';
$l_chars=strlen($chars);
$l_max=8;
$clave='';
for(
$i=0;$i<$l_max;$i++){
$l_rand=rand(1,$l_chars);
$clave .= substr($chars,$l_rand,1);
}
return 
$clave;
}
?>



los estilos quedan a gusto propio.. les dejo tambien por ultimo el .htaccess. esta colocado en el mismo directorio que los archivos...

Código (apache) [Seleccionar]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#estos dos comprueban que no sean ni archivos ni directorios... lo demas ya se sabe...
RewriteEngine on
RewriteBase /tiny
RewriteRule ^(.*) index.php?t=$1
#reescribe xD, toma los datos por expresion regular y los pasa a la otra cadena (como preg_replace)



bueno, este es mi codigo. pronto estara la gran firma que te dice todos tus datos :D:D te va a decir los datos tuyos del foro y otras cosas mas :D:D: jejejje >:D

un saludo grande a todos y espero que les sea util para algo ...

KrossPock

Esta bueno...  ya me va a servir algun dia  >:D :P


fede_cp

Quedo bueno el script!, los scripts mejor dicho, lo unico que cambiaria seria el seleccionado con ajax, me parece muy largo codigo para una funcion como esas.


saludos!
somos lo que hacemos para cambiar lo que somos

http://elhackerblog.blogspot.com el blog de elhacker.net!!

Castg!

osea, por ahora no aprendi ajax xD! eso es un codigo generico de por internet, y es largo por la compatibilidad de los navegadores.-...

fede_cp

jaja, claro lo que decia es que no es necesariamente en ajax, en javascript seguro que se puede

compatibilidad de navegadores != microsoft internet explorer


saludos!
somos lo que hacemos para cambiar lo que somos

http://elhackerblog.blogspot.com el blog de elhacker.net!!