Téléchargement de fichier par formulaire

Petit nouveau ! | 4 Messages

18 juin 2014, 11:53

Bonjour,

Je souhaiterais réaliser un petit formulaire (nom, mail) pour permettre à l'internaute de downloader un fichier. Ainsi on propose un téléchargement d'un fichier (exemple : livre blanc) gratuit en contrepartie de ces informations de contact. Je trouve beaucoup de tuto pour créer des formulaires d'upload de fichiers mais pas de download.
Si vous pouvez m'aider j'en serais vraiment heureux, je suis débutant en php.
Merci

ViPHP
xTG
ViPHP | 7331 Messages

18 juin 2014, 13:33

Ce que tu cherches donc à faire est de forcer un téléchargement.
Voici le principe : http://stackoverflow.com/questions/7263 ... d-with-php (4-5 lignes de code)

Bout de code qui est à placer si tu as toutes les informations en provenance de ton formulaire.

Petit nouveau ! | 4 Messages

18 juin 2014, 16:28

Ok, merci j'ai compris le principe mais je ne parviens pas encore à l'appliquer.

J'ai réussi à créer un formulaire qui fonctionne en récupérant les données nom et mail mais je ne sais pas où placer ce bout de code qui permet de télécharger le document une fois les informations du formulaire validées.

ViPHP
xTG
ViPHP | 7331 Messages

18 juin 2014, 18:20

Montres nous ton code de récupération du formulaire. :)

Petit nouveau ! | 4 Messages

20 juin 2014, 10:31

<?php

/////////// Add your own email below //////////////// 

	define("WEBMASTER_EMAIL", '[email protected]');
	
	error_reporting (E_ALL ^ E_NOTICE);

//////////////////////////////////////////////////////

	function ValidateEmail($email)
	{
		$regex = '/([a-z0-9_.-]+)'. # name
		'@'. # at
		'([a-z0-9.-]+){2,255}'. # domain & possibly subdomains
		'.'. # period
		'([a-z]+){2,10}/i'; # domain extension 
		
		if($email == '') 
			return false;
		else
			$eregi = preg_replace($regex, '', $email);
		return empty($eregi) ? true : false;
	}

//////////////////////////////////////////////////////

	$post = (!empty($_POST)) ? true : false;
	
	if($post)
	{
		$name 	 = stripslashes($_POST['name']);
		$email 	 = trim($_POST['email']);
		$subject = trim($_POST['subject']);
		$message = stripslashes($_POST['message']);
	
		$error = '';
	
		// Check name
		if(!$name)
			$error .= 'Merci de renseigner votre nom';
	
		// Check email
		if(!$email)
			$error .= 'Merci de renseigner votre e-mail';
	
		if($email && !ValidateEmail($email))
			$error .= 'e-mail invalide';
	
		// Check message
		if(!$message)
			$error .= "Merci de renseigner votre message";
	
		if(!$error)
		{
			$mail = @mail(WEBMASTER_EMAIL, $subject, $message,
				 "From: ".$name." <".$email.">\r\n"
				."Reply-To: ".$email."\r\n"
				."Return-Path: " .$email. "\r\n"
				."MIME-Version: 1.0\r\n"	
				."Content-type: text/html; charset=UTF-8\r\n");
			
			if($mail){
				echo 'OK';

			}else{
				echo 'Envoi impossible';
			}
		}
		else
			echo $error;
	}
?>

ViPHP
xTG
ViPHP | 7331 Messages

20 juin 2014, 18:10

Donc le code de téléchargement doit se placer dans la condition suivante :
if(!$error)

Petit nouveau ! | 4 Messages

23 juin 2014, 16:46

Malheureusement je ne suis pas parvenu à mes fins. C'est à dire que je modifie un template, donc l'exercice est d'autant plus difficile pour moi vu que je ne pars pas de zéro.

J'ai le même problème pour rendre un menu flottant. Ca marche mais a moitié... C'est pour le site d'un client et c'est très urgent.
Je souhaite donc déléguer... Je suis prête à payer un développeur pour qu'il me corrige le code et me rende fonctionnel ces petites fonctions.

Pouvez-vous m'envoyez un message privé si vous voulez m'aider?

Merci.