Faire telecharger un fichier .exe

Résolu/Fermé
nocilex Messages postés 35 Date d'inscription samedi 12 avril 2014 Statut Membre Dernière intervention 11 janvier 2018 - 14 déc. 2016 à 00:28
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 - 18 déc. 2016 à 11:13
Bonjour. Depuis quelque temps je galère a faire une page web avec mon de passe pour faire telecharger un fichier .exe .
Tous est bon sauf au téléchargement. Quand je le fais sa télécharge en txt et donc sa ne marche pas. Donc je voudrais savoir si des gens si connaisse et qui si il peuvent me dire quoi changer dans se script :

header("Content-type: text/plain");
header("Content-Disposition: attachment; filename='Own-Life.exe'");
echo $your_text;

Ou si il savent comment faire pour que sa lance le téléchargement par un lien : par exemple http://trucatelecharger.com/
A voir également:

2 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
14 déc. 2016 à 01:41
Bonjour,

Une piste :
Toi tu as mis :
header("Content-type: text/plain");

DOnc... c'est logique qu'il te le fasse en mode texte...

Tu veux pour une application..
donc sûrement un truc du genre
header('Content-Type: application/octet-stream');

2
nocilex Messages postés 35 Date d'inscription samedi 12 avril 2014 Statut Membre Dernière intervention 11 janvier 2018
14 déc. 2016 à 20:09
exactement pareil
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
14 déc. 2016 à 20:32
La façon habituelle de faire télécharger un fichier est que le navigateur demande le fichier, en envoyant au serveur web un url comme:
<a href="http://download.httpwatch.com/httpwatch.exe" rel="nofollow noopener noreferrer" target="_blank">Download</a>

Dans ce cas-là, pas de code php impliqué, c'est le serveur web qui va renvoyer le fichier.
Je pense que tu essaies de faire autrement : tu veux que ton code php envoie le contenu du fichier au navigateur, mais tu lui envoies le nom du fichier, pas son contenu. Le navigateur ne peut rien faire avec ce nom.
2
nocilex Messages postés 35 Date d'inscription samedi 12 avril 2014 Statut Membre Dernière intervention 11 janvier 2018
14 déc. 2016 à 23:58
oui mais enfaîte c'est un launcher pour un serveur arma 3. Et donc ont a mis un systeme avec mot de passe qui est cacher dans les règle pour obliger les joueur a lire les règle. Mais si je fais ton code, des petit malin vont trouver le lien et l'envoyer a d'autre.
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
15 déc. 2016 à 09:45
Les petits malins ne peuvent-ils pas facilement partager ton fichier exe avec d'autres?
Quel est le lien entre la lecture des règles et l'envoi du fichier exe, comment fais-tu pour n'envoyer le fichier que si les règles sont lues?
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
Modifié par yg_be le 15/12/2016 à 10:30
Si tu veux faire comme tu as choisi, ton code php doit lire le fichier et en envoyer le contenu.
Il me semble que la technique est décrite ici :
https://ryansechrest.com/2012/07/send-and-receive-binary-files-using-php-and-curl/
Regarde le code PHP sous "Give the file back to the user".
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
15 déc. 2016 à 13:23
Plus simple:
https://www.php.net/manual/en/function.readfile.php
<?php
$file = 'monkey.gif';

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="'.basename($file).'"');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    readfile($file);
    exit;
}
?>
0
nocilex Messages postés 35 Date d'inscription samedi 12 avril 2014 Statut Membre Dernière intervention 11 janvier 2018 > yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024
16 déc. 2016 à 20:03
Sa ne marche pas. Je t'envoie les code pour que tu comprenne mon probléme

Le fichier que je veux installer est Own-Life.exe

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>Codes d'accès au serveur central de la NASA</title>
    </head>
    <body>
    
        <?php
    if (isset($_POST['mot_de_passe']) AND $_POST['mot_de_passe'] ==  "ownpass") // Si le mot de passe est bon
    {
    // On affiche les codes
		
		<?php
			$file = 'Own-Life.exe';

				if (file_exists($file)) {
					header('Content-Description: File Transfer');
					header('Content-Type: application/octet-stream');
					header('Content-Disposition: attachment; filename="'.basename($file).'"');
					header('Expires: 0');
					header('Cache-Control: must-revalidate');
					header('Pragma: public');
					header('Content-Length: ' . filesize($file));
				readfile($file);
			exit;
		}
	?>
		
    }
    else // Sinon, on affiche un message d'erreur
    {
        echo '<p>Mot de passe incorrect</p>';
    }
    ?>
    
        
    </body>
</html>
0