Faire telecharger un fichier .exe

Résolu
nocilex Messages postés 43 Statut Membre -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -
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/

2 réponses

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 833
     
    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
    1. nocilex Messages postés 43 Statut Membre
       
      exactement pareil
      0
  2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     
    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
    1. nocilex Messages postés 43 Statut Membre
       
      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
    2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      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
    3. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      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
    4. nocilex Messages postés 43 Statut Membre > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
       
      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