Formulaire à remplir avant de télécharger un fichier ? (Créer un compte)

  • Statut : non résolu
  • Ce sujet contient 12 réponses, 6 participants et a été mis à jour pour la dernière fois par eglie, le il y a 7 années.
13 sujets de 1 à 13 (sur un total de 13)
  • Auteur
    Messages
  • #447861
    polo74
    Membre
    Initié WordPress
    4 contributions

    Bonjour à tous, j’ai parcouru le forum et je me rends compte que mon besoin ne peut être satisfait par les autres posts en rapport avec le sujet;

    Je voudrai pouvoir faire la chose suivante :
    Mettre un lien vers un document word ou pdf dans un billet que je rédige
    puis faire en sorte que le visiteur qui lise le billet et qui veut ensuite accéder au document soit dans l’obligation de renseigner un formulaire avant de pouvoir commencer le téléchargement du document. Il indiquerait son nom, prénom, mail, éventuellement le nom de son entreprise…

    A la différence des autres post en rapport avec ma question je ne suis pas intéressé par créer et gérer des login pour chaque lecteur et obliger chaque visiteur à se loguer à chaque fois je veux juste pouvoir récupérer leurs infos en échange du téléchargement du document mis dans l’article.

    Si vous avez une idée sachez que ce serait super.

    Paul

    #575118
    Qwindoo
    Modérateur
    Maître WordPress
    2861 contributions

    Si tu t’y connais en PHP, je te conseilles de le coder toi-même, car il s’agit là d’une véritable petite application 😉

    Voici ce que je te conseille de faire :
    –dans ton article : un lien vers un fichier redirect.php?file=le_nom_de_ton_fichier.ext
    –dans le ficher redirect.php : un formulaire demandant les coordonnées du visiteur
    –à la soumission du formulaire, le script php enregistre les données dans une base MySQL (par exemple) puis envoie les en-têtes correspondantes au type de fichier demandé ce qui provoque le téléchargement 🙂

    #575119
    polo74
    Membre
    Initié WordPress
    4 contributions

    Merci je pensais qu’il existerait quelquechose de plus simple ou un plug in tout fait.
    Je suis conscient que ma demande est assez spécifique.
    Merci pour votre réponse.

    Polo

    #575120
    Qwindoo
    Modérateur
    Maître WordPress
    2861 contributions

    Je peux essayer de te coder cela (je posterai ici si j’y arrive) 😉

    #575121
    AmO
    Participant
    Maître WordPress
    4447 contributions

    Il n’existe pas de plugins de ce style…

    une dérivé peut etre… tu force les gens à s’inscrire pour permettre le downloads…
    mais il faudra peut etre hacker WP pour augmenter le nombre de champ à l’inscription ^^

    Fin ca reste technique… mais relativement simple ^^ pour un débutant PHP^^

    #575122
    Qwindoo
    Modérateur
    Maître WordPress
    2861 contributions

    Bon je t’ai pondu un petit script à l’arrache qui fait ce que tu voulais ^^

    Tout tient en un seul fichier : redirect.php que tu dois placer à la racine de ton blog.

     $value)
    {
    if (empty($value))
    {
    header(‘Location: ‘.$_SERVER[‘REQUEST_URI’]);
    die;
    }
    else
    $_POST[$key] = mysqli_real_escape_string($value);
    }

    $file = trim($_GET[‘file’]);
    $dir_file = ‘wp_downloads/’.$file;

    function getExtension ($file)
    {
    if (!strpos ($file, ‘.’) || !is_string ($file))
    return false;
    $fragments = explode (‘.’, $file);
    return array_pop($fragments);
    }

    $extension = getExtension($file);
    if (!in_array($extension, array(‘doc’, ‘pdf’))
    die;

    /** Insert user information in the DataBase **/
    $date = date(‘d/m/Y h:i:s’);
    mysql_query(« INSERT INTO wp_downloads (name, first_name, email, other, date, file)
    VALUES (‘ ».$_POST[$user_name]. »‘, ‘ ».$_POST[$user_first_name]. »‘, ‘ ».$_POST[$user_email]. »‘, ‘ ».$_POST[$user_other]. »‘, ‘$date’, ‘$file’) ») or die(mysql_error());

    /** Check if the requested file exists and starts downloading it **/
    if (is_file($dir_file) && is_readable($dir_file))
    {
    header(‘Content-Disposition: attachment; filename= »‘.$file.' »‘);
    header(‘Content-Transfer-Encoding: binary’);
    header(« Content-Type: application/force-download »);
    header(‘Content-Length: ‘.filesize($file));
    readfile($dir_file);
    }
    else
    die(‘Erreur: Le fichier demandé nexiste pas.’);
    }
    elseif (!empty($_GET[‘file’]))
    {
    ?>



    <title>Espace de Téléchargement</title>


    <h1>Espace de Téléchargement</h1>
    <form action=" » method= »post »>
    <p><input type="hidden" name="file" value=" » /></p>
    <p><label>Nom: </label></p>
    <p><label>Prénom: </label></p>
    <p><label>Email: </label></p>
    <p><label>Autre: </label></p>
    <p></p>
    </form>

    Excusez-moi pour la saleté du code, mais je sors du lit là :p
    Je corrigerai à l’occasion 😉

    …Ensuite, il faut créer un dossier wp_downloads dans le même répertoire et y placer tes fichiers à télécharger 🙂

    …Enfin, dans PhpMyAdmin, exécutes la requête suivante:

    CREATE TABLE `wp_downloads` (
    `id` int(5) unsigned NOT NULL auto_increment,
    `name` varchar(255) NOT NULL,
    `first_name` varchar(255) NOT NULL,
    `email` varchar(255) NOT NULL,
    `other` varchar(255) NOT NULL,
    `date` char(19) NOT NULL,
    `file` varchar(255) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;

    /! ATTENTION /!
    Ce script est certainement sujet à des injections SQL, car je n’ai pas exécuté de tests sur les valeurs renvoyées par le formulaire 😕
    Va falloir que tu travailles un peu ^^

    #575123
    polo74
    Membre
    Initié WordPress
    4 contributions

    Merci je vais tenter d’intégrer tout ça prochainement !!!

    C’est trés sympa de votre part, merci la communauté WP.

    Polo

    #575124
    AmO
    Participant
    Maître WordPress
    4447 contributions

    Hummmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm ca marche peut etre… mais niveau code :'(
    Utilise les classes de WP !

    #575125
    polo74
    Membre
    Initié WordPress
    4 contributions

    Petite question, je tente de mettre en place tout ça mais je voulais savoir:

    Comment faire pour afficher le formulaire sur une page de wordpress?

    Merci

    Paul

    #575126
    Qwindoo
    Modérateur
    Maître WordPress
    2861 contributions
    AmO wrote:
    Hummmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm ca marche peut etre… mais niveau code :'(
    Utilise les classes de WP !

    Oui, ben j’ai fait ça au saut du lit hein :rolleyes: :D

    Je n’ai pas encore étudié le fonctionnement de WordPress en détail, donc le plugin attendra un peu ^^
    (si quelqu’un accepte de se dévouer, … 😋 )

    #575127
    Lilyprune
    Membre
    Padawan WordPress
    99 contributions

    Bonjour tout le monde,

    Comme Polo74, à l’origine de ce post, je suis à la recherche d’un plugin permettant de télécharger un fichier une fois que le visiteur a laissé son mail, cet adresse mail devant bien sur être collectée sous wp.

    Je n’ai malheureusement pas trouvé de solution à mon problème et mes connaissances sont tellement faibles que je suis dans l’incapacité d’adapter le code proposé.

    Mais bon, vu l’age du post, je me dis que peut être un plugin existe désormais ?

    #575128
    Thierry Pigot – WP Assistance
    Participant
    Chevalier WordPress
    122 contributions

    Salut,

    Apparemment il existe ce plugin :
    http://wordpress.org/extend/plugins/ss-downloads/

    Il permet de demander un email pour pouvoir télécharger un fichier.
    En plus il log le nombre de téléchargement.

    @+
    Thierry

    #1846781
    eglie
    Participant
    Initié WordPress
    4 contributions

    Bonjour,

    Je suis à la recherche de la même chose : je souhaiterais que le visiteur qui souhaite télécharger mon CV soit obligé de renseigner son nom/prénom/email et éventuellement Nom d’entreprise, qu’il reçoive par mail le CV (avec un texte que j’aurais personnalisé), et dans l’absolu que je reçoive moi aussi un email me signalant que qqun à télécharger mon CV avec les informations qu’il a renseigné.

    Le dernier plugin proposer pour faire le job n’a pas reçu d’update depuis 2 ans…

    Existe t-il aujourd’hui un ou des autres plugins (ou solutions simples à mettre en place, sans entrer forcément dans du code) ?

    Merci !

13 sujets de 1 à 13 (sur un total de 13)
  • Vous devez être connecté pour répondre à ce sujet.