Se connecter / S'enregistrer

Résolu Script cacher lien et script téléchargement

Solutions (36)
Tags :
  • Script
  • Programmation
|
Bonjour

je voudrais deux codes php ou html

le premier pour cacher l'url de la page que l'on visite

le second pour lancer le téléchargement d'un dossier pdf quand on y clique dessus

Merci
Contenus similaires
Meilleure solution
partage
|
Le code que t'a donné okinou tu dois le mettre dans un fichier PHP, lancer_telechargement.php par exemple. Le lien en lui même est à mette dans le code HTML de ta page de la façon suivante <a href="lancer_telechargement.php">Télécharger</a>
  • Commenter cette solution |
Score
1
òh
òi
|
pour le poids tu peut utiliser filesize()

<?php
function forcerTelechargement($nom, $situation)
{
header('Content-Type: application/octet-stream');
header('Content-Length: '. filesize($situation));
header('Content-disposition: attachment; filename='. $nom);
header('Pragma: no-cache');
header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
header('Expires: 0');
readfile($situation);
exit();
}
/*******************************************************
* Appel de la fonction
*******************************************************/
forcerTelechargement('compte.pdf', './documents/compte.pdf');
?>
  • Commenter cette réponse |
Score
0
òh
òi
|
si, je l'ai juste oublié en le mettant sur le forum désolé
  • Commenter cette réponse |
Score
0
òh
òi
|
il manque un ' à la ligne 28 devant monfichier.pdf, il n'affiche pas d'erreur pour ça ?
  • Commenter cette réponse |
Score
0
òh
òi
|
Voici mon script

  1. <?php
  2. /*******************************************************
  3. * Déclaration de la fonction
  4. *******************************************************/
  5. /**
  6. * La fonction force le téléchargement d'un fichier
  7. *
  8. * @author : Hugo HAMON
  9. * @param : string $nom nom du fichier
  10. * @param : string $situtation emplacement sur le serveur web
  11. * @param : integer $poids poids du fichier en octets
  12. * @return : void
  13. **/
  14. function forcerTelechargement($nom, $situation)
  15. {
  16. header('Content-Type: application/octet-stream');
  17. header('Content-Length: '. filesize($situation));
  18. header('Content-disposition: attachment; filename='. $nom);
  19. header('Pragma: no-cache');
  20. header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
  21. header('Expires: 0');
  22. readfile($situation);
  23. exit();
  24. }
  25. /*******************************************************
  26. * Appel de la fonction
  27. *******************************************************/
  28. forcerTelechargement(monfichier.pdf', './telechargement/monfichier.pdf');
  29. ?>


je penses qu'il n'y a plus d'erreur et pourtant maintenant quand je clique sur mon lien il me propose de télécharger lancer_telechargement.php
  • Commenter cette réponse |
Score
0
òh
òi
|
Tu es pas censé avoir modifié cette ligne, normalement c'est :
header('Content-Length: '. filesize($situation));

Tu devrais apprendre un peu les bases du PHP avant de te lancer dans tes trucs comme ça :) 
  • Commenter cette réponse |
Score
0
òh
òi
|
maintenant erreur en ligne 5

  1. header('Content-Length: '. filesize(/telechargement/monfichier.pdf));
  • Commenter cette réponse |
Score
0
òh
òi
|
Ce que tu modifies là c'est la définition ( signature ) de la fonction, ce qui n'est pas correct.
Tu ne dois surtout pas modifier le code suivant :
  1. function forcerTelechargement($nom, $situation)
  2. {
  3. header('Content-Type: application/octet-stream');
  4. header('Content-Length: '. filesize($situation));
  5. header('Content-disposition: attachment; filename='. $nom);
  6. header('Pragma: no-cache');
  7. header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
  8. header('Expires: 0');
  9. readfile($situation);
  10. exit();
  11. }


Juste la dernière ligne ou tu appelles la fonction :
  1. forcerTelechargement("monfichier.pdf", "/telechargement/monfichier.pdf");

Avec des guillemets autour des chaines et le chemin relatif du fichier.
  • Commenter cette réponse |
Score
0
òh
òi
|

