Crear acortador de urls en php, mysql y jquery
creamos la tabla redirects:
CREATE TABLE IF NOT EXISTS `redirects` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`code` varchar(30) COLLATE utf8_spanish_ci NOT NULL,
`url` longtext COLLATE utf8_spanish_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_spanish_ci AUTO_INCREMENT=11 ;
creamos el archivo de conexion[connect.php]:
<?php
#conectamos con la base datos
$con = mysql_connect("localhost", 'tu usuario', 'tu contraseña');
mysql_select_db('tu base de datos', $con);
creamos archivo para crear redirecciones[create_redirect.php]:
<?php
#le pedimos el archivo de conexion
require_once('connect.php');
#obtenemos el url a acortar
$url = 'http://' . $_GET["url"];
#creamos clave inrrepetible
function crypto_rand_secure($min, $max) {
$range = $max - $min;
if ($range < 0) return $min;
$log = log($range, 2);
$bytes = (int) ($log / 8) + 1;
$bits = (int) $log + 1;
$filter = (int) (1 << $bits) - 1;
do {
$rnd = hexdec(bin2hex(openssl_random_pseudo_bytes($bytes)));
$rnd = $rnd & $filter;
} while ($rnd >= $range);
return $min + $rnd;
}
#generamos coodigo a partir de la clave secreta
function getToken($length=32){
$token = "";
$codeAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$codeAlphabet.= "abcdefghijklmnopqrstuvwxyz";
$codeAlphabet.= "0123456789";
for($i=0;$i<$length;$i++){
$token .= $codeAlphabet[crypto_rand_secure(0,strlen($codeAlphabet))];
}
return $token;
}
$code = getToken(5);
#lo insertamos el url y el codigo y en la tabla y lo imprimos el url
mysql_query("INSERT INTO redirects(code, url) VALUES('{$code}', '{$url}')", $con);
echo 'http://localhost/?r='. $code;
creamos el index el inicio[index.php]:
<?php
#si existe el codigo para redireccionar
if(isset($_GET['r']))
{
#pedimos el archivo de conexion
require_once("connect.php");
#obtenemos el codigo
$code = $_GET["r"];
#lo buscamos en la base de datos
$result = mysql_query("SELECT * FROM redirects WHERE code='$code'", $con);
#si esta lo redireccionamos hacia al url de lo contrario lo mandamos al index
if($result) {
while($row = mysql_fetch_array($result)) {
header("Location: ".$row['url']);
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Redirecciones</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<meta charset="utf-8">
<style type="text/css">
body {
padding: 0px;
margin: 0px;
text-align: center;
background-color: #cececE;
}
* {
margin: 0px;
padding: 0px;
}
.form {
box-shadow: 3px 3px 3px;
padding: 10px;
width: 500px;
margin-left: 35%;
background-color: white;
}
.form input[type='text'] {
width: 400px;
}
</style>
</head>
<body>
<div class="form">
<h2>Crear Redireccion:</h2>
<form id="acortar" method="get" action="create_redirect.php">
Acortar: <input type="text" id="url" placeholder="http://" name="url" required/><input type="submit" value="=> <=" />
</form>
<script type="text/javascript">
$('#acortar').submit(function(e) {
e.preventDefault();
$.ajax({
url: $(this).attr('action'),
type: 'get',
data: $(this).serialize(),
beforeSend: function(){
$('#url').val('Acortando...');
},
success: function(data){
$('#url').val(data);
}
});
});
</script>
</div>
</body>
</html>
Esta es mi pagina con el mismo sistema:
re.vv.si
link taringa:
http://re.vv.si/?r=Kixtt
nos vemos