Valider .htaccess avec session php [Résolu]

szambaux 57 Messages postés mercredi 5 septembre 2007Date d'inscription 22 juillet 2010 Dernière intervention - 11 mars 2008 à 09:50 - Dernière réponse : szambaux 57 Messages postés mercredi 5 septembre 2007Date d'inscription 22 juillet 2010 Dernière intervention
- 20 mars 2008 à 14:12
Bonjour sur le site web que je réalise j'ai mis une authentification par session php, mon probleme mes pages php m'affiche des swf qui sont en fait des albums photos
map du site:

|-login.php
|-index.php
|-player.php
|-album.php
|-erreur.html
|-swf-|
|        |-.htaccess
|        |-player1.swf
|        |-album1.swf
|        |-.....
|-videos-|
|             |-.htaccess
|             |-video1.flv
|             |-video2.flv
|             |-....
|
|-photos-|
|             |-.htaccess
|             |-famille|
|             |           |-photo1.jpg
|             |-travail
|             |-....

avec login.php mon script de login qui défini la session utilisateur et les autres .php qui teste si l'utilisateur de session existe sinon erreur.html.

Les .htaccess protège mes vidéo ,photos... pour éviter que des petits malin tape: http://monsite/photos/famille/photo1.jpg

Mon probleme c'est que cette double authentification me gène fortement, vous allez me dire supprime les sessions php mais je ne peut pas car j'utilise les variables de sessions dans une autre partie du site.

Donc si vous avez une idée pour améliorer cela ça m'aiderais merci
Afficher la suite 

Votre réponse

14 réponses

Meilleure réponse
Flachy Joe 2115 Messages postés jeudi 16 septembre 2004Date d'inscription 23 novembre 2017 Dernière intervention - 13 mars 2008 à 19:36
3
Merci
Une solution :
garder les .htaccess et créer une page php qui renvoi les fichiers dont le nom est en parametre en validant la session, en gros :

//file_reader.php
$url = $_GET['url'];

session_start();

if (isset($_SESSION['valid']))
  readfile($url);

et t'apelle tout tes fichiers avec file_reader.php?url=machinchouette

Par exemple :

Flachy Joe

Ta vie t'est prêtée, fais en un cadeau.

Merci Flachy Joe 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 97 internautes ce mois-ci

Commenter la réponse de Flachy Joe
szambaux 57 Messages postés mercredi 5 septembre 2007Date d'inscription 22 juillet 2010 Dernière intervention - 13 mars 2008 à 21:43
0
Merci
Merci de votre réponse, j'ai deux questions;

-Vous pensez qu'il est possible d'appeler les photos avec flash de cette maniere? exemple loadMovie("file_reader.php?url=photos/famille/photo1.jpg") si quelqu'un connait de toute façon j'essayerais demain mais merci beaucoup en tout cas

-J'appelais mes animations flash de cette façon:
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" 
width="1230" 
height="924" 
id="secu" align="middle">
<param name="allowScriptAccess" 
value="sameDomain" />
<param name="movie" value="swf/secu.swf?URI=&amp;reso=0" />
<param name="quality" value="high" />

<param name="bgcolor" value="#0e5b9d" />
<param name=flashvars value="URI=" />

<embed src="swf/secu.swf" 
quality="high" 
bgcolor="#0e5b9d" 
width="1230" 
height="924" 
name="secu" align="middle" 
allowScriptAccess="sameDomain" 
type="application/x-shockwave-flash" 
pluginspage="http://www.macromedia.com/go/getflashplayer" 
flashvars="URI=&amp;reso=0" />
</object>


est -il possible de faire cela?

value="file_reader.php?url=swf/secu.swf?URI=&amp;reso=0"


Merci de votre aide
Commenter la réponse de szambaux
szambaux 57 Messages postés mercredi 5 septembre 2007Date d'inscription 22 juillet 2010 Dernière intervention - 14 mars 2008 à 06:35
0
Merci
Désolé pour la mise en page précédente
Merci de votre réponse, j'ai deux questions;

-Vous pensez qu'il est possible d'appeler les photos avec flash de cette maniere? exemple loadMovie("file_reader.php?url=photos/famille/photo1.jpg") si quelqu'un connait de toute façon j'essayerais demain mais merci beaucoup en tout cas

-J'appelais mes animations flash de cette façon:

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
width="1230" height="924"
id="secu" align="middle">
<param name="allowScriptAccess"
value="sameDomain" />
<param name="movie" value="swf/secu.swf?URI=&reso=0" /> <param name="quality" value="high" />

<param name="bgcolor" value="#0e5b9d" /><param name=flashvars value="URI=" />
<embed src="swf/secu.swf"quality="high" bgcolor="#0e5b9d"
width="1230" height="924" name="secu" align="middle" allowScriptAccess="sameDomain"
type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/go/getflashplayer"
flashvars="URI=&reso=0" />
</object>
/code
est -il possible de faire cela?

value="file_reader.php?url=swf/secu.swf?URI=&reso=0"

Merci de votre aide
Commenter la réponse de szambaux
szambaux 57 Messages postés mercredi 5 septembre 2007Date d'inscription 22 juillet 2010 Dernière intervention - 14 mars 2008 à 07:58
0
Merci
Merci de votre aide
Commenter la réponse de szambaux
szambaux 57 Messages postés mercredi 5 septembre 2007Date d'inscription 22 juillet 2010 Dernière intervention - 14 mars 2008 à 07:59
0
Merci
Cela fonctionne parfaitement, c'est génial, je sais pas pourquoi je n'y ai pas pensé
Commenter la réponse de szambaux
szambaux 57 Messages postés mercredi 5 septembre 2007Date d'inscription 22 juillet 2010 Dernière intervention - 14 mars 2008 à 08:10
0
Merci
Rectification faite, cela marche parfaitement sous firefox, mais sous internet explorer le swf ne se charge pas

<script src="Flash.js" type="text/javascript"></script>




   
   


    <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" 
     width="<?php echo($_SESSION['w']);?>" height="<?php echo($_SESSION['d']);?>"  
     id="acceuiluser" align="middle">
     
     
     
     " />
     "
     width="<?php echo($_SESSION['w']);?>"
     height="<?php echo($_SESSION['d']);?>" 
     name="acceuiluser" 
     align="middle" 
     allowScriptAccess="sameDomain" 
     type="application/x-shockwave-flash" 
     pluginspage="http://www.macromedia.com/go/getflashplayer" />
    </object>
   

  


Le probleme viens peut etre de mon script de chargement pour éviter le clic sur flash

function AxRep(){
if (!document.all || !window.print || window.opera) return;
if (document.getElementsByTagName) {


//object
var theObjects = document.getElementsByTagName("object");
for (var i = 0; i < theObjects.length; i++) {
//ajout d'un div autour de object
div = theObjects[i].parentNode.insertBefore(document.createElement("div"), theObjects[i]);
div.style.display="none";
div.appendChild(theObjects[i]);


if(div.firstChild.data){
// Fix for Flash Satay style objects
div.firstChild.removeAttribute('data');
}


//Recuperation des flashvars
var theParams = div.getElementsByTagName("param");
for (var j = 0; j < theParams.length; j++) {
if(theParams[j].name.toLowerCase() == 'flashvars'){
var theFlashVars = theParams[j].value;
break;
}
}


//changement des flashvars
var theInnnerHTML = div.innerHTML;var re theInnnerHTML theInnnerHTML.replace(re, "");
div.outerHTML = theInnnerHTML;
}


//embed
var embs = document.getElementsByTagName("embed");
for (i=0; i<embs.length; i++) {
embs[i].outerHTML = embs[i].outerHTML;
}
}
}
function EndSession(){
window.open('logout.php','_blank','toolbar=0, location=0, directories=0, status=0, scrollbars=0, resizable=0, copyhistory=0, menuBar=0');
}
Commenter la réponse de szambaux
Flachy Joe 2115 Messages postés jeudi 16 septembre 2004Date d'inscription 23 novembre 2017 Dernière intervention - 14 mars 2008 à 19:17
0
Merci
C'est normal ça :

"filereader.php?&url=020591swf/acceuiluser.swf"

"020591swf" est un dossier ?

Flachy Joe

Ta vie t'est prêtée, fais en un cadeau.
Commenter la réponse de Flachy Joe
szambaux 57 Messages postés mercredi 5 septembre 2007Date d'inscription 22 juillet 2010 Dernière intervention - 14 mars 2008 à 21:33
0
Merci
"filereader.php?&url=020591swf/acceuiluser.swf"

"020591swf" est un dossier ?

oui c'est un dossier,en mettant la meme chose que sous firefox cela ne marche pas, pourtant il n'y a aucun message d'erreur, mais avec internet explorer cela ne m'étonne pas, j'ai testé cela ne viens pas de mon script flash.js,
peut etre faut il modifier quelque chose la dedans
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     width="<?php echo($_SESSION['w']);?>" height="<?php echo($_SESSION['d']);?>" 
     id="acceuiluser" align="middle">
     
     
     
     " />

Est ce que vous avez une doc la dessus, j'aimerais bien savoir a quoi correspond le id mais dans google c'est pas évident a trouver avec le mot cle id
Commenter la réponse de szambaux
Flachy Joe 2115 Messages postés jeudi 16 septembre 2004Date d'inscription 23 novembre 2017 Dernière intervention - 16 mars 2008 à 17:19
0
Merci
Essaie de remplacer le slash par son caractère "UrlEncodé" c'est à dire %2F :

value="filereader.php?url=020591swf%2Facceuiluser.swf"

Tu as mis un $ juste derrière le ?, retires le.

Flachy Joe

Ta vie t'est prêtée, fais en un cadeau.
Commenter la réponse de Flachy Joe
Flachy Joe 2115 Messages postés jeudi 16 septembre 2004Date d'inscription 23 novembre 2017 Dernière intervention - 16 mars 2008 à 17:20
0
Merci
Pas un $ mais un &, enlèves le quand même...

Flachy Joe

Ta vie t'est prêtée, fais en un cadeau.
Commenter la réponse de Flachy Joe
szambaux 57 Messages postés mercredi 5 septembre 2007Date d'inscription 22 juillet 2010 Dernière intervention - 17 mars 2008 à 08:21
0
Merci
Merci de votre aide, en fait j'ai mieux ciblé mon probleme,les swf problematique sont ceux appelé de cette façon:

&port=<?php echo("$port");?>&user=<?php echo ("$user");?>&session=<?php echo("$session"); ?>" />

Donc ceux qui neccessite des parametres,ce sont ceux qui ont une taille importante aussi, donc soit le passage de variable de cette manière n'est pas possible, soit les swf sont trop gros...
Commenter la réponse de szambaux
szambaux 57 Messages postés mercredi 5 septembre 2007Date d'inscription 22 juillet 2010 Dernière intervention - 17 mars 2008 à 08:29
0
Merci
Je viens de faire des tests,  le probleme est bien lié à la taille des swf à charger, quand le fichier swf est trop important le script php file reader ne se termine jamais, il faudrais peut etre modifier les header suivant , mais je ne vois pas comment

header("Cache-Control: public");
header("Pragma:");
header("Expires: 0");
Commenter la réponse de szambaux
Flachy Joe 2115 Messages postés jeudi 16 septembre 2004Date d'inscription 23 novembre 2017 Dernière intervention - 19 mars 2008 à 22:23
0
Merci
Essaye de modifier la durée maximale d'execution du scripot autorisé par le serveur, la taille maximale de mémoire allouable, etc...

Flachy Joe

Ta vie t'est prêtée, fais en un cadeau.
Commenter la réponse de Flachy Joe
szambaux 57 Messages postés mercredi 5 septembre 2007Date d'inscription 22 juillet 2010 Dernière intervention - 20 mars 2008 à 14:12
0
Merci
d'accord mais si le probleme viens d ela , il aurais lieu avec firefox aussi non?
Commenter la réponse de szambaux

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.