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 :

[Mail] Système générateur d'URL de téléchargement envoyées par e-mail [Sources]


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 6
    Points
    6
    Par défaut [Mail] Système générateur d'URL de téléchargement envoyées par e-mail
    Bonjour,
    Je recherche un systeme en php generant une url pointant sur un fichier
    envoyer sur une boite mail:

    en gros Mr X s'enregistre pour telecharger un fichier (nom, prenom etc..)
    apres validation de l'enregistrement un mail lui est adresser.
    dans ce mail une url unique pointant sur le fichier à telecharger est créer

    connaitriez vous un bout de code ressemblant à ce que je recherche ?

    Merci pour votre aide

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 154
    Points : 76
    Points
    76
    Par défaut
    tu crée une table avec 3 champs : id, chemin, cle
    dans chemin tu met le chemin du fichier ds ton serveur genre ../softs/monjeu.exe
    dans cle tu génères une clé aléatoire par exemple en utilisant la fonction md5 sur le nom du fichier, ce qui va te donner un truc comme g45f6g456g6f54gf65g

    après tu peux ainsi faire un lien de la forme
    www.monsite.com/telecharger.php?cle=g45f6g456g6f54gf65g et là tu lui ramenes le bon fichier

    tu peux perfectionner le systeme en mettant une date/heure pour donner une durée de validité au transfert, puis en suite suprrimer la ligne de la BDD...

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 6
    Points
    6
    Par défaut
    ouai c'est ca le principe , seulement je suis pas codeur, je me depatouille un peu en php mais programmer j'pense pas que j'y arriverai sans une formation approfondi.

    connaitrai tu un script deja developper en open source que je puisse me réadapter?

    Merci pour ton aide

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 154
    Points : 76
    Points
    76
    Par défaut
    quand on est pas chasseur , on par pas à la chasse ! lol
    le mieux ne serait il pas que tu essaie d'apprendre le php ? ce serait + profitable pour toi et pour tes "clients" non ?
    je connais pas de script qui fait çà, ca existe peut-etre mais certainement bcp + compliqué que mon ptit principe.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 6
    Points
    6
    Par défaut
    aya keep cool c'est pour une assos et par un client limite il peu y avoir compensation/moyen de s'entendre (echange de savoir, avantage en adhesion a l'assos etc..)

    j'apprend actuellement le php, est connais mes limites, un tel developpement est trop poussé pour moi (du moin dans un premier temps).

    j'ai malgré tout besoin de cet outils comment puis je faire?

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 154
    Points : 76
    Points
    76
    Par défaut
    allé allé courage aujourdhui tu vas repousser tes limites !
    quelles sont tes limites, pour le moment ?
    tu sais utiliser phpmyadmin ? tu connais un peu le SQL ?
    les bases de php ?
    si oui alors çà suffit !
    si non, c l'occasion d'apprendre tout çà, je suppose que tu es pas trop trop pressé par le temps si c pour une assoc !

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 6
    Points
    6
    Par défaut
    T'est facile mon pote, mais je suis pret a ecoutez tes conseils,

    jm'etudie php pour le WWW de larry ullman et les cahier du programmeur de jean phillippe lebouef. pour la culture générale.

    apres je veut bien que tu m'explique comme je doit m'y prendre. mais j'ai bien peur que ca prenne plus que tu ne le fait sous entendre.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 154
    Points : 76
    Points
    76
    Par défaut
    oui c sûr, déjà t'as zappé mes questions lol !
    connais tu SQL, phpmyadmin, mysql ?
    la 1ere chose à faire est de créer la table que je t'ai indiqué !
    as tu une formation de base en informatique qd meme ?

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 6
    Points
    6
    Par défaut
    Ok, j'ai ma bases, jesuis en train de cree mes 3 champs, comment doit je definir le type de mes champs [Varchar], la taille/valeur, attribut Null etc...?

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 154
    Points : 76
    Points
    76
    Par défaut
    hé ben voila tu vois tu as presque djéà fait la moitié !!

    id c un nombre donc MEDIUMINT peut faire l'affaire, NOT NULL PRIMARY KEY
    chemin : VARCHAR 200
    cle : TEXT car ca peut ptet etre + long

    ca peut t'aider :

    http://dev.mysql.com/doc/mysql/fr/index.html

    en particulier chapitre 12 ds ton cas

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 6
    Points
    6
    Par défaut
    okay, ma table est donc faite, cela dit une question me vient,
    le fait de rentrer le chemin du fichier par phpmyadmin me pose probleme
    pour une question de facilité de maj, pense tu qu'il est possible d'entrer le chemin de mon fichier par php?

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 154
    Points : 76
    Points
    76
    Par défaut
    encore heureux qu'on peut le faire imagine le bazar sinon !
    le mieux serait ptet d'avoir une autre table ou tu stockes les chemins des fichiers et/ou leur contenur !

    combien as tu de fichier, est ce que tu en auras souvent des nouveaux ?

    si tu en as 4 ou 5 qui vont jamais changer pas la peine de faire tout çà c sur !

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 6
    Points
    6
    Par défaut
    bein dit moi en un peu plus maintenant , comment je gere ma seconde table dans quelle logique je developpe le code ?

    oriente moi un peu sur la seconde moitier merci.

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 154
    Points : 76
    Points
    76
    Par défaut
    tu peux ptet déjà essayer de faire marche rle systeme sans la 2eme table, en mettant les chemin des fichiers à la main ds la table...
    après on verra

    mais ce que je t dit devrait te suffire, à toi d'imaginer la table et à mettre tout ce que tu veux dedans !

    tu m'as pas répondu, tu as une formation en informatique ?

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 6
    Points
    6
    Par défaut
    bon, je me retrouve pas plus avancé moi la, non je n'ai pas de formation en programmation informatique.
    j'apprend les bases.

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 154
    Points : 76
    Points
    76
    Par défaut
    oui disons que c dur sans avoir eu du tout de cours de comprendre tout d'un coup, car ca fait appel à pas mal de concepts ...

    il te faudrait un bouquin sur PHP & MySQL , et que tu le lise en entier doucement depuis le début en faisant les exemples, c là que tu avancerai le mieux je pense

  17. #17
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 6
    Points
    6
    Par défaut
    est-tu interesser à participer au developpement du module download pour l'asso?,
    en contre partie, je peu peut etre (cf il faut que j'en parle au president quand mm) te faire membre bienfaiteur.

    voila l'adresse du site en construction pour en savoir plus sur l'asso:

    http://www.iconscope.com

  18. #18
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Je veux bien t'aider. Je te propose de commencer par le code qui permet de télécharger un fichier sans que le client ne puisse obtenir son url :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    header("Content-type:application/octet-stream"); 
    readfile("tonfichier"); 
    ?>
    C'est ce script que l'url pointera dans ton mail. il faut remplacer "tonfichier" par le nom du fichier que tu auras stocké dans la base de données.

    En résumé :

    1) le client va choisir un fichier sur ton site.
    2) il faut mémoriser ce nom de fichier et l'associer avec une clé
    3) Tu envoi le mail avec l'url du script + la clé en paramètre
    4) Le script reçoit la clé et en déduit quel est le fichier associé
    5) Le script envoi le fichier au client (téléchargement)
    6) Tu pourras ensuite supprimer la clé si tu le souhaites...
    De retour parmis vous après 10 ans!!

  19. #19
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 70
    Points : 6
    Points
    6
    Par défaut
    Salut Sub0, merci de ta participation pour l'elaboration de ce script,

    J'explique les etapes de l'envoi:
    1/ le client apres validation d'un formulaire, commande un fichier(il s'agit de photo je l'apellerai dorénavent photo)
    2/ Je copie la photo sur un serveur ftp
    3/ j'envoie un mail avec l'url du script + la clé en paramètre
    4) Le script reçoit la clé et en déduit la photo
    5) Le script envoi le fichier au client (téléchargement)
    6) et le must serai que la clé ce supprimer au bout de 48H

    voila exactement ce qui irai au top.

    la phase de 1 a 2 se fait manuellement, apres, je sais pas trop comment ca peu marcher...

  20. #20
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    ok, je t'explique par étape pour que tu puisses profiter un peu pour apprendre et me poser des questions si tu bloques. Voici le code permettant de se connecter à la base de données :
    Code : 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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    <?php
     
    $cfg['db_server']     = 'localhost';
    $cfg['db_user_login'] = 'root';
    $cfg['db_user_pass']  = '';
    $cfg['db_name']       = 'mybase';
    $cfg['db_table']      = 'mytable';
    $cfg['linkid']        = '';
     
     
    //==========================================================//
    function OpenBase() {
    	global $cfg;
     
      if(!$cfg['linkid']=@mysql_connect(
        $cfg['db_server'],
        $cfg['db_user_login'],
        $cfg['db_user_pass']))
    	  Die("Erreur lors de la connection à la base de données «".$cfg['db_server']."»!");
     
      @mysql_query('CREATE DATABASE IF NOT EXISTS `'.$cfg['db_name'].'`');
      if(!@mysql_select_db(
        $cfg['db_name'],
        $cfg['linkid']))
        Die("Impossible de sélectionner la base de données «".$cfg['db_name']."»!");
     
      $sql='CREATE TABLE IF NOT EXISTS `'.$cfg['db_table'].'` ('.
           '`mykey` VARCHAR(255) NOT NULL,'. 
           '`myfile` VARCHAR(255) NOT NULL,'. 
           '`mydate` DATE NOT NULL, INDEX (`mykey`));';
      @mysql_query($sql);
    }
     
    //==========================================================//
    function CloseBase() {
    	global $cfg;
    	@mysql_close($cfg['linkid']);
    	unset($cfg['linkid']);
    }
     
    //==========================================================//
    ?>
    La fonction OpenBase ouvre la base. si elle n'existe pas, elle est crée.
    La table est aussi créée si elle n'exste pas.
    La fonction CloseBase permet de fermer la connexion.

    Tous les paramètres de la base sont dans le tableau $cfg...
    De retour parmis vous après 10 ans!!

Discussions similaires

  1. Recupération e-mail envoyé par fonction mail
    Par ErOBaKa dans le forum Administration système
    Réponses: 4
    Dernier message: 20/01/2011, 13h28
  2. Formulaire envoyé par e-mail
    Par simos dans le forum Langage
    Réponses: 17
    Dernier message: 05/01/2009, 13h12
  3. Formulaire à envoyer par e-mail
    Par neuneu1 dans le forum Langage
    Réponses: 13
    Dernier message: 24/11/2008, 09h26
  4. [MySQL] Selectionner des cases à cocher puis envoyer par e-mail
    Par antxbe dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 21/10/2008, 12h03
  5. [Mail] Envoyer l'url d'une page par e-mail
    Par microcongo dans le forum Langage
    Réponses: 12
    Dernier message: 19/02/2007, 15h08

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