8795 sujets

Développement web côté serveur, CMS

salut j'ai un petit soucis avec ce script qui ne fonctionne que en local... mais pas sur mon serveur OVH !!

je n'arrive pas à recuperer la valeur du get $_get
pourtant dans mon phpinfo() register global est allumé

ce script sert à changer le theme de l'interface (couleur, image en background...)
ces themes sont stockés dans un tableau

si qqu'un peut me dire ce qui foire ça m'aiderais enormement


//------- les différents themes -----------------------------------------
$theme['1']['url'] = 'Vultures_test.jpg';
$theme['1']['couleur'] = '#6C8DC2';
$theme['1']['couleur_boite'] = '#6C8DC2';
$theme['1']['infocus'] = 'blue';
$theme['2']['url'] = 'Spoonbill_test.jpg';
$theme['2']['couleur'] = '#CBC0BF';
$theme['2']['couleur_boite'] = '#CBC0BF';
$theme['2']['infocus'] = 'blue';
$theme['3']['url'] = 'abeille-4_jpg_test.jpg';
$theme['3']['couleur'] = '#86AC85';
$theme['3']['couleur_boite'] = '#86AC85';
$theme['3']['infocus'] = 'lime';

// je recupere le theme envoyé dans le get (à terme on le mettera dans une session et un cookie)
if (isset ($_GET["theme"])){
    $num_theme = $_GET["theme"] ;
    //c'est ici que tout foire si dans mon url theme est present (www.url.eu?theme=2 ne fonctionne pas)
}
else{
    $num_theme = 1 ;//theme à afficher
}

$num_max = 3;

if($num_theme < $num_max){
    $lien_theme = $num_theme + 1 ;
}
else{
    $lien_theme = 1 ;//prochain theme
}



voilà merci pour vos avis
Modifié par quent. (16 May 2010 - 18:35)
ce qui me permet de parsemer mon css de petit
 print ($theme[$num_theme]['couleur']); 
//etc...

où $num_theme correspond au ?theme=x de l'url
(ou à 1 par Default)
Bonjour;

quent. a écrit :

je n'arrive pas à recuperer la valeur du get $_get
pourtant dans mon phpinfo() register global est allumé


Pour ce qui est de ce qui arrive sur ta page, regardes avec cela.


print_r($_GET); 
print_r($_REQUEST);
print_r($_POST);


Pour ce qui est de ton script et de la façon d'attribuer les thèmes c'est autre chose.
Tu dois pouvoir simplifer je pense.

Smiley cligne
print_r($_get) me donne : Array ( Smiley theme => 2 )
donc ovh prend bien en compte mon get... ok mais alors pourquoi ça marche pas ?!!


print_r($_GET[theme]) //donne 2
print_r($num_theme) //donne 2
print_r($theme[$num_theme]['couleur']) //donne rien du tout !! 
quent. a écrit :
print_r($_get) me donne : Array ( theme => 2 )


Donc :

$theme[$_GET["theme"]];

si $_GET["theme"] est bien int de 1 à 3 c'est ainsi que tu dois faire.
Donc tu peux utiliser cela pour définir ton style sans plus de lignes de code je pense.

Smiley cligne
Modifié par mdisc (16 May 2010 - 18:41)
Je ne vois donc pas pourquoi tu ne peux pas assigner ton tableau avec $_GET['theme'] ?????

As tu essayé de définit une variable (ce qui revient au même et prend une ligne de code en plus)?


$index = $_GET['theme'];
print_r($theme[$index]);


Smiley ohwell
c'est dans mon script

quent. a écrit :


if (isset ($_GET["theme"])){
    $num_theme = $_GET["theme"] ;
}


et effectivement ça marche...

//car
print_r($num_theme) //donne 2 

//mais hélas...
print_r($theme[$num_theme]['couleur']) //donne rien du tout !!  


... je comprend pas
le plus étrange c'est que ça marche (c'est à dire il attribut le theme par défaut càd le 1) quand y a pas le ?theme=x à la fin de l'url,
donc c'est que mon histoire de array fonctionne bien...

je sais pas où ça couille Smiley eek
Modifié par quent. (16 May 2010 - 19:24)
Salut,

$theme['2']['couleur'] = '#CBC0BF'; 


c'est bizarre comme façon d'indexer son tableau ( en chiffre sous forme de chaine)

tu ne trouves pas?


$theme['2']['couleur'] 

et

$theme[2]['couleur']


peuvent être très ambiguës.

dans le premier cas c'est un élément de tableau nommé correspondant a la clé '2'
dans l'autre un élément de tableau ordonné en 3eme position.

mais '2' et 2 peuvent être interprété comme similaire dans bien des situations en PHP.

ceci dit ici je me demande si c'est toujours le cas.

peut-être des paramétrisation php ou apache doivent jouer. même si je suppose je connais pas précisément.

même si c'était pas ça je te conseille de n'utiliser que des purs chiffres pour faire un tableau numéroté. éviter les trucs bizarre c'est une bonne habitude en programmation.

Pascal.
Modifié par CPascal (17 May 2010 - 22:08)