design aléatoire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : design aléatoire

indice aleatoire

par eric1 » 04 août 2005, 12:05

cela marche,c'est ma faute,j'ai mal recopié ton code final !! MILLE EXCUSES.

Merci ouckileou pour ta patience et ton aide hyper précieuse !!

par ouckileou » 04 août 2005, 11:42

non pas vraiment

j'ai corrigé le code avec la remarque de l'invité, je l'avais oublié, retente on en sait jamais...

et en passant : plutôt que de mélanger le tableau et de prendre la première cellule, ne serait-il pas plus simple de le garder fixe et de choisir un indice au hasard ? :roll:
à mon avis c'est plus optimisé ;)

apparemment rien dans ma variable,pourquoi?

par eric1 » 04 août 2005, 11:34

voilà j'ai recopié exactement le meme code que tu m'as donné et voilà ce qui est marqué :


sur la page index.php , j'ai :

Code : Tout sélectionner

design=
et sur les autres pages quand je navigue,cela me donne :

Code : Tout sélectionner

design=design=

comprends-tu ce qui se passe ?

Eric

par ouckileou » 04 août 2005, 11:20

pense à rajouter la modification signalée par l'invité aussi

affiche ta variable pour voir ce qu'il y a dedans, et éventuellement rajoute un test :
<?php
session_start();
echo 'design='.$_SESSION['design'];
if(isset($_SESSION['design']) && !empty($_SESSION['design'])) {
   $css = $_SESSION['design'];
} else {
   $design = array("rouge","vert","bleu","violet");
   shuffle($design);
   $css=$design[0];
   $_SESSION['design'] = $css;
}
?>

toujours pas

par eric1 » 04 août 2005, 11:17

merci ouckileou, mais cela ne marche toujours pas et pourtant j'ai mis ce code sur toute mes pages,je ne comprends plus RIEN ..
et meme avec start_session(); devant tout code !!

sniff sniff ,il change sans cesse de design...

Eric

par ouckileou » 04 août 2005, 11:09

à rajouter dans le else :

Code : Tout sélectionner

$_SESSION['design'] = $css;
exact ! :pouce:

par Tho » 04 août 2005, 11:08

à rajouter dans le else :

Code : Tout sélectionner

$_SESSION['design'] = $css;

par ouckileou » 04 août 2005, 11:01

le session_start() doit être en tout premier (c'est marqué dans le tuto)
<?php
session_start();

if(isset($_SESSION['design'])) {
   $css = $_SESSION['design'];
} else {
   $design = array("rouge","vert","bleu","violet");
   shuffle($design);
   $css=$design[0];
}
?>
oui tu dois mettre ce code dans toutes tes pages, si un utilisateur ne passe pas par la page d'accueil sinon, il n'aura pas de style défini

question bete

par eric1 » 04 août 2005, 10:57

cela marche toujours pas, en fait question bete :

j'ai ecrit ce code seulement pour ma page index.php (qui contient un menu par include() ) :
<?php
$design = array("rouge","vert","bleu","violet");
if(isset($_SESSION['design'])){
session_start();
$css = $_SESSION['design'];
}
else
{
shuffle($design);
$css=$design[0];
}
?>
Mais quand j'appelle les autres pages par le biais des variables par URL GET, dois-je également mettre ce bout de code ci-dessue à toutes mes pages pour que cela marche?

Pouvez vous me confirmer?

Si ce n'est pas le cas,alors,je ne comprends plus rien...

Eric ( je suis un peu perdu là... )

ouckileou, aides moi stp !

par ouckileou » 04 août 2005, 10:49

il te faut initialiser la session avec session_start() dans ta page :)

regarde ce tuto qui pourrait t'aider : http://www.phpdebutant.org/article69.php

cela ne marche pas

par eric1 » 04 août 2005, 10:44

sniff sniff ,cela ne marche pas,j'ai écrit cela ( oui oui je sais,je suis nul avec les variables de session :

<?php
$design = array("rouge","vert","bleu","violet");
if(isset($_SESSION['design'])){
session_start();
$css = $_SESSION['design'];
}
else
{
shuffle($design);
$css=$design[0];
}
?>

<html>
<head>

<?php

echo "<style type=\"text/css\">";
echo "@import url(".$css.".css);";
echo "</style>";

?>

</head>
<body>

</body>
</html>


que faire?

Eric

par Cyrano » 04 août 2005, 10:05

Salut,
déjà, il faut savoir que la session en général utilise des cookies, même si tu ne les définis pas toi-même.

Ceci dit, pour avoir le même design d'une page sur l'autre, il faut que tu fixes la valeur de ta variable de session. Donc ce que tu peux faire, c'est à l'arrivée de l'internaute vérifier si une valeur de style est définie dans la variable de session:
- si oui, tu gardes la même;
- si non, tu mélanges le tout, tu secoues bien et tu définis un style aléatoire, et pour les autres pages, retour ligne précédente.

par ouckileou » 04 août 2005, 10:04

tu testes : si la variable de session $tableau n'existe pas, tu la crées avec ta méthode
sinon tu n'y touches plus

design aléatoire

par eric1 » 04 août 2005, 10:00

bonjour à vous toutes et tous,

Voilà,je souhaiterais réaliser un design aléatoire grâce au CSS sans utiliser les cookies, voilà mon code :
<?php
$design = array("rouge","vert","bleu","violet");
shuffle($design);
?>

<html>
<head>

<?php

echo "<style type=\"text/css\">";
echo "@import url(".$design[0].".css);";
echo "</style>";

?>

</head>
<body>

</body>
</html>
Le problème est que lorsque je navigue d'une page à une autre, je change de design à chaque fois !!! Or ce n'est pas ce que je veux !! Je veux qu'il y ait un design DIFFERENT seulement lorsque je suis dans la même session !!

Mais je ne sais pas comment et où mettre la variable de session pour que cela marche.

J'espère avoir été clair au niveau de ma demande, pourriez -vous corriger mon code pour que clea marche svp ?. Merci pour vos aides.

Eric

P.S. : j'ai utilisé la fonction shuffle() pour mélanger de façon aléatoire mon tableau $design[/u]