|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() Inscription : décembre 2005 Messages : 69 ![]() |
Bonjour,
Dans le cadre d'un projet d'étude pour mon école, je suis en train de faire un site de téléchargement payant de "fichiers" (disons des mp3). Ce système de paiement passe par Allopass, système de paiement à l'acte bien connu. Je rappelle rapidement le principe : l'utilisateur appelle un numéro et reçoit un code qu'il doit entrer dans un formulaire pour avoir accès au fichier protégé. Le problème est que ce fichier est accessible dès qu'on connaît l'URL qui y mène. (un coup de FlashGet et c'est reglé Le site d'allopass conseille pour sécuriser ses "pages" d'utiliser les sessions en PHP. Le problème c'est que ça marche lorsqu'on veut sécuriser le contenu d'une page web, mais comment faire lorsqu'il s'agit de fichiers tels que des MP3 ? J'espère que je suis clair, sinon n'hésitez pas à me reprendre. Merci d'avance pour vos lumières. |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : janvier 2007 Messages : 1 452 ![]() |
Salut,
il suffit de faire réaliser la lecture du mp3, non pas par apache, mais par php. En somme tu dois avoir une page, disons telechargement.php, avec deux arguments. Le code allopass, et le fichier désiré. Dans ce fichier, la première chose que tu dois faire c'est vérifier la validité du code allopas. Si le code n'est pas valide, tu doisl e signaler à l'utilisateur avec une page HTML d'erreur lisible. Autrement, dans le cas d'un code pleinement valide, tu executes la lecture du fichier avec php (cf fil_get_contents & co). Ensuite tu n'as plus qu'à manipuler les en tête HTML pour forcer un téléchargement (cf fontions header force/download & co). A la fin du téléchargement du fichier, tu rends le code inutilisable. Bien sur, tu devras mettre tes mp3 en dehors de ta racine web.... Sinon cela ne sert à rien ! Le but du jeu est bien de controler l'accessibilité (donc la lecture) des fichiers via PHP, et non laissé Apache faire cela tout seul. bye |
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() Inscription : décembre 2005 Messages : 69 ![]() |
Merci kaymak de ta réponse, ta solution fonctionne impécablement du moins sur PC... en effet mon site est site WAP 2.0 XHTML (tél portable, PDA). Je vais tenter d'expliquer pourquoi ça ne marche pas sur mon navigateur mobile...
Lorsque j'utilise Apache pour télécharger, j'indique à Allopass en "cible" de téléchargement directement le fichier mp3, donc quand l'utilisateur clique sur OK après avoir entré son code, le code est vérifié sur les serveurs d'allopass puis en cas de validation pointe sur le lien de mon fichier. En revanche lorsque j'utilise PHP pour télécharger (avec la méthode que tu me suggères donc), j'indique à Allopass non plus un fichier mp3, mais un fichier php (telechargement.php) qui lui va permettre le téléchargement du fichier mp3. Et bien que ça marche sur PC, pour une raison que j'ignore sur mobile lorsque je clique sur OK (formulaire d'accès), au lien d'interpréter le fchier téléchargement.php, il tente de télécharger ce même fichier php ! Du coup je n'ai jamais accès au fichier mp3 qu'il devrait me créer. Bref, si jamais il n'y a pas d'issue pour faire le téléchargement en PHP, je me demandais s'il y avait une autre méthode avec Apache (.htaccess) qui permettait d'autoriser l'accès à un fichier uniquement via un script... où pensez-vous que c'est sans issue ? (encore une fois il est tard et je ne sais pas si je suis clair...) |
|
|
00
|
|
|
#4 |
|
Futur Membre du Club
![]() Inscription : décembre 2005 Messages : 69 ![]() |
En fait je viens de remarquer qu'il télécharge bien le bon fichier mp3 en php mais il le renomme "telechargement.php", maintenant il faut que je trouve pourquoi...
|
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() Inscription : décembre 2005 Messages : 69 ![]() |
J'ai changé le type MIMIE et ai mis : header("Content-type: audio/mpeg"); à la place de force/download, et maintenant je télécharge un fichier "telechargement.mp3", y'a du progrès mais je n'ai toujours pas le nom du fichier...
|
|
|
00
|
|
|
#6 | ||
|
Futur Membre du Club
![]() Inscription : décembre 2005 Messages : 69 ![]() |
Je vous met la partie du code qui merde :
Code :
|
||
|
|
00
|
|
|
#7 |
![]() ![]() Inscription : juin 2003 Messages : 4 893 ![]() |
regarde dans la FAQ là :
http://php.developpez.com/faq/?page=..._forcedownload il y a 2 entêtes à mettre pour que le nom du fichier soit reconnu par le maximum de client
__________________
Modérateur PHP |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com