{
  1. <?php
  2. function forcerTelechargement("monfichier.pdf", <a href="http://monsite.fr/telechargement/monfichier.pdf" rel="nofollow" target="_blank">http://monsite.fr/telechargement/monfichier.pdf</a>)
  3. {
  • Commenter cette réponse |
Score
0
òh
òi
|
Ce message signifie qu'il y a une erreur de syntaxe à la ligne 2 de ton fichier lancer_telechargement.php. Donne nous les lignes 1 à 3 de ce fichier pour qu'on puisse te dire.
  • Commenter cette réponse |
Score
0
òh
òi
|
j'ai un message d'erreur

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting '&' or T_VARIABLE in /mnt/132/sdb/4/1/monsite/telechargement/lancer_telechargement.php on line 2
  • Commenter cette réponse |
Score
0
òh
òi
|
Meilleure réponse sélectionnée par tarask coral.
  • Commenter cette réponse |
Score
0
òh
òi
|
Merci beaucoup, j'ai enfin compris :) 
  • Commenter cette réponse |
Score
0
òh
òi
|
et ou faut il que je mettre le texte sur lequel il faut cliquer pour lancer le téléchargement ?
  • Commenter cette réponse |
Score
0
òh
òi
|
Si j'ai bien compris comment le script fonctionne

  1. <?php
  2.  
  3. function forcerTelechargement($nom, $situation, $poids)
  4. {
  5. header('Content-Type: application/octet-stream');
  6. header('Content-Length: '. $poids);
  7. header('Content-disposition: attachment; filename='. $nom);
  8. header('Pragma: no-cache');
  9. header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
  10. header('Expires: 0');
  11. readfile($situation);
  12. exit();
  13. }
  14. /*******************************************************
  15. * Appel de la fonction
  16. *******************************************************/
  17. forcerTelechargement('compte.pdf', './documents/compte.pdf', 10000);
  18. ?>


je remplace tous les $nom par le nom de mon fichier pdf
je remplace $situation par le lien de mon pdf (www.monsite.fr/tétéchargement/mon.fichier.pdf)
je remplace $poids par le poids de mon fichier, ( si il fait 234438 o , je met 234438)

mais je ne sais pas si il faut laisser " '. " devant les balises $nom ....

et je ne sais pas si il faut modifier
  1. /*******************************************************
  2. * Appel de la fonction
  3. *******************************************************/
  4. forcerTelechargement('compte.pdf', './documents/compte.pdf', 10000);
  5. ?>



et ou faut il que je mettre le texte sur lequel il faut cliquer pour lancer le téléchargement ?
  • Commenter cette réponse |
Score
0
òh
òi
|
Le php étant coter serveur fonctionne sur tout les navigateur
  • Commenter cette réponse |
Score
0
òh
òi
|
Ok

mais vue que l'on parle de deux choses sa risque d'être dur a suivre

je voudrais savoir si il existait des scripts qui fonctionnent sur un maximum de navigateurs.
et puis il y en a t'il des très bien expliqués, ou il y a juste a mettre le texte sur le quel on veut cliquer et le lien du fichier a télécharger ?
  • Commenter cette réponse |
Score
0
òh
òi
|
Merci de continuer ton post ici, j'ai supprimer ton doublon.
  • Commenter cette réponse |
Score
0
òh
òi
|
Pour forcer le téléchargement d'un pdf :

http://www.apprendre-php.com/tutoriels/tutoriel-25-forc...
  • Commenter cette réponse |
Score
0
òh
òi
|
je me suis renseigné sur cet article, je penses que c'est sufisant

http://www.commentcamarche.net/contents/html/htmlform.p...
  • Commenter cette réponse |
Score
0
òh
òi
, Administrateur |
Tu vois ce qu'est un formulaire en html?
<form action="" method="post"> etc... ?
  • Commenter cette réponse |
Score
0
òh
òi
|
et comment crée t'on ce formulaire dans ce cas ?
  • Commenter cette réponse |
Score
0
òh
òi
, Administrateur |
Présenté comme c'est là, oui, il y a peu de chances que ça fonctionne. il faudrait voir le fichier gotcha.wdb .

Pour interdire la page, il te suffit de demander des informations POST, que tu as créé via un formulaire précédent.
if (isset($_POST['verification']))
{
// afficher la page
}else
{
// redirection automatique
}
  • Commenter cette réponse |
Score
0
òh
òi
|
Voici le script qu'il y a à l'intérieur

  1. <WDSCRIPT>
  2. //********************************************************
  3. // Hide URL to downloading a file
  4. // Cache l'URL pour le téléchargement d'un fichier
  5. //
  6. // Author: Cyril Beaussier
  7. // Website: <a href="http://www.beaussier.com" rel="nofollow" target="_blank">www.beaussier.com</a>
  8. // Date: 16/02/2004
  9. // Version: 1.0
  10. //********************************************************
  11. </WDSCRIPT>
  12. <HTML>
  13. <BODY>
  14.  
  15. <P>
  16. This script allow to download a file and hide its URL
  17. for the client browser
  18. <br>
  19. Ce script permet le téléchargement d'un fichier et de
  20. masquer son URL pour le navigateur du client
  21. </P>
  22.  
  23. <P><A HREF="gotcha.wdb?file=1">Important secret
  24. file to download</A></P>
  25.  
  26. <P>
  27. Here nobody can see file URL but only its number
  28. <br>
  29. Ici personne ne peut voir l'URL mais seulement un numéro
  30. </P>
  31.  
  32. </BODY>
  33. </HTML>


Mais bon sa a l'air de ne pas trop fonctionner.

J'ai pensé à protéger ma page par un htaccess, mais je ne sais pas si ce dernier va bloquer le téléchargement

de plus si c'est réalisable je ne sais pas du tout comment faire

Pour résumer

je veux vendre un fichier PDF que j'ai écris, une fois le paiement effectué par paypal le client est redirigé vers une page.
Je sais faire cette partie, mais la ou sa se complique c'est pour interdire l'accès a la page affichée après le paiement aux personnes n'ayant pas acheté le produit et de faire en sorte que les acheteurs ne puissent l'utilisée qu'une fois, ou pour une durée déterminée
  • Commenter cette réponse |
Score
0
òh
òi
, Administrateur |
Je ne vais pas télécharger ce fichier. Donne nous une portion du script.
  • Commenter cette réponse |
Score
0
òh
òi
|
pardon, j'ai confondu ebay et pay pal, j'ai rectifié

sinon j'ai trouvé sa pour masquer un url mais je ne sais pas comment sa marche

http://www.beaussier.com/sections/viewtopic.php?f=3&t=1...
  • Commenter cette réponse |
Score
0
òh
òi
, Administrateur |
Pour l'utilisation unique, fais avec un système d'inscriptions. Seulement un utilisateur inscrit peut accéder au lien, et celui-ci ne peut l'utiliser qu'une fois.

Cela dit, cela m'a l'air douteux... eBay dispose d'une bonne protection et tu ne pourras pas détourner des ventes si facilement.
  • Commenter cette réponse |
Score
0
òh
òi
|
le problème est que je fais sa car je veux vendre un produit a télécharger après un téléchargement paypal

je peux choisir la page qu'ebay affiche après le paiement, et comme c'est une page de téléchargement je ne voudrais pas qu'il y figure le lien car sa doit être a utilisation unique.
  • Commenter cette réponse |
Score
0
òh
òi
, Administrateur |
window.open sert à ouvrir une fenêtre lors d'une action (genre onClick). Pas à définir la page. L'erreur est certainement là.

Tu dois appeler la fonction pour qu'elle s'exécute. Par exemple, sur la page précédente à ta page tu implantes le script, tu fais le lien vers mapage.php comme ceci:
<a href="peuimporte.php" onClick="OuvrirPopup(mapage.php, nom, option)>
  • Commenter cette réponse |
Score
0
òh
òi
|
désolé mais je n'y arrive toujours pas

je crée une première (www.monsite.com/mapage.php) page avec l'extension .php
je la modifie en ajoutant tout en haut le javascript suivant

<SCRIPT language=javascript>
function OuvrirPopup(page,nom,option) {
window.open('www.monsite.com/mapage.php', '', 'resizable=no, location=no, width=200, height=100, menubar=no, status=no, scrollbars=no');
}
</SCRIPT>

Mais quand je rentre www.monsite.com/mapage.php dans mon navigateur elle s'ouvre normalement

  • Commenter cette réponse |
Score
0
òh
òi
, Administrateur |
en fait,
ouvrirpopup est le nom de la fonction que le toturial lui a donné, tu aurais tout aussi bien pu l'appeler toto.
et window.open est le nom de la fonction javascript associée.

Et pour l'extension, cela dépend. Si ton fichier ne contient QUE du js, et que tu la linkes (comme un css) pour appeler ses fonctions dans ta page, là tu enregistres en .js et tu l'appelles avec un <link href="ton_fichier.js">

Par contre, si tu as écrit ton js dans une balise <script language="javascript">le code </script>
Tu enregistres le fichier en fonction de s'il contient du html ou du php.

Je vais dire que cela se passe comme du css: si ce n'est que du css, tu fais un fichier .css, sinon tu peux très bien implanter du css dans ton code sans devoir changer l'extension.
  • Commenter cette réponse |
Score
0
òh
òi
|
je voudrais juste savoir ceux qu'il faut mettre comme extension

comme il y a du jamascript on ne peut pas mettre du .html ou du .php je penses que c'est .js mais quand je met sa le codage html n'est pas lu

il y a aussi une partie function OuvrirPopup(page,nom,option) et une partie window.open(page,nom,option) il faut mettre exactement pareil entre les parenthèses ?
  • Commenter cette réponse |
Score
0
òh
òi
|
Merci, je vais aller voir sa
  • Commenter cette réponse |
Score
0
òh
òi
, Administrateur |
Non, PHP est un langage serveur, donc n'a strictement rien à voir avec le navigateur (à la rigueur il peut détecter sa version mais c'est tout);
et le HTML ne dispose pas d'une grande panoplie d'effets visuels; seul le javascript peut faire disparaître cette barre.

Alors consulte le toturiel que je t'ai donné, il est relativement bien expliqué. Si tu t'en sorts pas, je verrai ce que je peux faire. Mais avec un peu de jugeote du devrais t'en sortir.
  • Commenter cette réponse |
Score
0
òh
òi
|
Pardon je voulais dire un fichier pdf

et pour cacher l'url il ne peut pas il y avoir un code php ou html a mettre sur la page, car je ne sais pas comment utiliser le javascript
  • Commenter cette réponse |
Score
0
òh
òi
, Administrateur |
Bonjour,
"Cacher l'url" Peut-être qu'il y a moyen de cacher la barre de navigation en JavaScript avec la propriété location:no.

Par contre, pour lancer le téléchargement d'un "dossier pdf"... ça n'a pas de sens de dire ça, un pdf n'est pas un dossier. Si tu veux faire télécharger un dossier comprenant plusieurs pdf, à la rigueur en zippant, mais si ce n'est que pour un seul pdf, tu peux faire
<a href="ton_fichier.pdf">Click!</a>
  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS