Anonimizador de links

Iniciado por jdc, 5 Enero 2010, 04:55 AM

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

Castg!

Cita de: el-pollo en  5 Enero 2010, 18:34 PM
Cita de: cɐstg en  5 Enero 2010, 18:02 PM
no lo probe :P pero pense que como decia "cambia esto a la cadena" pense que si esto no estaba en la cadena daba error , sorry:p

¬¬ y yo buscando el error xDDDDDD


como te dije no tengo el wamp :-(

jdc

Cita de: turion en  5 Enero 2010, 18:44 PM
no no es eso digo cuando tienesque ingresar la url para anonimizarla no te deja en unos 3 segundos se actualiza la pagina...  me explico??

Nop eso es problema de tu navegador creo, la unica vez que se recarga la pagina es cuando $page esta definido osea cuando estas en index.php?page=... si estas al principio no tendra porque actualizarse. En total son 3 paginas diferentes en una xD pero solo la tercera se actualiza :)

Cita de: cɐstg en  5 Enero 2010, 18:48 PM
Cita de: el-pollo en  5 Enero 2010, 18:34 PM
Cita de: cɐstg en  5 Enero 2010, 18:02 PM
no lo probe :P pero pense que como decia "cambia esto a la cadena" pense que si esto no estaba en la cadena daba error , sorry:p

¬¬ y yo buscando el error xDDDDDD


como te dije no tengo el wamp :-(

Ok te perdono... jajajaja

~ Yoya ~

#12
Um... yo usaría preg_replace(), y indicaria al comienso de la cadena a borrar, asi evitaria tener problemas en el futuro...
Código (php) [Seleccionar]
<?php
$link
[0] = 'http://www.google.com';
$link[1] = 'Http://www.google.com';
foreach (
$link as $links){
$url preg_replace("/^http:\/\//i","",$links);
echo 
$url;
}
?>

Ya que si mi url es Http://www.google.com tu funcion no podria indentificarla...
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

jdc

#13
Cita de: yoyahack en  5 Enero 2010, 20:35 PM
Um... yo usaría preg_replace(), y indicaria al comienso de la cadena a borrar, asi evitaria tener problemas en el futuro...
Código (php) [Seleccionar]
<?php
$link
[0] = 'http://www.google.com';
$link[1] = 'Http://www.google.com';
foreach (
$link as $links){
$url preg_replace("/^http:\/\//i","",$links);
echo 
$url;
}
?>

Ya que si mi url es Http://www.google.com tu funcion no podria indentificarla...

Bajo ese concepto... que no habia pensado xD mejor usar la funcion de php para mayusculas a minusculas($link = strtolower($link);), asi no uso un array y mi funcion queda funcionando otra vez ya que por ejemplo sino tendria que agregar al array hTtp://, htTp://, HTTP:// y todas las combinaciones, en cambio  von $link = strtolower($link); me evito todo de una sola vez :) Gracias!

La funcion quedo asi:

Código (php) [Seleccionar]
function limpia($a){
/* Paso a minusculas */
$a = strtolower($a);
/* Quita http:// */
$a =  str_replace("http://","",$a);
/* Limpia caracteres html */
$a =  htmlspecialchars($a, ENT_QUOTES);
return $a;
}


Ya esta modificada arriba ;)

invisible_hack

Anda, no habia visto el post, pues veo que tomaste en cuenta lo que te dije en WebComparte de cifrar la url a la que redirecciona jejeje, muy buena esa, aunque como ya se sabe, si se lo pasas a alguien que controle un poco, podría descifrar a donde lleva el link, pero bueno, tendría que saber por lo menos qué narices es Base64 jejeje, por lo menos ya no está tan a la vista como cuando ponías la url a pelo al final  ;D

Además, la encriptacion en base64 supongo que bastará para confundir y camuflar los links de MegaUpload etc, asi que muy bien  ;-)

Un saludo.
"Si no visitas mi blog, Chuck te dará una patada giratoria"

jdc

Arregle 2 errores, eso de que no se pueda meter hTtP:// y ahora soporta https:// o HtTpS:// xD

Les dejo el script arreglado para que comparen

Código (php) [Seleccionar]

