Hola de nuevo.
He estado trasteando y he sacado bastante, lo que no estoy seguro de que este bien... Ni bien ordenado. Lo que he observado es que al comprobar si existe el registro en la base de datos da igual que se ponga "x1aBd" que "X1AbD" puesto que no distingue entre mayúsculas y minúsculas. Hay alguna forma de hacer que haga distinción? es decir, case sensitive?
Este es el codigo que tengo hasta ahora.
Código PHP:
<?php
require_once("include/connect.php");
$range = "0";
$lurl = $_GET['lurl'];
date_default_timezone_set("Europe/Madrid");
$date = date("d/m/Y");
$hits = "1";
$regcountquery = "SELECT count(*) FROM wst_uss"; //cuento los registros de la table
$regcountresult = mysql_query($regcountquery);
$regcountshow = mysql_fetch_array($regcountresult);
$regcount = $regcountshow[0];
if ($regcount <= "5") { $range = "2"; } //segun los registros, selecciono x o y dígitos
if ($regcount >= "6" && $regcount <= "10") { $range = "3"; }
if ($regcount >= "11" && $regcount <= "20") { $range = "4"; }
function getsurl() {
$surl = substr(str_shuffle('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'), 0, $range); //esto lo he convertido en funciona para poder llamarla, no se si esta bien.
}
getsurl(); //llamo a la función para obtener la short url.
if (strlen($lurl) && filter_var($lurl, FILTER_VALIDATE_URL)) {
$existquery = "SELECT wst_surl FROM wst_uss WHERE wst_surl='$surl'";
$existqueryresult = mysql_query($existquery); //compruebo si la short url generada existe o no
$exist = mysql_num_rows($existqueryresult);
if ($exist = 0 ) { //sino existe inserto en la db
mysql_query("INSERT INTO wst_uss (wst_lurl, wst_surl, wst_date, wst_hits) VALUES
(
'".addslashes($lurl)."',
'".$surl."',
'".$date."',
'".$hits."'
)
");
}
else {
getsurl(); //si existe, repito la función, tampoco estoy seguro de que sea correcto.
}
header('Location: shorted.php?lurl='.$lurl.'&surl='.$surl);
}
else {
header('Location: errordocs/wrong-url.php');
}
mysql_free_result($regcountresult);
mysql_free_result($existqueryresult);
mysql_close();
?>
Agradezco cualquier aporte.
Muchísimas gracias.