Je souhaite faire un site donc l'accès se fera par login et mot de passe
aux seules personnes à qui j'aurai donné des identifiants.
Actuellement je sais faire 2 choses :
* soit gérer l'accès en mettant un .htaccess dès la racine.
Donc là, pas de problème, tout le contenu du site est protégé.
Mais je ne trouve pas jolie (esthétique) cette méthode
C'est pour cela que je préfère ma deuxième solution :
* mettre un formulaire dans lequel le visiteur met ses identifiants,
puis je vérifie dans la base de données et si oui je valide l'accès.
Par contre à chacune de mes pages je suis obligé de vérifier si la
personne y a accès...
Pour cela j'ai une variable de session, et de plus toutes mes pages sont
de la forme index.php?page=toto avec toto qui appelle la page inc/titi.php.
Le répertoire inc/ est protégé par un .htaccess "deny from all"
Donc tout va bien avec cette méthode (tout est bien protégé, et je peux
faire joli comme je veux (mieux en tout cas que la boîte du htaccess !)
Le seul problème est pour les fichiers multimédia (images, sons, vidéos).
Si je met un .htaccess "deny from all" sur le répertoire images/ alors
ça refuse l'affichage (normal puisque les images sont appelées par un
requête html).
Il en est de même pour les fichiers de style .css
(je me contente de mettre un index avec "header("Location: ..");" dans
ces répertoires, mais rien n'empêche un accès direct au fichier...)
Est-ce que quelqu'un aurait une solution pour garder l'accès avec
formulaire et vérification dans la base de données *et* que *tous* les
fichiers soient protégés ?
Je souhaite faire un site donc l'accès se fera par login et mot de passe aux seules personnes à qui j'aurai donné des identifiants. [...] Le seul problème est pour les fichiers multimédia (images, sons, vidéos).
Comment font les sites du genre banque ou webmail ? Je suppose que les pièces jointes aux mail lus dans les webmail sont inaccessibles à tous, sauf le possesseur de l'adresse e-mail ? Et de même pour les comptes banquaires !
Est-ce la technique que P'tit Marcel ou Thief13 propose ?
-- Vincent
Je souhaite faire un site donc l'accès se fera par login et mot de passe
aux seules personnes à qui j'aurai donné des identifiants.
[...]
Le seul problème est pour les fichiers multimédia (images, sons, vidéos).
Comment font les sites du genre banque ou webmail ?
Je suppose que les pièces jointes aux mail lus dans les webmail sont
inaccessibles à tous, sauf le possesseur de l'adresse e-mail ?
Et de même pour les comptes banquaires !
Est-ce la technique que P'tit Marcel ou Thief13 propose ?
Je souhaite faire un site donc l'accès se fera par login et mot de passe aux seules personnes à qui j'aurai donné des identifiants. [...] Le seul problème est pour les fichiers multimédia (images, sons, vidéos).
Comment font les sites du genre banque ou webmail ? Je suppose que les pièces jointes aux mail lus dans les webmail sont inaccessibles à tous, sauf le possesseur de l'adresse e-mail ? Et de même pour les comptes banquaires !
Est-ce la technique que P'tit Marcel ou Thief13 propose ?
-- Vincent
Mihamina Rakotomandimby (R12y)
Legeais Vincent wrote:
Je souhaite faire un site donc l'accès se fera par login et mot de passe aux seules personnes à qui j'aurai donné des identifiants. [...] Le seul problème est pour les fichiers multimédia (images, sons, vidéos). Comment font les sites du genre banque ou webmail ?
Je suppose que les pièces jointes aux mail lus dans les webmail sont inaccessibles à tous, sauf le possesseur de l'adresse e-mail ? Et de même pour les comptes banquaires !
Je fait suivre sur un groupe plus adapté: fr.comp.infosystemes.www.serveurs. D'abord, pour les mail et tout ça, il y a souvent un serveur IMAP entre les mails+PJ et le serveur Web.
Legeais Vincent wrote:
Je souhaite faire un site donc l'accès se fera par login et mot de passe
aux seules personnes à qui j'aurai donné des identifiants.
[...]
Le seul problème est pour les fichiers multimédia (images, sons, vidéos).
Comment font les sites du genre banque ou webmail ?
Je suppose que les pièces jointes aux mail lus dans les webmail sont
inaccessibles à tous, sauf le possesseur de l'adresse e-mail ?
Et de même pour les comptes banquaires !
Je fait suivre sur un groupe plus adapté: fr.comp.infosystemes.www.serveurs.
D'abord, pour les mail et tout ça, il y a souvent un serveur IMAP entre les
mails+PJ et le serveur Web.
Je souhaite faire un site donc l'accès se fera par login et mot de passe aux seules personnes à qui j'aurai donné des identifiants. [...] Le seul problème est pour les fichiers multimédia (images, sons, vidéos). Comment font les sites du genre banque ou webmail ?
Je suppose que les pièces jointes aux mail lus dans les webmail sont inaccessibles à tous, sauf le possesseur de l'adresse e-mail ? Et de même pour les comptes banquaires !
Je fait suivre sur un groupe plus adapté: fr.comp.infosystemes.www.serveurs. D'abord, pour les mail et tout ça, il y a souvent un serveur IMAP entre les mails+PJ et le serveur Web.
Thief13
Pour le header, je vois. Mais ensuite je ne vois pas du tout... Je remplace :
(le header est-il bon ? Ca me propose d'ouvrir "lire-fichier.php" avec le bloc note... et donc je ne vois pas le fichier fichier.xls. Par contre si j'impose l'ouverture avec Excel, et non pas le bloc note, alors ça m'ouvre le fichier Excel... sous le nom "lire-fichier-1.php"
Cela n'est donc évidement pas satisfaisant...
... J'ai essayé d'autres header : application/excel --> pas mieux application/x-msexcel --> mieux !!! En effet ça force à ouvrir avec Excel... Par contre le nom du fichier est "lire-fichier-1.php.xls" au lieu de "fichier.xls" à l'ouverture et "lire-fichier-1.php" au téléchargement (donc perte de l'extension, ce qui est très gênant pour le visiteur...)
Peut-on imposer le nom ? J'ai essayé de rajouter dans le header : name="$fic" ou filename="$fic" mais rien n'y fait...
Et surtout : Cette méthode oblige d'avoir un fichier lire-fichier-excel.php et lire-fichier-word.php et lire-fichier-xxx.php ... N'est-il pas possible de tout faire en un ? (c'est fonction mimeTypes proposée par Philipp Heckel dans les notes du manuel ici: http://fr.php.net/readfile ?)
(le header est-il bon ?
Ca me propose d'ouvrir "lire-fichier.php" avec le bloc note... et donc
je ne vois pas le fichier fichier.xls.
Par contre si j'impose l'ouverture avec Excel, et non pas le bloc note,
alors ça m'ouvre le fichier Excel... sous le nom "lire-fichier-1.php"
Cela n'est donc évidement pas satisfaisant...
...
J'ai essayé d'autres header :
application/excel --> pas mieux
application/x-msexcel --> mieux !!!
En effet ça force à ouvrir avec Excel...
Par contre le nom du fichier est "lire-fichier-1.php.xls" au lieu de
"fichier.xls" à l'ouverture et "lire-fichier-1.php" au téléchargement
(donc perte de l'extension, ce qui est très gênant pour le visiteur...)
Peut-on imposer le nom ?
J'ai essayé de rajouter dans le header : name="$fic" ou
filename="$fic" mais rien n'y fait...
Et surtout :
Cette méthode oblige d'avoir un fichier lire-fichier-excel.php et
lire-fichier-word.php et lire-fichier-xxx.php ...
N'est-il pas possible de tout faire en un ?
(c'est fonction mimeTypes proposée par Philipp Heckel dans les notes du
manuel ici: http://fr.php.net/readfile ?)
(le header est-il bon ? Ca me propose d'ouvrir "lire-fichier.php" avec le bloc note... et donc je ne vois pas le fichier fichier.xls. Par contre si j'impose l'ouverture avec Excel, et non pas le bloc note, alors ça m'ouvre le fichier Excel... sous le nom "lire-fichier-1.php"
Cela n'est donc évidement pas satisfaisant...
... J'ai essayé d'autres header : application/excel --> pas mieux application/x-msexcel --> mieux !!! En effet ça force à ouvrir avec Excel... Par contre le nom du fichier est "lire-fichier-1.php.xls" au lieu de "fichier.xls" à l'ouverture et "lire-fichier-1.php" au téléchargement (donc perte de l'extension, ce qui est très gênant pour le visiteur...)
Peut-on imposer le nom ? J'ai essayé de rajouter dans le header : name="$fic" ou filename="$fic" mais rien n'y fait...
Et surtout : Cette méthode oblige d'avoir un fichier lire-fichier-excel.php et lire-fichier-word.php et lire-fichier-xxx.php ... N'est-il pas possible de tout faire en un ? (c'est fonction mimeTypes proposée par Philipp Heckel dans les notes du manuel ici: http://fr.php.net/readfile ?)
Il faudrait aussi positionner le type mime par un autre header().
OK pour le header
Par contre, comme je le dis dans mon message posté à 20hxx en réponse à celui de Thief13 (qu'il a posté à 11h25 ce jour (04/06/2007)) : Il y a un problème pour le nom du fichier : le fichier proposé au téléchargement s'appelle objet.php et nom pas fichier.ext Ce qui impose au visiteur de renommer... ce n'est donc pas acceptable...
Il faudrait aussi positionner le type mime par un autre header().
OK pour le header
Par contre, comme je le dis dans mon message posté à 20hxx en réponse à
celui de Thief13 (qu'il a posté à 11h25 ce jour (04/06/2007)) :
Il y a un problème pour le nom du fichier :
le fichier proposé au téléchargement s'appelle objet.php et nom pas
fichier.ext
Ce qui impose au visiteur de renommer... ce n'est donc pas acceptable...
Il faudrait aussi positionner le type mime par un autre header().
OK pour le header
Par contre, comme je le dis dans mon message posté à 20hxx en réponse à celui de Thief13 (qu'il a posté à 11h25 ce jour (04/06/2007)) : Il y a un problème pour le nom du fichier : le fichier proposé au téléchargement s'appelle objet.php et nom pas fichier.ext Ce qui impose au visiteur de renommer... ce n'est donc pas acceptable...
Comment faire ?
Merci
-- Vincent
Thomas Labourdette
Legeais Vincent a écrit le lundi 4 juin 2007 23:06 :
Peut-on imposer le nom ? J'ai essayé de rajouter dans le header : name="$fic" ou filename="$fic" mais rien n'y fait...
Pour imposer le nom, tu peux ajouter l'entête : Content-disposition: "attachment; filename='nom_du_fichier.machin'"
@+ -- Théophile ROUGE (signature et citation aléatoires) 7 semaines : Qu'est-ce que tu veux boire ? 7 mois : Je prendrais bien un Martini 7 ans : T'as encore oublié les glaçons !
Legeais Vincent a écrit le lundi 4 juin 2007 23:06 :
Peut-on imposer le nom ?
J'ai essayé de rajouter dans le header : name="$fic" ou
filename="$fic" mais rien n'y fait...
Pour imposer le nom, tu peux ajouter l'entête :
Content-disposition: "attachment; filename='nom_du_fichier.machin'"
@+
--
Théophile ROUGE (signature et citation aléatoires)
7 semaines : Qu'est-ce que tu veux boire ?
7 mois : Je prendrais bien un Martini
7 ans : T'as encore oublié les glaçons !
Legeais Vincent a écrit le lundi 4 juin 2007 23:06 :
Peut-on imposer le nom ? J'ai essayé de rajouter dans le header : name="$fic" ou filename="$fic" mais rien n'y fait...
Pour imposer le nom, tu peux ajouter l'entête : Content-disposition: "attachment; filename='nom_du_fichier.machin'"
@+ -- Théophile ROUGE (signature et citation aléatoires) 7 semaines : Qu'est-ce que tu veux boire ? 7 mois : Je prendrais bien un Martini 7 ans : T'as encore oublié les glaçons !
Legeais Vincent
Legeais Vincent a écrit le lundi 4 juin 2007 23:06 :
Peut-on imposer le nom ? J'ai essayé de rajouter dans le header : name="$fic" ou filename="$fic" mais rien n'y fait...
Pour imposer le nom, tu peux ajouter l'entête : Content-disposition: "attachment; filename='nom_du_fichier.machin'"
Merci. header("Content-disposition:attachment;filename=$fic"); fonctionne, avec $fic le nom de mon fichier
Quand je clic ça ouvre le fenêtre qui demande ouvrir / enregistrer et là il n'y a pas de problème !
Le seul truc c'est quand je fais un clic droit / enregistrer le lien sous... car ça enregistre le fichier de script php !!!
Merci à tous pour vos bons conseils
-- Vincent
Legeais Vincent a écrit le lundi 4 juin 2007 23:06 :
Peut-on imposer le nom ?
J'ai essayé de rajouter dans le header : name="$fic" ou
filename="$fic" mais rien n'y fait...
Pour imposer le nom, tu peux ajouter l'entête :
Content-disposition: "attachment; filename='nom_du_fichier.machin'"
Merci.
header("Content-disposition:attachment;filename=$fic");
fonctionne, avec $fic le nom de mon fichier
Quand je clic ça ouvre le fenêtre qui demande ouvrir / enregistrer et là
il n'y a pas de problème !
Le seul truc c'est quand je fais un clic droit / enregistrer le lien
sous... car ça enregistre le fichier de script php !!!
Peut-on imposer le nom ? J'ai essayé de rajouter dans le header : name="$fic" ou filename="$fic" mais rien n'y fait...
Pour imposer le nom, tu peux ajouter l'entête : Content-disposition: "attachment; filename='nom_du_fichier.machin'"
Merci. header("Content-disposition:attachment;filename=$fic"); fonctionne, avec $fic le nom de mon fichier
Quand je clic ça ouvre le fenêtre qui demande ouvrir / enregistrer et là il n'y a pas de problème !
Le seul truc c'est quand je fais un clic droit / enregistrer le lien sous... car ça enregistre le fichier de script php !!!
1) Que vaut $fic ? 2) Quel est le nom du script PHP ? 3) Avec quel(s) navigateurs(s) as-tu essayé ? 4) Tu as une adresse pour qu'on essaye aussi ?
Legeais Vincent
Peut-on imposer le nom ? J'ai essayé de rajouter dans le header : name="$fic" ou filename="$fic" mais rien n'y fait... Pour imposer le nom, tu peux ajouter l'entête :
header("Content-disposition:attachment;filename=$fic"); fonctionne, avec $fic le nom de mon fichier
Quand je clic ça ouvre le fenêtre qui demande ouvrir / enregistrer et là il n'y a pas de problème !
Le seul truc c'est quand je fais un clic droit / enregistrer le lien sous... car ça enregistre le fichier de script php !!!
1) Que vaut $fic ? 2) Quel est le nom du script PHP ? 3) Avec quel(s) navigateurs(s) as-tu essayé ? 4) Tu as une adresse pour qu'on essaye aussi ?
4) non, car je fais juste un test en local avec easyphp 3) Firefox 1.5 1) et 2) : J'ai un script lire.php : <? <a href=lire-fichier.php?fic=fichier.xls>fichier</a> ?> Et le script lire-fichier.php : <? header('Content-Type: application/x-msexcel'); header("Content-disposition:attachment;filename=$fic"); readfile($fic); ?> [$fic devrait subir un GET... mais là je suis dans le test donc ce n'est pas grave...]
Il ne reste plus qu'à rajouter la fonction mimeTypes proposée par Philipp Heckel dans les notes du manuel ici: http://fr.php.net/readfile (merci P'tit Marcel) pour que le Content-Type se mette tout seul quelque soit le type de fichier...
Tout ceci répond parfaitement à mon problème. Merci
Et quand je disais :
Le seul truc c'est quand je fais un clic droit / enregistrer le lien sous... car ça enregistre le fichier de script php !!! Ce n'était pas un vrai problème mais plutôt une constatation...
Ce comportement est normal puisque le lien dans le fichier lire.php n'appelle pas directement le fichier fichier.xls mais le fichier lire-fichier.php et c'est donc lui qui est enregistrer quand on fait clic droit / enregistrer sous... Il est vrai que si quelqu'un a une petite astuce pour éviter cela et faire comme pour un lien href=fichier.xls je suis preneur... (mais ce n'est pas grave sinon...)
-- Vincent
Peut-on imposer le nom ?
J'ai essayé de rajouter dans le header : name="$fic" ou
filename="$fic" mais rien n'y fait...
Pour imposer le nom, tu peux ajouter l'entête :
header("Content-disposition:attachment;filename=$fic");
fonctionne, avec $fic le nom de mon fichier
Quand je clic ça ouvre le fenêtre qui demande ouvrir / enregistrer et là
il n'y a pas de problème !
Le seul truc c'est quand je fais un clic droit / enregistrer le lien
sous... car ça enregistre le fichier de script php !!!
1) Que vaut $fic ?
2) Quel est le nom du script PHP ?
3) Avec quel(s) navigateurs(s) as-tu essayé ?
4) Tu as une adresse pour qu'on essaye aussi ?
4) non, car je fais juste un test en local avec easyphp
3) Firefox 1.5
1) et 2) :
J'ai un script lire.php :
<?
<a href=lire-fichier.php?fic=fichier.xls>fichier</a>
?>
Et le script lire-fichier.php :
<?
header('Content-Type: application/x-msexcel');
header("Content-disposition:attachment;filename=$fic");
readfile($fic);
?>
[$fic devrait subir un GET... mais là je suis dans le test donc ce n'est
pas grave...]
Il ne reste plus qu'à rajouter la fonction mimeTypes proposée par
Philipp Heckel dans les notes du manuel ici: http://fr.php.net/readfile
(merci P'tit Marcel) pour que le Content-Type se mette tout seul quelque
soit le type de fichier...
Tout ceci répond parfaitement à mon problème.
Merci
Et quand je disais :
Le seul truc c'est quand je fais un clic droit / enregistrer le lien
sous... car ça enregistre le fichier de script php !!!
Ce n'était pas un vrai problème mais plutôt une constatation...
Ce comportement est normal puisque le lien dans le fichier lire.php
n'appelle pas directement le fichier fichier.xls mais le fichier
lire-fichier.php et c'est donc lui qui est enregistrer quand on fait
clic droit / enregistrer sous...
Il est vrai que si quelqu'un a une petite astuce pour éviter cela et
faire comme pour un lien href=fichier.xls je suis preneur... (mais ce
n'est pas grave sinon...)
Peut-on imposer le nom ? J'ai essayé de rajouter dans le header : name="$fic" ou filename="$fic" mais rien n'y fait... Pour imposer le nom, tu peux ajouter l'entête :
header("Content-disposition:attachment;filename=$fic"); fonctionne, avec $fic le nom de mon fichier
Quand je clic ça ouvre le fenêtre qui demande ouvrir / enregistrer et là il n'y a pas de problème !
Le seul truc c'est quand je fais un clic droit / enregistrer le lien sous... car ça enregistre le fichier de script php !!!
1) Que vaut $fic ? 2) Quel est le nom du script PHP ? 3) Avec quel(s) navigateurs(s) as-tu essayé ? 4) Tu as une adresse pour qu'on essaye aussi ?
4) non, car je fais juste un test en local avec easyphp 3) Firefox 1.5 1) et 2) : J'ai un script lire.php : <? <a href=lire-fichier.php?fic=fichier.xls>fichier</a> ?> Et le script lire-fichier.php : <? header('Content-Type: application/x-msexcel'); header("Content-disposition:attachment;filename=$fic"); readfile($fic); ?> [$fic devrait subir un GET... mais là je suis dans le test donc ce n'est pas grave...]
Il ne reste plus qu'à rajouter la fonction mimeTypes proposée par Philipp Heckel dans les notes du manuel ici: http://fr.php.net/readfile (merci P'tit Marcel) pour que le Content-Type se mette tout seul quelque soit le type de fichier...
Tout ceci répond parfaitement à mon problème. Merci
Et quand je disais :
Le seul truc c'est quand je fais un clic droit / enregistrer le lien sous... car ça enregistre le fichier de script php !!! Ce n'était pas un vrai problème mais plutôt une constatation...
Ce comportement est normal puisque le lien dans le fichier lire.php n'appelle pas directement le fichier fichier.xls mais le fichier lire-fichier.php et c'est donc lui qui est enregistrer quand on fait clic droit / enregistrer sous... Il est vrai que si quelqu'un a une petite astuce pour éviter cela et faire comme pour un lien href=fichier.xls je suis preneur... (mais ce n'est pas grave sinon...)