Valider .htaccess avec session php [Résolu]

Signaler
Messages postés
56
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
22 juillet 2010
-
Messages postés
56
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
22 juillet 2010
-
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

14 réponses

Messages postés
2089
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
27 juin 2021
1
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.
Messages postés
56
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
22 juillet 2010

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
Messages postés
56
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
22 juillet 2010

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
Messages postés
56
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
22 juillet 2010

Merci de votre aide
Messages postés
56
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
22 juillet 2010

Cela fonctionne parfaitement, c'est génial, je sais pas pourquoi je n'y ai pas pensé
Messages postés
56
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
22 juillet 2010

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');
}
Messages postés
2089
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
27 juin 2021
1
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.
Messages postés
56
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
22 juillet 2010

"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
Messages postés
2089
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
27 juin 2021
1
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.
Messages postés
2089
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
27 juin 2021
1
Pas un $ mais un &, enlèves le quand même...

Flachy Joe

Ta vie t'est prêtée, fais en un cadeau.
Messages postés
56
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
22 juillet 2010

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...
Messages postés
56
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
22 juillet 2010

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");
Messages postés
2089
Date d'inscription
jeudi 16 septembre 2004
Statut
Membre
Dernière intervention
27 juin 2021
1
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.
Messages postés
56
Date d'inscription
mercredi 5 septembre 2007
Statut
Membre
Dernière intervention
22 juillet 2010

d'accord mais si le probleme viens d ela , il aurais lieu avec firefox aussi non?