qpzmg
Messages postés17Date d'inscriptionjeudi 4 août 2005StatutMembreDernière intervention20 octobre 2006
-
20 août 2006 à 12:51
Utilisateur anonyme -
21 août 2006 à 00:54
bonjour,
J'ai déja été aider sur ce forum pour la mise au poins de ce script :
Ce script me permet de chancher le thème via une page de mon site, ou
d'ouvrir le thème que je veut si le visiteur n'a pas changé le thème
donc n'a pas créé de coockies.
Jusque la ça marche .
Mais je suis confronté a un problème :
Si je supprime le dossier stargate ($theme =
"themes/stargate/theme.php";) et que le visiteur a créé un coockies
ayant pour valeurs stargate en changeant de thème, le script ne va pas
trouver le dossier et le fichier thème, et va donc afficher une page
d'erreur.
comment faire pour parer cela ?
Je suis débutant et je ne sait pas trop comment faire.
audayls
Messages postés373Date d'inscriptionsamedi 9 juillet 2005StatutMembreDernière intervention11 août 2008 20 août 2006 à 15:11
Salut,
Guillemouze cela ne sert à rien de vérifier l'existence du thème puisque qpzmg n'autorisera que ces thèmes grâce au "switch" : "
<?php
if (isset($_COOKIE['mckay38_themes']))
switch ($_COOKIE['mckay38_themes']){
case 'stargate': require_once('./themes/stargate/theme.php'); break;
case 'farscape': require_once('./themes/farscape/theme.php'); break;
default: require_once('./themes/defaut/theme.php'); break;
}
?>
"
Sauf si biensur il fait un système automatique dans ce cas il faut mieux utiliser "is_file" car cette fonction est plus rapide que "file_exists" : "
<?php
if (isset($_COOKIE['mckay38_themes']))
if (is_file('./themes/'.$_COOKIE['mckay38_themes'].'/theme.php') require_once('./themes/'.$_COOKIE['mckay38_themes'].'/theme.php');
else require_once('./themes/defaut/theme.php');
?>
"
switch (valeur de ton cookie){
case 'stargate' : script qui load la skin stargate;
break;
case 'farscape' : echo 'c\'est bien mieux cette série ;^)';
script qui load la skin farscape;
break;
default : script de la skin par défaut;
}
pour plus d'infos : va voir sur php.net et cherche switch dans les fonctions.
à+
if (file_exists($theme)) {
include($theme);
} else {
include($theme_par_defaut);
}
?>
par contre il faut bien que ton theme par defaut existe, sinon tu aura un message d'erreur. si tu veu qu'il n'inclu pas de fichier si ton theme par defaut n'esiste pas, tu a juste a ajouter la ligne en rouge:
if (file_exists($theme)) {
include($theme);
} else {
if (file_exists($theme_par_defaut)) {
include($theme_par_defaut);
}
}
dans ce cas la, il essayera de charger le themle du cookie si il existe et qu'il est valide, sinon il chargera le theme par defaut si il est valide.
davwart
Messages postés855Date d'inscriptionmardi 19 novembre 2002StatutMembreDernière intervention28 juillet 20091 20 août 2006 à 16:21
Heu...
pour moi, la seule solution valable et valide est celle de [auteurdetail.aspx?ID=559514 qpzmg] l
les autres vont fonctionner...maos niveau securité, aie aie aie !!
ca :
if( isset($_COOKIE['mckay38_themes'])){
$theme = "themes/".$_COOKIE['mckay38_themes']."/theme.php";
c'es vraiment pas securisée du tout !!
enfin c'est mon avis...
-------------------------------------
Les ordinateurs, plus on s'en sert moins, moins ça a de chance de mal marcher. [Les Shadoks]
Guillemouze
Messages postés991Date d'inscriptionsamedi 25 octobre 2003StatutMembreDernière intervention29 août 20136 20 août 2006 à 16:32
audayls, c vrai ce que tu dis, mais le but de ma methode etait d'etre un maximum generique, et ainsi qu'il n'ai pas a modifier toutes ses sources pour ajouter un theme.
Par contre, c vrai que ce n'est pas tout a fait securisé. :s
Pas de souci
Non, le pb ne peut pas venir de Free.
Mais en fait ce qui me faisait rire, c'est qu'Audayls et moi t'avons donné exactement la même réponse ! lol car
$theme = "themes/farscape/theme.php"; include($theme);
c'est la même chose que
require_once( "themes/farscape/theme.php"); (sauf si tu appelles le script de thèmes plusieurs fois, ce qui ne devrait pas être le cas).
Donc s'il y a un pb dans le code que tu as écrit à partir de ma suggestion et pas celle d'Audayls, c'est juste que tu as dû faire une petite coquille quelque part, mais c'est pas grave, du moment que tu as pu appliquer la solution c'est cool.
Voilà, bonne chance pour la suite .
Pour retirer une skin du site sans la supprimer, c'est plus sympa de la retirer d'une liste que de changer le nom de son répertoire, tu penses pas Fhx? et en plus au moins là, aucune possibilité d'y accéder pour un visiteur.
et moi les switchs, tu vas crier mais moi je les verrais bien générés par une boucle à partir d'une simple liste s'il y en a beaucoup
Mais quand même, on en est à 13 posts pour une question aussi simple, c'est fort lol (je sais, j'ai participé à ce flood lol)