Variables de Session non fonctionnelles

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 : Variables de Session non fonctionnelles

Re: Variables de Session non fonctionnelles

par olivioloyer » 01 août 2010, 23:12

Bonjour,

J'ai trouvé la solution en rechargeant simplement l'objet html avec en fin du chemin vers le fichier le #MonAncre

Merci pour votre aide

Re: Variables de Session non fonctionnelles

par AB » 06 juil. 2010, 20:18

Si tu reprends mon exemple en javascript
onmouseover="document.location.href = '#cible'"
adapté à ton code il faut écrire :

Code : Tout sélectionner

onmouseover="document.location.href = '#SagemCom'"
en considérant que SagemCom est le nom de l'id de l'élément vers lequel tu veux te déplacer.

(Encore une fois il n'y a pas besoin de getElementById pour déplacer le scroll vers une ancre).

Si ça ne fonctionne pas, montres le code source de ta page une fois affichée par le navigateur (menu Affichage -> Code source de la page)

Re: Variables de Session non fonctionnelles

par olivioloyer » 06 juil. 2010, 18:48

Bonjour,

Oui ils sont fonctionnels, mais sauf erreur de ma part il ne me permettent pas de faire ce que j'escomptai

car l'id de l'ancre a laquelle j'essaye d'accéder se trouve dans le document html inséré dans ma page, Je suis désolé si je n'ai pas bien compris ce que tu m'expliquai mais je n'arrive toujours pas a déplacer ce scroll du document html, peut-être me suis mal exprimé sur ma requête?

j'ai essayé pas mal de combinaisons mais ca ne donne pas ce que je veux

exemple :
onmouseover= "document.getElementById('CVPart').location.href='#SagemCom'

Merci encore pour ton aide

Re: Variables de Session non fonctionnelles

par AB » 05 juil. 2010, 21:38

Mes deux exemples sont fonctionnels, il te suffisait de les tester.
Tu as simplement fait une faute dans ta syntaxe, compares la tienne et la mienne pour voir la différence.

Re: Variables de Session non fonctionnelles

par olivioloyer » 04 juil. 2010, 21:46

Bonsoir,

Merci,
j'avais compris cette démarche, mais par contre je n'arrive pas à trouver comment déplacer le scroll de mon objet html, car

onmouseover= "document.location.href=#SagemCom"

ne me permet pas d'accéder à l'objet html inséré dans la page

il faudrait que je fasses quelque chose du genre :

document.location.href=document.getElementById('CVPart')'#SagemCom'

ou CVPart est l'id de l'objet html inséré et SagemCom l'id de l'ancre à laquelle je souhaite accéder

Ça ne me pose pas de problème que de faire cela par le lien plutôt que par le onmouseover, mais je ne sais pas si cela est possible puisque je doit accéder a l'objet html et je ne crois pas que ce soit faisable par le href en html donc.

Merci Olivier

Ma question et donc la suivante , Comment faire pour accéder a l'objet html en javascript

Re: Variables de Session non fonctionnelles

par AB » 02 juil. 2010, 17:28

Ah oui et donc en javascript c'est le même principe :

onmouseover="document.location.href = '#cible'"

Mais bon normalement on le fait avec une balise <a > comme dans le message précédent car il est déroutant pour le visiteur de voir déplacer sa page sur un onmouseover et donc normalement pas besoin de javascript

Re: Variables de Session non fonctionnelles

par AB » 02 juil. 2010, 17:20

IL suffit que ta cible ait un id. Ensuite c'est le caractère '#" qui indique que l'on vise une ancre
<a  href='#cible'>Aller vers l'ancre ayant l'id nommé cible</a>

<div id = "cible">...</div>

Re: Variables de Session non fonctionnelles

par olivioloyer » 02 juil. 2010, 15:29

Bonjour,

Et encore merci pour ces informations,
effectivement cela fonctionne avec un $_GET assez simplement néanmoins cela oblige a recharger la page et, en conséquence ne permet pas à ma fonction traduct de s'effectuer normalement puisque la page étant rechargée elle revient automatiquement en Français, enfin ce n'est pas très grave puisque je comptai par la suite m'affranchir de cette fonction traduct en JS pour la remplacer par un acces a MySQL pour lequel je suis encore en phase d'apprentissage sur un tuto(lesiteduzero).

par contre j'ai un autre probleme, dans ma deuxieme page experiences.php, j'integre un objet html en l'occurence mon CV chargé en fonction de la langue choisit sur FR.php,

sur la gauche je conserve le menu de la page precedente par une inclusion, et j'aimerai déplacer le scrollbar de l'objet html inseré dans la page, a une ancre de celui-ci en fonction d'un evenement (click on onmouseover) sur le menu de gauche.

je n'arrive pas a trouver la methode pour déplacer vers une ancre dans un objet html et ce via un lien ou objet du document parent.


Experiences.php
			<tr>
				<td>
					<span>
						<div>
							<?php include("LeftSideMenu.php"); ?>
						</div>
					</span>
				</td>
				<td>							
					<div id="Content" >
						<?php include("ChooseCV.php"); ?>
					</div>
				</td>
			</tr>
LeftSideMenu.php
<div id="LeftSideMenu">
	<div Class="SideElement">
		<p>
			<h1 class="FR"><a id="Experiences" href="" onmouseover= "	window.location.href = document.getElementById("CVpart").getElementById('SagemCom')">Experiences</a></h1>
		</p>
			<h2><a id="SagemCom" >SagemCom</a></h2>
			<h2><a id="Thales" >ThalesAvionics</a></h2>
			<h2><a id="Schlumberger" >Schlumberger<a/></h2>
			<h2><a id="RATP" >RATP</a></h2>
			<h2><a id="AirCanada" >AirCanada</a></h2>
	</div>
	<div Class="SideElement">
		<p>
			<h1 class="FR"><a id="Competences">Competences</a></h1></p>
		<h2>
			<ul>
				<li class="FR"><a id="Test">Test</a></li>
				<li class="FR"><a id="Informatique">Informatique</a></li>
				<li class="FR"><a id="Electronique">Electronique</a></li>
				<li class="FR"><a id="Automatique">Automatique</a></li>
			</ul>
		</h2>
	</div>
</div>
ChosseCV.php
<?php 
	
	$_SESSION['lang'] = isset  ($_SESSION['lang']) ? $_SESSION['lang'] : 'FR'; // ici FR est la langue par défaut
	$_SESSION['lang'] = isset($_GET['lang'])? $_GET['lang'] : $_SESSION['lang'] ;
	
	$lang = $_SESSION['lang'];

	//print_r($_SESSION);
	
	$CV_Lang['FR'] = '../cv/CV_FR.html';
	$CV_Lang['ENG'] = '../cv/CV_ENG.html';
	$CV_Lang['ESP'] = '../cv/CV_ESP.html';
	$CV_Lang['BR'] = '../cv/CV_BR.html';
	
	if(isset($_SESSION['lang']))
	{
		echo '<object id="CVPart" data=';
		echo $CV_Lang[$lang];
		echo ' type="text/html" />';
	}
	else
	{
		echo '<div id="Content"><object id="CVPart" data="../cv/CV_FR.html" type="text/html"/></div>';
	}
?>
je suppose que la methode window.location.href = document.getElementById("CVpart").getElementById('SagemCom') n'est pas la bonne mais dans ce cas la par exemple je cherche a déplacer le scroll de l'objet html inserer dans le conteneur central de la page a l'ancre SagemCom et ce au passage de la souris sur le lien Experiences dans leftsidemenu.

Merci

Re: Variables de Session non fonctionnelles

par AB » 01 juil. 2010, 16:57

Bon je comprends a peu près la démarche, mais la variable ne va-t-elle pas passer par l'URL dans ce cas la? et du coup il n'y a pas d'intérêt d'utiliser une variable de session non? j'aurai pu le faire directement en variable get,

Merci

Olivier
Effectivement, il n'y a pas nécessairement d'intérêt. Une variable de session permet de garder sa valeur de pages en pages; mais si toutes tes pages ont une variable get pour indiquer la langue en cour, la variable de session n'est pas nécessaire dans ce cas.

D'ailleurs il y a tout intérêt d'avoir une variable get dans l'URL (adresse de la page) pour différencier les langues. Sinon pour google et autres moteurs de recherche il n'existerait qu'une même adresse pour des contenus différents (traduits en français ou anglais ou ...), ce qui n'est pas bon pour le référencement.

Donc effectivement tu peux te passer d'une variable de session et utiliser une variable $_GET. Il faut juste penser à faire passer la langue en cour par l'intermédiaire de cette variable dans l'url (l'adresse) de toutes tes pages.

Et donc le ? juste derrière l'adresse de la page est précisément fait pour délimiter le query_string, c'est à dire les variables $_GET contenues dans l'adresse de la page. Ainsi si je mets ceci dans un lien
<a href="toto.php?il=elle">lien</a>
le navigateur tentera d'afficher la page toto.php et affectera la valeur "elle" à la variable $_GET['il'];

En phase de développement mets le code suivant en haut de ta page php pour voir le résultat
echo '<pre>';
print_r($_GET);
echo '</pre>';

Fait des tests dans une page séparée pour visualiser le résultat.

Et si tu veux passer plusieurs couples (variable $_GET = valeur) tu les sépare par & dans le code html
<a href="toto.php?il=elle&lui=fou">lien</a>
Commences par bien comprendre ce truc ensuite je te donnerai un peu plus de code pour passer les langues, les enregistrer dans un cookie, récupérer la langue préférée du visiteur pour l'afficher par défaut dès l'affichage de la première page etc.

Re: Variables de Session non fonctionnelles

par olivioloyer » 01 juil. 2010, 15:40

Je tiens d'ailleurs a féliciter les développeur, pour le forum, je le trouve extrêmement ergonomique, il manque juste, sauf erreur de ma part(il se peut que je n'ai pas compris ou ca se trouvai) un moyen pour replier les messages sur une ligne par exemple, à la gmail..., afin de limiter la taille de la page quand des novices écrivent des messages a rallonge...,

Re: Variables de Session non fonctionnelles

par olivioloyer » 01 juil. 2010, 15:26

Rebonjour,

je me corrige
($_SERVER['PHP_SELF']) 
//recupere le chemin du script php en cours
.'?lang=FR'?>"> 
//valeur lang affectée a FR

j'ai donc rajouté les lignes suivantes:
<td><a href="<?php  echo htmlspecialchars($_SERVER['PHP_SELF']).'?lang=ENG'?>"><img class="Flag" src="pics/ENG_Flag.png" alt="ENG" onmouseover="Traduct('ENG')" /></a></td>
<td><a href="<?php  echo htmlspecialchars($_SERVER['PHP_SELF']).'?lang=ESP'?>"><img class="Flag" src="pics/ESP_Flag.png" alt="ESP" onmouseover="Traduct('ESP')" /></a></td>
<td><a href="<?php  echo htmlspecialchars($_SERVER['PHP_SELF']).'?lang=BR'?>"><img class="Flag" src="pics/BR_Flag.png" alt="BR" onmouseover="Traduct('BR')" /></a></td>
mais j'ai toujours pas compris ( a quoi sert le premier "?")

et pour:
$_SESSION['lang'] = isset($_GET['lang'])? $_GET['lang'] : $_SESSION['lang']  
//opérateur ternaire , si get lang a une valeur alors session lang prends la valeur de get lang sinon elle prends la valeur de session lang



bon par contre, j'ai pas l'impression que ca marche j'ai peut-être fait quelque chose de travers?

Bon je comprends a peu près la démarche mouais enfin comme si comme ca quand même une petite clarification me ferai pas de mal


Merci

Re: Variables de Session non fonctionnelles

par olivioloyer » 01 juil. 2010, 13:12

Bonjour et merci,

Mais si je puis me permettre, j'eusse esperé quelque chose de plus "simple" (tout est relatif, mais je suis débutant....héhé)
je vais essayer de décortiquer ton code, corrigez moi si je me trompe:

<td><a href="<?php echo htmlspecialchars($_SERVER['PHP_SELF']).'?lang=FR'?>"><img class="Flag" src="pics/FR_Flag.png" alt="FR" onmouseover="Traduct('FR')" /></a></td>
//etc.


<a href="< //un lien sur l'image
<?php echo htmlspecialchars //traduit les caracteres speciaux pour le html
($_SERVER['PHP_SELF']) //recupere le chemin du script php en cours
.'?lang=FR'?>"> //valeur pour lang par défaut?? ( a quoi sert le premier "?")


$_SESSION['lang'] = isset ($_SESSION['lang']) ? $_SESSION['lang'] : 'FR'; // ici FR est la langue par défaut
$_SESSION['lang'] = isset($_GET['lang'])? $_GET['lang'] : $_SESSION['lang'] ;


$_SESSION['lang'] = isset ($_SESSION['lang']) ? $_SESSION['lang'] : 'FR'; //opérateur ternaire, si Session lang à une valeur il vaut session lang sinon il prend FR par défaut


$_SESSION['lang'] = isset($_GET['lang'])? $_GET['lang'] : $_SESSION['lang']
//opérateur ternaire , si get lang a une valuer alors session lang prends la valeur de get lang sinon c'est get lang qui prend la valeur de session lang


Bon je comprends a peu près la démarche, mais la variable ne va-t-elle pas passer par l'URL dans ce cas la? et du coup il n'y a pas d'intérêt d'utiliser une variable de session non? j'aurai pu le faire directement en variable get,

Merci

Olivier

Re: Variables de Session non fonctionnelles

par AB » 30 juin 2010, 21:31

Bien,

Après quelques googlages je réponds moi même a ma question, et vous me direz si je me trompe mais apparement je ne peux faire :

<td><img class="Flag" src="pics/FR_Flag.png" alt="FR" onmouseover="Traduct('FR')" onclick = "<?php $_SESSION['lang'] = 'FR';?>"/></td>
<td><img class="Flag" src="pics/ENG_Flag.png" alt="ENG" onmouseover="Traduct('ENG')" onclick = "<?php $_SESSION['lang'] = 'ENG';?>"/></td>
<td><img class="Flag" src="pics/ESP_Flag.png" alt="ESP" onmouseover="Traduct('ESP')" onclick = "<?php $_SESSION['lang'] = 'ESP';?>"/></td>
<td><img class="Flag" src="pics/BR_Flag.png" alt="BR" onmouseover="Traduct('BR')" onclick = "<?php $_SESSION['lang'] = 'BR';?>"/></td>

car php remplace le code coté serveur par la valeur de la variable et ce avant le chargement de la page coté client donc, il est normal que je me retrouve toujours avec BR comme valeur,

Comment peut on palier simplement a ce probleme?
merci
Bah tu fait un lien standard avec une variable $_GET que tu pourras toujours enregistrer dans une variable de session si tu veux

code html
<td><a href="<?php echo htmlspecialchars($_SERVER['PHP_SELF']).'?lang=FR'?>"><img class="Flag" src="pics/FR_Flag.png" alt="FR" onmouseover="Traduct('FR')" /></a></td>
//etc.
et dans ton code php
$_SESSION['lang'] = isset ($_SESSION['lang']) ? $_SESSION['lang'] : 'FR'; // ici FR est la langue par défaut
$_SESSION['lang'] = isset($_GET['lang'])? $_GET['lang'] : $_SESSION['lang'] ;

Re: Variables de Session non fonctionnelles

par olivioloyer » 30 juin 2010, 21:07

Bien,

Après quelques googlages je réponds moi même a ma question, et vous me direz si je me trompe mais apparement je ne peux faire :

<td><img class="Flag" src="pics/FR_Flag.png" alt="FR" onmouseover="Traduct('FR')" onclick = "<?php $_SESSION['lang'] = 'FR';?>"/></td>
<td><img class="Flag" src="pics/ENG_Flag.png" alt="ENG" onmouseover="Traduct('ENG')" onclick = "<?php $_SESSION['lang'] = 'ENG';?>"/></td>
<td><img class="Flag" src="pics/ESP_Flag.png" alt="ESP" onmouseover="Traduct('ESP')" onclick = "<?php $_SESSION['lang'] = 'ESP';?>"/></td>
<td><img class="Flag" src="pics/BR_Flag.png" alt="BR" onmouseover="Traduct('BR')" onclick = "<?php $_SESSION['lang'] = 'BR';?>"/></td>

car php remplace le code coté serveur par la valeur de la variable et ce avant le chargement de la page coté client donc, il est normal que je me retrouve toujours avec BR comme valeur,

Comment peut on palier simplement a ce probleme?
merci

Re: Variables de Session non fonctionnelles

par olivioloyer » 30 juin 2010, 19:12

Rebonjour,

Et oui me revoilà déjà,

Alors ca marchait parfaitement,

<td><img class="Flag" src="pics/FR_Flag.png" alt="FR" onmouseover="Traduct('FR')" onmouseover= "<?php $_SESSION['lang'] = 'FR';?>"/></td>
<td><img class="Flag" src="pics/ENG_Flag.png" alt="ENG" onmouseover="Traduct('ENG')" onmouseover= "<?php $_SESSION['lang'] = 'ENG';?>"/></td>
<td><img class="Flag" src="pics/ESP_Flag.png" alt="ESP" onmouseover="Traduct('ESP')" onmouseover= "<?php $_SESSION['lang'] = 'ESP';?>"/></td>
<td><img class="Flag" src="pics/BR_Flag.png" alt="BR" onmouseover="Traduct('BR')" onmouseover= "<?php $_SESSION['lang'] = 'BR';?>"/></td>
<td><p><?php echo $_SESSION['lang'];?></p></td>

et ma variable changeait au passage de la souris sur l'image, mais pour je ne sais quelle raison, la valeur de $_SESSION['lang'] ne peut maintenant plus être modifié, et l'affichage de print_r($_SESSION) me donne Array([lang]=>BR) seulement je ne peut plus modifier cette valeur

Je ne sais pas ce qu'il s'est passé entre temps.

MERCI