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 :

Raccourcir un URL


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Points : 7
    Points
    7
    Par défaut Raccourcir un URL
    Bonjour à vous,
    Je vous explique mon projet.
    Je souhaite que mon outils récupère le paramètre DATA d'un élément flash qui est présent sur un autre site (l'utilisateur doit donner l'url) afin d'afficher l'élément flash sur mon site.
    Jusque là j'ai réussi, mais je ne sais pas comment faire pour créer un lien permanent qui affiche cet page avec l'élément flash.

    J'avais pensé à ajouté le DATA dans l'url (comme ceci: http://tools-minitroopers.netii.net/memorisateur/?data= ... ) mais la valeur est bien trop longue et l'url ne fonctionne donc pas.

    Voici un exemple de page où mon outils doit récupérer le paramètre: http://airone70500.minitroopers.fr/b/view/bat2
    Et voici mon outils: http://tools-minitroopers.netii.net/memorisateur/

    Il faudrait peut-être que mon site enregistre le DATA et l'associe a une valeur (par exemple: 111aaaaaa2222aa ) ? Mais je ne sais pas comment faire ça et si il y a vraiment beaucoup de monde qui l'utilise cela deviendra peut-être lent et j'utilise un hébergeur gratuit donc pas une énorme capacité.

    Sinon, je ne suis pas sûr d'être dans la bonne section .

    Amicalement, Erwan.

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Hello

    Tu pourrais faire un système de paires clé / valeurs sur base de données ou la clé serait un identifiant unique pour une data. A la reception du paramètre token, tu ira chercher la data en bdd. Tu peux fabriquer des identifiants en utilisant un hash du data par exemple avec hash

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Ok, je vois se que tu veut dire.
    Je n'ai encore jamais utilisé de BDD, et mon compte sur l'hébergeur a été supprimé... Je vais devoir m'y mettre !
    Merci de ton aide (pour le moment).

  4. #4
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Tu n'est pas forcément obligé de passer par la DB. Tu peux faire ça avec des fichiers .ini aussi, ça fonctionne bien pour les paires clés/valeurs

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    D'accord, je vais essayer.

    Une BDD serait plus rapide qu'un .ini ?

  6. #6
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Citation Envoyé par AirOne70 Voir le message
    D'accord, je vais essayer.

    Une BDD serait plus rapide qu'un .ini ?
    C'est possible, le temps d'accès à un fichier sont souvent lents. Correctement optimisé et avec des requêtes préparées, une table pourrait bien être plus rapide.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Ok, je verrai ça quand le site sera hébergé alors. Un INI suffira jusque là.
    Pour le moment, j'ai récupéré le DATA et je l'ai crypté avec MD5 ; il me reste à envoyer la paire dans le INI et à le récupérer dans le INI en fonction du MD5.

    Normalement dans un INI le séparateur est un "=" mais est-ce possible d'utiliser une virgule à la place ?

    EDIT 1:
    Et... je ne parviens pas à écrire dans le ini à partir de mon code PHP. J'ai utiliser un tutoriel ( http://cbna.forumactif.com/t2672-tut...s-fichiers-ini ) mais sans succès. Je pense que je loupe une étape... ou j’écris mal le code...

    EDIT2:
    Tout bien réfléchi, je vais sûrement utiliser une BDD, car un fichier texte sera peut-être un peu trop juste. Je vais commencer dès demain.

  8. #8
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Citation Envoyé par AirOne70 Voir le message
    Normalement dans un INI le séparateur est un "=" mais est-ce possible d'utiliser une virgule à la place ?
    Dans ce cas utilise un CSV.

    Si le nombre d'entrée dans ce fichier est important, une table sera la plus rapide.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Voilà, tout fonctionne ou presque.
    J'ai essayé d'ajouter un vérificateur avant l'ajout dans la BDD, qui vérifie si le MD5 n'a pas déjà été ajouté avant, mais il ne fonctionne pas (il crois que le MD5 n'est pas encore présent alors qu'il y est).

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    $reqq = $bdd->prepare('SELECT MD5 FROM DATA WHERE MD5 = ? LIMIT 1');
     
    $reqq->execute(array($dataH));
     
        if (mysql_num_rows($reqq) == 1) {
     
    		echo 'MD5 déjà présent !';
     
    		} else {
     
    $req = $bdd->prepare('INSERT INTO DATA(MD5, DATA) VALUES(:md5, :data)');
     
    $req->execute(array(
     
    	'md5' => $dataH,
     
    	'data' => $data[1]
     
    	));
     
        $req->closeCursor();
     
          }
     
    $reqq->closeCursor();

  10. #10
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    MD5 est aussi une fonction mysql, pour des raisons de sécurité, tu devrais spécifier que c'est une colonne en utilisant des backquotes:

  11. #11
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    Il faut choisir entre les extensions PDO et mysql : mysql_num_rows n'a rien à faire là !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (FALSE !== $reqq->fetch()) {
    (pour garder l'idée de base : sinon méthode rowCount qui n'est pas portable ou un SELECT COUNT + fetchColumn)

    PS : les closeCursor seraient ici inutiles (celui du INSERT l'est de toute façon)

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 18
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Benjamin Delespierre Voir le message
    MD5 est aussi une fonction mysql, pour des raisons de sécurité, tu devrais spécifier que c'est une colonne en utilisant des backquotes:
    Citation Envoyé par julp Voir le message
    Il faut choisir entre les extensions PDO et mysql : mysql_num_rows n'a rien à faire là !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (FALSE !== $reqq->fetch()) {
    (pour garder l'idée de base : sinon méthode rowCount qui n'est pas portable ou un SELECT COUNT + fetchColumn)

    PS : les closeCursor seraient ici inutiles (celui du INSERT l'est de toute façon)
    Merci beaucoup à vous deux, tout fonctionne à merveille !
    A une prochaine fois peut-être !


Discussions similaires

  1. [Toutes versions] Raccourcir les répétitions d'un code avec URL qui change
    Par Dan.exe dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/02/2014, 14h51
  2. Raccourcir une url
    Par PadawanInPerl dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 11/10/2011, 14h06
  3. Raccourcir une url ?
    Par Him dans le forum Langage
    Réponses: 13
    Dernier message: 30/10/2009, 01h45
  4. Raccourcir des URL
    Par php_de_travers dans le forum Langage
    Réponses: 2
    Dernier message: 10/11/2008, 08h00
  5. [RegEx] Raccourcir une URL à son nom de domaine
    Par micatmidog dans le forum Langage
    Réponses: 4
    Dernier message: 12/03/2007, 09h39

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