IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Réduction d'URL


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Par défaut Réduction d'URL
    Bonjour,

    Je cherche à crypter une chaine longue pour en faire une chaine cryptée d'une longueur fixe (5 ou 6 caractères). Est-ce possible ?
    Il faudrait donc transformer http://www.google.fr par exemple en 1Tr@Z5
    Pour détailler pourquoi je demande çà. En fait je cherche à faire comme les réducteurs de liens pour mettre des liens sur twitter mais il faut que le code crypté soit unique ce qui sera impossible si 2 utilisateurs chez moi veulent raccourcir le même lien, j'y ajouterais donc un identifiant unique de membre
    Est-ce que vous savez comment font ces sites pour que les liens soient vraiment unique ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    il faut juste comprendre le principe de fonctionnement d'un Réduction d'URL.
    Le principe général de la réduction d'URL consiste à assigner une clé unique de quelques caractères à une page web spécifique.
    Un utilisateur désirant se rendre sur cette page web peut ensuite simplement fournir cette clé à la suite du nom de domaine d'un tel service de réduction,
    qui le redirige (redirection d'URL) alors vers la page appropriée.
    En pratique, c'est assez simple à réaliser.

    Ecriture :
    1/ un simple formulaire pour inscrire l'URL à minifier
    2/ on récupère l'URL
    3/ on crée un identifiant unique urlmini alphanumérique (nombres + minuscules + majuscules + caractères spéciaux = 64 caractères)
    (on vérifie d'abord que cette URL n'est pas déjà inscrite : auquel cas on affiche l'urlmini associé)
    4/ on enregistre les deux dans une table en base de données

    Le lien minifié est de la forme : http://mon-site.com/urlmini

    Lecture :
    1/ dans le .htaccess : un peu d'URLrewriting pour rediriger vers une page du type : /redirectURL.php?urlmini=$1
    2/ Dans redirectURL.php, on récupère urlmini
    3/ on va chercher en BdD l'URL associée à cet urlmini
    4/ on redirige avec un header('location:'.$URL); et le tour est joué.
    Dernière modification par Invité ; 03/09/2015 à 08h17.

  3. #3
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Par défaut
    Merci
    J'ai fait des recherches de mon côté également. Sur le principe on est d'accord mais il y a un léger souci.
    Les reducteurs d'url mettent un code de 6 caractères maximum ce qui limite à 999 999, c'est pas mal mais insuffisant
    Si on convertit l'id (increment mysql du site ajouté) de base 10 en base 64 on obtient beaucoup plus de possibilités car la base 64 utilise les lettres en majuscules et minuscules aussi et donc on peut crypter les id unique sur 6 caractères mais les id pourront atteindre plusieurs milliards sans souci
    Le souci restant que la convertion de base proposé par php est de maximum 36

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Citation Envoyé par pas30 Voir le message
    Les reducteurs d'url mettent un code de 6 caractères maximum ce qui limite à 999 999
    Faux.

    Qui a parlé d'identifiant numérique ? ou d'auto-incrément ?

    Je parlais bien d'alphanumérique : nombres + minuscules + majuscules + caractères spéciaux.
    • urlmin de 6 caractères => 64 puissance 6 = 68 719 476 736 combinaisons possibles.
    • urlmin de 8 caractères => 64 puissance 8 = 281 474 976 710 656 combinaisons possibles.




    Sinon, en pratique, combien penses-tu en enregistrer ?
    Dernière modification par Invité ; 03/09/2015 à 08h15.

  5. #5
    Membre éclairé
    Inscrit en
    Décembre 2006
    Messages
    411
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 411
    Par défaut
    Comment on peut transformer un chiffre en base 64 ?
    Exemple : j'ajoute une url elle aura l'id 1 en base de donnée ce qui donnera donc en base 64 ???
    Je cherche justement en php à faire cette conversion de base 10 à base 64, il existe convert_base en php mais çà ne gère que jusqu'à base36

  6. #6
    Invité
    Invité(e)
    Par défaut
    Dialogue de sourds...

    J'ai parlé d'identifiant unique.

    Je n'ai PAS parlé d'id auto-incrémenté.

    La table aura cette structure :
    • id (int 11 unsigned, auto-incrémenté) => celui dont TU parles
    • urlmin (varchar 10) => identifiant alphanumérique dont JE parle !
    • url (varchar 255)

    Et il y a très peu de chance que tu atteignes 100 000 lignes... (s'il ne s'agit que des URLs de ton propre site)

    Au delà ?
    Alors il suffit de SUPPRIMER le champ id de la table ! (après tout, il ne sert à RIEN ici !)

Discussions similaires

  1. Réponses: 17
    Dernier message: 29/04/2008, 21h53
  2. [PHP-JS] Double Cryptage avec PHP
    Par erreurx dans le forum Langage
    Réponses: 2
    Dernier message: 21/04/2008, 18h22
  3. Réponses: 6
    Dernier message: 08/01/2006, 12h49
  4. cryptage assymetrique de mot de passe(javascript/PHP)
    Par chess132 dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 25/10/2005, 13h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo