croco

  • Nombre de sujets
    5
  • Nombre de messages
    19
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses derniers sujets sur les forums

croco
le 31/07/2007 à 11:05
priorité de styles css ?
Bonjour,

J'essaie de comprendre comment sont appliqués les styles selon qu'on utilise des class ou id ou rien, et plus précisément dans quels cas un style défini en class ou id semble s'appliquer à un élément qui ne fait pas appel à class ou id.

Voici l'exemple :

Fichier html, avec 2 zones de test comportant des listes
<HTML>
<HEAD>
<link rel="stylesheet" href="style-typographie.css" type="text/css">
<!-- <link rel="stylesheet" href="style-sommairegauche.css" type="text/css" media="projection, screen, tv"> -->
<link rel="stylesheet" href="style-page.css" type="text/css" media="projection, screen, tv">

</HEAD

<BODY>

<div ID="zone-1">

ZONE 1
<p>
Liste zone 1
<ul>
<li>donn&eacute;e a</li>
<li>donn&eacute;e b</li>
<li>donn&eacute;e c</li>
</ul>
D&eacute;finition zone 1
<dl>
<dt>Titre A</dt>
<dd>le texte A de d&eacute;finition</dd>
</dl>

</div>

<div ID="zone-2">

ZONE 2
<p>
Liste zone 2
<ul>
<li>donn&eacute;e A</li>
<li>donn&eacute;e B</li>
<li>donn&eacute;e C</li>
</ul>
D&eacute;finition zone 2
<dl id="noir">
<dt>Titre B</dt>
<dd >le texte B de d&eacute;finition</dd>
</dl>

</div>
</BODY>
</HTML>


Et le fichier css :
#zone-1 {
position: absolute;
top: 25px;
left: 100px;
height: 300px;
width: 500px;
background-color:#FFC0C0;
}

#zone-2 {
position: absolute;
top: 350px;
left: 100px;
height: 400px;
width: 400px;
background-color:#C0C0FF;
}

/* définit une liste de définition avec le dd en noir */
dl#noir dd {
color:black;
}

/* définit le style général des listes non ordonnées */
ul, li .liste {
list-style-type: circle;
}

/* définit le style général des listes de définitions */
dt, dl {
font-weight:bold;
color:red;
}

dd {
font-weight:normal;
font-style:italic;


De cette manière cela fonctionne, j'ai bien mes listes de définition en rouge sauf le dd de la zone 2 qui est en noir grâce à #noir.

Mais si je place
dl#noir dd {
color:black;
en fin de css, il n'est plus pris en compte, alors que l'appel de cet ID est explicite avec <dl id="noir">.
Comment se fait-il qu'un style non explicitement appelé (.liste) soit prioritaire sur un style appelé ?
Quelle est la règle ?
C'est ici un exemple simple pour tester les effets, mon problème réel se situe dans un site dynamique de structure plus complexe, avec un style de liste défini pour des menus déroulants qui interragissent avec des listes faisant partie du contenu de certaines pages.
croco
le 17/07/2007 à 15:45
variable globale sous IE et FF
Bonjour,

Voici mon problème : la gestion de session utilisateur fonctionne sous FireFox mais pas sous IE(6 sp2).

Dans un fichier "login-verif.php servant à vérifier login et mot de passe saisis dans un formulaire d'identification, on teste la validité de ces éléments et si c'est bon la variable globale $S_SESSION['sessionlogin'] est initialisée.
Plus loins j'ai le code suivant :

<?php 
header("Location: SiteFR.php?page=login-okFR");
exit;
?>


"SiteFR.php" est le fichier structurant du site, avec CSS et include des différents éléments.
Dans ce cas, c'est le corps de page "login-okFR.php" qui est en "include". Ce corps de page contient juste l'information que le visiteur est bien connecté :

<?php 
echo "Connexion établie en tant que \"".$_SESSION['sessionlogin']."\"\n";
?>


$_SESSION['sessionlogin'] est bien sûr utilisée pour gérer l'accès à certaines rubriques et données.
Ceci fonctionne sous FireFox mais pas sous IE.
J'ai placé des echo sur la valeur de $_SESSION['sessionlogin'] à différents endroits. La valeur est toujours celle attendue avec FF, mais avec IE la valeur est bonne juste avant : header("Location: SiteFR.php?page=login-okFR"); , mais la variable est vide une fois SiteFR.php chargée (session_start(); étant en début de SiteFR.php).

J'ai testé sur 2 PC différents avec le même résultat.

Quelqu'un peut-il m'expliquer ce qui se passe ? Je suppose que s'il y avait une grossière erreur dans le code la variable globale serait perdue aussi avec FireFox.
croco
le 20/05/2007 à 23:49
problème d'include et de chemin
Bonjour,
Voilà mon problème :
J'avais un index.html automatiquement sur la vraie page structurant le site:
répertoire /site/squelette/site.php

site.php mettant en place les div nécessaire et incluant 5 contenus : le sommet, le sommaire à gauche, une marge droite, le pied de page et la corps de page, ceci par des 'include', constitués par des fichiers php situés eux aussi dans /site/squelette/.
Par exemple, pour la partie haute, cela donnait dans site.php le code suivant :
<?php 

if (!isset($_GET['page'])) {$page= 'introFR';} else {$page= $_GET['page'];}
// cette variable servant à appeler les contenus dynamiques pour le corps de page, le titre, le header...
.........

echo "<div id=\"haut\">\n";
include "ongletFR.php";
echo "</div>\n";

.........
?>


Et dans ongletFR.php se trouvait le code suivant (entre autres éléments qui ne posent pas problème et que je ne copie pas):

<?php 

include "../titres/FR/".$page."_titre.php";

?>


Tout cela fonctionnait mais je veux me débarrasser du renvoie de page et donc je déplace le fichier site.php à la racine, en le renommant index.php. Ceci implique bien sûr de faire les modifications nécessaires dans tous les fichiers liés, sans oublier ce qui est en include.
C'est aussi l'occasion de reprendre le code en systématisant les chemins définis sur la base de $_SERVER['DOCUMENT_ROOT'];

Le code devient, pour les mêmes éléments :
<?php 
$chemin_racine=$_SERVER['DOCUMENT_ROOT'];
.............
if (!isset($_GET['page'])) {$page= 'introFR';} else {$page= $_GET['page'];}
// cette variable servant à appeler les contenus dynamiques pour le corps de page, le titre, le header...
.........

echo "<div id=\"haut\">\n";
include $chemin_racine."/site/squelette/ongletFR.php";
echo "</div>\n";

.........
?>


et pour onglet.php
<?php 
include "".$chemin_racine."site/titres/FR/".$page."_titre.php";
?>


Or ceci renvoie l'erreur suivante :
Warning: main(): Unable to access /home/ischyrochampsa/www/site/titres/FR/_titre.php in /home/ischyrochampsa/www/site/squelette/ongletFR.php on line 29
C'est '_titre.php' qui est cherché au lieu de 'introFR_titre.php' : j'en déduis que onglet.php est interprété avant d'être inclus, donc il renvoie un chemin sans que la variable $page ait été intégrée au nom du fichier.
=> pourquoi ce changement de comportement par rapport au chemin relatif d'origine (quand site.php incluant onglet.php était dans le même répertoire) ?

En faisant passer la variable par un GET ça rentre dans l'ordre, mais j'aimerais savoir pourquoi le code devient interprété (donc que ça comporte comme si j'avais mis comme chemin www.mondomaine.fr/blabla....).

J'aurais d'autres questions mais je préfère revoir celles-ci à tête reposée.
croco
le 29/12/2006 à 00:37
durée de session
Bonjour,

Je souhaite limiter la durée de vie d'une authentification par un utilisateur sur mon site (afin que les parties réservées ne restent pas longtemps accessibles si l'utilisateur laisse la page ouverte).
La durée de vie de session est limitée par mon hébergeur à 180 mn, ce que je trouve trop long.
Je souhaite réduire cette valeur mais je n'y parviens pas.

J'utilise session_cache_expire (x); (x = durée en mn) précédent session_start();

Quelle est la bonne méthode ? Le bon outil ?
croco
le 08/12/2006 à 00:56
txt qui va, php qui ne va pas
Tout d'abord bonjour, puisque je viens de m'inscrire.

Pour essayer de faire bref :
j'ai des problèmes avec des fichiers "cibles" xxx.php, alors qu'en le nommant xxx.txt le problème n'apparait pas.
Exemple :
Dans un fichier index.php, accompagné de fichiers css, plusieurs éléments sont appelés, tels que :

<?php
$url=$_SERVER["HTTP_HOST"];
$chemin_racine="http://".$url."";
?>

(ça c'est pour que vous sachiez ce que représente $chemin_racine)

<?php include $chemin_racine."/site/sommaire.php"; php ?>


Le problème apparait si dans le code passé par "include" j'ai besoin de récupérer une variable $_SESSION['blabla"], car la session (ouverte, bien sûr) se perd en route : vérification faite, la variable est vide.

Autre exemple, dans un élément de page chargé dans les mêmes conditions servant à fermer une session, la fonction session_destroy(); renvoie un message indiquant que je cherche à fermer un session qui n'existe pas.

Or, si je renomme ces fichiers en .txt (sommaire.php pour le premier exemple), tout rentre dans l'ordre, sans rien changer au contenu.
COmme il s'agit d'include - c'est-à-dire sauf erreur rien d'autre qu'une sorte de copier/coller automatique, je ne comprends pas et ne parviens pas à trouver la solution.

Si je " m'amuse " à faire depuis ma page d'index un include sur une partie nommée en .txt et une autre en .php, les deux affichant par exemple le pseudo de la session ouverte, la partie txt affiche le pseudo, la partie php reste muette.

Et, ça me gène de laisser des fichiers .txt dont le contenu est édité si on met leur chemin exact en url.

J'ai l'impression de tourner autour d'un truc évident, mais je ne trouve pas.

Merci d'avance si quelqu'un peut m'aider.
LoadingChargement en cours