Tutorial: Crear un acortador de URL en PHP y MySQL

  • Autor Autor Cicklow
  • Fecha de inicio Fecha de inicio
[MENTION=9679]cicklow[/MENTION] se me guarda... y me redirecciona...
 
[MENTION=9679]cicklow[/MENTION] se me guarda... y me redirecciona...

PHP:
    //Si existe redireccionamos
    if($ROW['url']!=""){
        _suma($_GET['id']);
        header ('HTTP/1.1 301 Moved Permanently'); //esta cabecera si queremos la agregamos sino no hay problema :)
        header('location: '.$ROW['url']);
        die();
    }else{
        //sino existe el hash en nuestra BD redireccionamos al index de nuestro sitio
        header('location: http://urlacortador.com/');
        die();
    }

solo redirecciona con eso. tmb puede redireccionar cuando ocurre un error. si agregaste lo ultimo (el file e.php)
Edita e.php y pone:
PHP:
<?php
die("se muere aka");
?>
 
PHP:
    //Si existe redireccionamos
    if($ROW['url']!=""){
        _suma($_GET['id']);
        header ('HTTP/1.1 301 Moved Permanently'); //esta cabecera si queremos la agregamos sino no hay problema :)
        header('location: '.$ROW['url']);
        die();
    }else{
        //sino existe el hash en nuestra BD redireccionamos al index de nuestro sitio
        header('location: http://urlacortador.com/');
        die();
    }

solo redirecciona con eso. tmb puede redireccionar cuando ocurre un error. si agregaste lo ultimo (el file e.php)
Edita e.php y pone:
PHP:
<?php
die("se muere aka");
?>

Me pone se muere aka xD
 
Me pone se muere aka xD

elimina esto del .htaccess

Insertar CODE, HTML o PHP:
ErrorDocument 400 /e.php
ErrorDocument 401 /e.php
ErrorDocument 403 /e.php
ErrorDocument 404 /e.php
ErrorDocument 405 /e.php
ErrorDocument 500 /e.php
ErrorDocument 501 /e.php
ErrorDocument 502 /e.php
ErrorDocument 503 /e.php
ErrorDocument 504 /e.php
ErrorDocument 505 /e.php

Ya que se esta provocando un error. Al eliminar eso te aparecera que error se esta generando, si te dice error 404 es que tu server no soporta rewrite
 
elimina esto del .htaccess

Insertar CODE, HTML o PHP:
ErrorDocument 400 /e.php
ErrorDocument 401 /e.php
ErrorDocument 403 /e.php
ErrorDocument 404 /e.php
ErrorDocument 405 /e.php
ErrorDocument 500 /e.php
ErrorDocument 501 /e.php
ErrorDocument 502 /e.php
ErrorDocument 503 /e.php
ErrorDocument 504 /e.php
ErrorDocument 505 /e.php

Ya que se esta provocando un error. Al eliminar eso te aparecera que error se esta generando, si te dice error 404 es que tu server no soporta rewrite

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

En Godaddy tengo el host...
 
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

En Godaddy tengo el host...

La última vez que usé GoDaddy no tenía soporte para mod_rewrite
 
Y que hago? Necesito otro hosting... Bueno ya que estoy una pregunta, con 10mb me basta para mantener la web? Los links están en una bd por lo que no aumenta, no?

Gracias!

- - - Actualizado - - -

Si que tengo mod_rewrite he contactado con godaddy...
 
Insertar CODE, HTML o PHP:
ErrorDocument 400 carpetadetuweb/e.php
ErrorDocument 401 carpetadetuweb/e.php
ErrorDocument 403 carpetadetuweb/e.php
ErrorDocument 404 carpetadetuweb/e.php
ErrorDocument 405 carpetadetuweb/e.php
ErrorDocument 500 carpetadetuweb/e.php
ErrorDocument 501 carpetadetuweb/e.php
ErrorDocument 502 carpetadetuweb/e.php
ErrorDocument 503 carpetadetuweb/e.php
ErrorDocument 504 carpetadetuweb/e.php
ErrorDocument 505 carpetadetuweb/e.php

Prueben eso en el .htaccess de el directorio raiz de su hosting, luego me cuentan :encouragement:

*No lo he testeado, es una idea que se me ocurrio
 
[MENTION=9679]cicklow[/MENTION] gracias por el tutorial, pero... deberías aprender a protegerte de sql inject... este script es muy inseguro 🙁

a ver dame un ejemplo FUNCIONAL no teorico, porque el script no tiene ningun problema de injection SQL.
 
Última edición:
[MENTION=9679]cicklow[/MENTION] no lo tengo montado, pero porque no puede ser teórico?


PHP:
    if($_GET['adm']=="" && $_SESSION['pepe']!="1"){
        die();
    }else{
        $_SESSION['pepe']=1;
    }

aquí por ejemplo, si creo al sessión pepe con valor 1, pues ya soy admin...

PHP:
<?php
    @set_time_limit();
    include('db.php');

    //verificamos si el hash existe en nuestra base de datos
    $SQL = @mysql_query("SELECT * FROM `acortador` WHERE `char`='".trim($_GET['id'])."'");
    $ROW = @mysql_fetch_array($SQL);

aquí metes la varaible directametne ID, quitando los espacios de el comienzo y el final con trim, pero si pongo una injeción ?

tienes una url del script online?

Te dije un ejemplo FUNCIONAL no teórico...
Enlace eliminado
 
[MENTION=24748]Click[/MENTION]low me parece genial lo que digas.. pero la teoria importa mucho..

Enlace eliminado

me interfiere el htaccess del wp.

Enlace eliminado
 
Eso depende de las config del server. Hoy en dia nadie deja un server a medias!!
Pero bueno... te di otra url con el script en donde no interfiere nada.
 
Hola amigo es que ago todo tal cual y siempre me sale Internal Server Error
me gustaria mucho que me ayudaras 😀 te dejo los archivos aver que me pudes desir sobre que ise mal. MUCHAS GRACIAS 😀
Enlace eliminado
 
Hola amigo es que ago todo tal cual y siempre me sale Internal Server Error
me gustaria mucho que me ayudaras 😀 te dejo los archivos aver que me pudes desir sobre que ise mal. MUCHAS GRACIAS 😀
Enlace eliminado

Tendrias que ver si tu server soporta .htaccess
 
Excelente aporte, graciass
 
Lo voy a implementar!
 
Gracias por tu aporte, y por tu tiempo saludos!
 
Atrás
Arriba