Autor Tema: [Tutorial] Crear acortador de url's  (Leído 1007 veces)

Desconectado -Pituko-

  • PHPero Experto
  • *****
  • Mensajes: 954
  • Karma: 20
  • Sexo: Masculino
  • ¡Hala Madrid!
    • Ver Perfil
[Tutorial] Crear acortador de url's
« en: 28 de Marzo de 2011, 04:45:33 am »
Bueno, lo único que no hice desde 0 es el .htacces, lo demás es código mio, y no es el que utilizo en rpdbin.tk (ese no usa base de datos).
Aclaro: no es ninguna aplicación pre-fabricada, solo una base que les doy.
Código SQL:
Código: [Seleccionar]
CREATE TABLE IF NOT EXISTS `urls` (
  `url` varchar(255) NOT NULL,
  `id` varchar(5) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Este código no necesita mucha explicación, se crea una tabla llamada urls la cual contiene dos campos llamados url e id, como su nombre lo dice, en el campo url se almacenara la dirección del sitio web acortado, y en id el codigo generado, por ejemplo: hazw6.

.HTACCES
Código: [Seleccionar]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^([a-zA-Z0-9]+)[/]?$ verurl.php?id=$1
</IfModule>
Acá se encuentra la magia para que en vez de teclear así: http://miurl/verurl.php?id=hazw6 tecleemos, http://miurl/hazw6.


verurl.php
Código: [Seleccionar]
<?php
include("conectar.php");
$url mysql_fetch_array(mysql_query("SELECT * FROM urls WHERE id = &#39;".$_GET[&#39;id&#39;]."&#39;"));
header ("Location: ".$url[&#39;url&#39;]."");
?>
Acá, se incluye al archivo conecar.php (Recuerden, cada quien a su manera) para después hacer la consulta a la Base de Datos y redireccionar con los datos obtenidos.

index.php
Código: [Seleccionar]
<?php
include("conectar.php");
if (isset(
$_POST[&#39;ok&#39;])) {
  
if(empty($_POST[&#39;url&#39;])) {
   
echo "No puedes dejar la URL vacía";
  } else {
   
$array = array(123456789, &#39;a&#39;, &#39;b&#39;, &#39;c&#39;, &#39;d&#39;, &#39;e&#39;, &#39;f&#39;, &#39;g&#39;, &#39;h&#39;, &#39;i&#39;, &#39;j&#39;, &#39;k&#39;, &#39;l&#39;, &#39;m&#39;, &#39;n&#39;, &#39;o&#39;, &#39;p&#39;, &#39;q&#39;, &#39;r&#39;, &#39;s&#39;, &#39;t&#39;, &#39;u&#39;, &#39;v&#39;, &#39;w&#39;, &#39;x&#39;, &#39;y&#39;, &#39;z&#39;);
   
$id "".$array[rand(034)]."".$array[rand(034)]."".$array[rand(034)]."".$array[rand(034)]."".$array[rand(034)]."";
   
mysql_query("INSERT INTO urls (url, id) VALUES (&#39;".$_POST[&#39;url&#39;]."&#39;,&#39;".$id."&#39;)");
   
echo "La url <b>".htmlspecialchars($_POST[&#39;url&#39;])."</b> ha sido reducida a: <b><a href=&#39;http://".$_SERVER["SERVER_NAME"]."/".$id."&#39;>http://".$_SERVER["SERVER_NAME"]."/".$id."</a></b>.";
    
}
  }
?>

<form method="post" action="">
<input name="url" id="url" value="http://" /><br>
<input type="submit" name="ok" id="ok" />
</form>
Este archivo, aunque creo que es evidente, registra la url y el id en la Base de Datos, y te genera un link para redireccionar a la url específicada.

El conectar cada quien lo hace a su manera.
Cada quien utilizelo como guste, espero que les haya servido, fue probado en mi localhost
« Última modificación: 30 de Marzo de 2011, 02:14:01 am por -Pituko- »

Comunidad PHPeros

[Tutorial] Crear acortador de url's
« en: 28 de Marzo de 2011, 04:45:33 am »

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[Tutorial] Crear acortador de url's
« Respuesta #1 en: 28 de Marzo de 2011, 04:56:53 am »
Observaciones:
- Debes crear una función que genere los caracteres de una forma no tan redundante, ya que crear 5 variables distintas para generar 5 números aleatorios no es muy buena idea que digamos, mucho código innecesario.
- Se puede dar la situación de que se repitan códigos y no haces nada ni en PHP ni en SQL para que no se dé.
- Si en el archivo verurl.php solo necesitas la columna 'url' no es necesario que llames a ambas con asterisco (*).

Desconectado Drek !

  • PHPer@
  • **
  • Mensajes: 81
  • Karma: -1
  • Nuev@ PHPer@
    • Ver Perfil
Re:[Tutorial] Crear acortador de url's
« Respuesta #2 en: 28 de Marzo de 2011, 22:56:36 pm »
Observaciones:
- Debes crear una función que genere los caracteres de una forma no tan redundante, ya que crear 5 variables distintas para generar 5 números aleatorios no es muy buena idea que digamos, mucho código innecesario.
- Se puede dar la situación de que se repitan códigos y no haces nada ni en PHP ni en SQL para que no se dé.
- Si en el archivo verurl.php solo necesitas la columna 'url' no es necesario que llames a ambas con asterisco (*).

Lo mismo !! pero yo detallmo más!.

Primeramente no pasa nada si mandas a llamar ambas con * .. pero podrias utilizar nada mas.
list($url) con mysql_query("SELECT url FORM xxx");

Tambien podrias hacer un while para que si el codigo existe regenere otra ves !! y si aun sigue existiendo otra ves.. y asi hasta que verifique que no se repita =D!.

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[Tutorial] Crear acortador de url's
« Respuesta #3 en: 28 de Marzo de 2011, 23:27:12 pm »
Primeramente no pasa nada si mandas a llamar ambas con * .. pero podrias utilizar nada mas.
list($url) con mysql_query("SELECT url FORM xxx");
Lo del list es cuestión de comodidad a mi parecer, pero igual no se hace con el query, sino con el fetch.

Desconectado Focux

  • PHPero Master
  • ******
  • Mensajes: 1.010
  • Karma: 22
    • Ver Perfil
Re:[Tutorial] Crear acortador de url's
« Respuesta #4 en: 28 de Marzo de 2011, 23:55:22 pm »
Bueno en mi opinion no me gusta la manera en que hiciste este sistema pero para ya que lo hiciste asi te recomiendo dos funciones, range y merge
Mixtiqueros.net

<?PHP
define
(_miNombre, &#39;Focux&#39;);
if(_miNombre == &#39;Focux&#39;): printf(&#39;%s es un programador avanzado&#39;, _miNombre); else: printf(&#39;Tu no eres %s&#39;, _miNombre); endif;
?>

Desconectado -Pituko-

  • PHPero Experto
  • *****
  • Mensajes: 954
  • Karma: 20
  • Sexo: Masculino
  • ¡Hala Madrid!
    • Ver Perfil
Re:[Tutorial] Crear acortador de url's
« Respuesta #5 en: 29 de Marzo de 2011, 04:54:57 am »
Observaciones:
- Debes crear una función que genere los caracteres de una forma no tan redundante, ya que crear 5 variables distintas para generar 5 números aleatorios no es muy buena idea que digamos, mucho código innecesario.
- Se puede dar la situación de que se repitan códigos y no haces nada ni en PHP ni en SQL para que no se dé.
- Si en el archivo verurl.php solo necesitas la columna 'url' no es necesario que llames a ambas con asterisco (*).
Mira, especifico, no es una aplicación pre-fabricada, si no, solo una base para que los demás la utilizen.
No pienso hacerle el código completo a mucha gente, que como saben, se roba el trabajo de alguien, pero eso ya es cuestión de honestidad.

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[Tutorial] Crear acortador de url's
« Respuesta #6 en: 29 de Marzo de 2011, 04:57:54 am »
Mira, especifico, no es una aplicación pre-fabricada, si no, solo una base para que los demás la utilizen.
No pienso hacerle el código completo a mucha gente, que como saben, se roba el trabajo de alguien, pero eso ya es cuestión de honestidad.
No es una aplicación prefabricada, es una aplicación que has codeado TÚ, y como me gusta aportar, lo he hecho. Está muy bien que ayudes, pero trata de no hacerlo de forma mediocre, ¿por qué mediocre? Porque sabes todo lo que puedes mejorar en tu aporte, pero no lo quieres hacer solo porque no quieres darle la comida masticada a los demás.

Ahora quiero que vayas y le digas a los de PHP que no te den todo premasticado y te obliguen a crear tu propio lenguaje antes de usar este.

Desconectado -Pituko-

  • PHPero Experto
  • *****
  • Mensajes: 954
  • Karma: 20
  • Sexo: Masculino
  • ¡Hala Madrid!
    • Ver Perfil
Re:[Tutorial] Crear acortador de url's
« Respuesta #7 en: 29 de Marzo de 2011, 05:05:16 am »
No es una aplicación prefabricada, es una aplicación que has codeado TÚ, y como me gusta aportar, lo he hecho. Está muy bien que ayudes, pero trata de no hacerlo de forma mediocre, ¿por qué mediocre? Porque sabes todo lo que puedes mejorar en tu aporte, pero no lo quieres hacer solo porque no quieres darle la comida masticada a los demás.

Ahora quiero que vayas y le digas a los de PHP que no te den todo premasticado y te obliguen a crear tu propio lenguaje antes de usar este.
Ok, ahora le agrego un poco de protección y demás pero hasta ahí, porque llegue tarde y tengo algunas cosas que hacer, también me acorde de mejorar el mensaje principal, porque en las reglas dice que un tutorial, tiene forma de hacerse, o al menos, una explicación.

Desconectado reef

  • PHPer@ Fijo
  • ***
  • Mensajes: 180
  • Karma: 4
  • Sexo: Masculino
  • Todo un skater
    • Ver Perfil
    • Donreef ~ TagBoard
Re:[Tutorial] Crear acortador de url's
« Respuesta #8 en: 29 de Marzo de 2011, 05:35:22 am »
Me gusta, pero igual toma algunos consejos que te dejaron por hay :), thanks y con esto se pueden hacer mas cosas sinceramente vale.

Desconectado -Pituko-

  • PHPero Experto
  • *****
  • Mensajes: 954
  • Karma: 20
  • Sexo: Masculino
  • ¡Hala Madrid!
    • Ver Perfil
Re:[Tutorial] Crear acortador de url's
« Respuesta #9 en: 29 de Marzo de 2011, 05:40:17 am »
Me gusta, pero igual toma algunos consejos que te dejaron por hay :), thanks y con esto se pueden hacer mas cosas sinceramente vale.
Ya los tome en cuenta ;).