<?php
error_reporting
(0);
/* Limpia la variable que queramos */
function limpia($a){
/* array con los dos valores que quitare */
$borrar = array('https://','http://'); 
/* el array como variable */
$bas $borrar;
/* los valores del array se reemplazaran por vacio */
$new "";
/* se quitan los valores del array xD */
$a str_ireplace($bas,$new$a);
/* se inutilizan tags html */
$a =  htmlspecialchars($aENT_QUOTES);
/* se muestra $a ¬¬ */
return $a;
}
 
/* Obtiene el nombre de la pagina en que estara el script */
$servidor $_SERVER['HTTP_HOST'];
/* Obtiene la carpeta donde esta el script */
$path $_SERVER['PHP_SELF'];
/* obtiene el valor de nuestra variable xD */
$page = @$_GET['page'];
$var = @$_GET['url'];
$t_var substr($var0,8); 
$https strtolower($t_var);
if(
$https == 'https://'){  
    
$http '1'
}else{ 
    
$http '2';
}
 
/* Limpia la variable usando la funcion anterior */
$var limpia($var);
$page limpia($page);

$var base64_encode($var);
 
/* Si $var esta vacia se muestra el formulario 
para ingresar una direccion ;) */
 
/* Si $page esta vacia entonces pregunta por $var xD */
If (empty($page)){
/* Si $var esta vacia muestra el formulario para ingresar una direccion */
if(empty($var)){
echo '
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Anonimizer - Inicio</title>
</head>
<body>
<form action="" method="get">
<b>Ingrese una direcci&oacute;n</b><br />
<input type="text" name="url">
<input type="submit" value="Anonimizar!">
</form>
</body>
</html>
'
;
/* Si $var no esta vacia muestra los enlaces para que el usuario sepa que enlaces
poner en foros o en su sitio */
}else{
echo $https;
echo $http;
echo '<br />';
echo $t_var;
echo '
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Anonimizer - Obtener</title>
</head>
<body>
<form>
<b>Enlace directo:</b><br />
<input size="60" type="text" value="http://'
,$servidor,$path,'?page=',$var,'&h=',$http,'"><br />
<br /><b>Enlace HTML para sitios web y blogs:</b><br />
<textarea rows="4" cols="50"><a href="http://'
,$servidor,$path,'?page=',$var,'&h=',$http,'" title="Enlace anonimo" target="_blank">Enlace anonimizado!</a></textarea><br />
<br /><b>Enlace Para foros (bbcode):</b><br />
<textarea rows="4" cols="50">[url=http://'
,$servidor,$path,'?page=',$var,'&h=',$http,']Enlace anonimizado![/url]</textarea><br />
</form><br /><br />
<a href="http://'
,$servidor,$path,'?page=',$var,'&h=',$http,'" target="_blank">Probar enlace</a>
</body>
</html>
'
;
}
/* Si $page tiene un valor entonces muestra el valor anonimizado xD
si el valor no es correcto entonces se jode el anonimizador malintencionado ¬¬ */
}else{
$page base64_decode($page);
$h = @$_GET['h'];
if (empty($h)){
$h 'http://';
}
else if($h == '1')
{
$h 'https://';
}
else
{
$h 'http://';
}
echo '
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<META HTTP-EQUIV="REFRESH" CONTENT="6;URL='
,$h,$page,'">
<title>Anonimizer - Obtener</title>
</head>
Por favor espere 5 segundos o haga click <a href="'
,$h,$page,'">aqui</a>
</body>
</html>
'
;
}
?>



Lo de pasarlo a minusculas del script de arriba mataba ciertos links asi que no sirve, lo quito tambien :D

Saludos

Castg!

perfecto, mañana lo pruebo, te sigo diciendo de usar explode y array xD! suerte

jdc

Cita de: cɐstg en  6 Enero 2010, 06:46 AM
perfecto, mañana lo pruebo, te sigo diciendo de usar explode y array xD! suerte

use array ¬¬

Citar$borrar = array('https://','http://');

xD bueno que mas? jajajajaja es array al fin y al cabo ¬¬

~ Yoya ~

Estas haciendo el code demasiado largo, deberias optimisarlo, porque segiras haciendolo mas largo, por lo menos la funcion limpiar que se puede solucionar con 3 0 4 lineas... Si piensas actualisarlo, optimisalo lo mas que puedas.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

jdc

Que podría hacer para optimizarlo?