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 (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!]
<?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)
<?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...)
<?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...
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 ...
Esta bueno... ya me va a servir algun dia >:D :P
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!
osea, por ahora no aprendi ajax xD! eso es un codigo generico de por internet, y es largo por la compatibilidad de los navegadores.-...
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!
no te entiendo lo que queres decir :-\