Forums Développement Multimédia

Aller au contenu

- - - - -

confirmer la valeur d'une variable session grace au javascript

php javascript

5 réponses à ce sujet

#1 pcxpert

    Ceinture Orange

  • Members
  • PipPipPip
  • 32 messages

Posté 04 April 2015 - 10:48 AM

Bon matin, j'ai un menu qui doit etre afficher dependant du status de l'utilisateur alors j'ai cree une condition pour savoir le status en question.
Depuis 2 jours j'essais de trouver ce qui cloche avec ma condition suivante:

mon_fichier.js


if(<?php echo !isset($_SESSION['username'])?'false':'true'; ?>) {
alert("true");
membre =true;
changeMenu('membre');
}
else {
alert("false");
admin =true;
changeMenu('admin');
}



Si je met le code entre balise script dans mon .php je recois bien les alertes par contre la console affiche changemenu est undefined et lorsqu'il est dans mon js je recois aucune alerte par contre la console affiche SyntaxError: expected expression, got '<'
Je dois absolument le garder dans mon .js pour l'integrer dans le scope merci d'avance.

#2 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 7004 messages

Posté 04 April 2015 - 17:26 PM

Salut,

Tu ne peux pas écrire du PHP dans un fichier JS, PHP (langage serveur) est exécuté depuis le serveur, alors que JS est exécuté depuis le client (navigateur). Tu peux en revanche placer du PHP et du JS au sein d'une page HTML (ou PHP), mais sans pour autant les mélanger.

Dans tous les cas ton script ne peut pas marcher puisque tu essaye de mélanger deux langages qui ne sont pas interprétés au même moment et ne se comprennent pas entre eux...

Tu peux en revanche utiliser une condition PHP pour remplir une variable JS, par exemple un truc du genre (pas du tout testé) :

<?php
"si ta condition est vraie"
<script> renseigne ta variable JS à true</script>
"sinon"
<script> renseigne ta variable JS à false</script>
?>

<script> ton script JS qui dépend de la variable</script>

PHP sera exécuté sur le serveur et te renverra directement la valeur de la condition dans ta page HTML, puis le JS sera exécuté selon le résultat de la condition.

#3 pcxpert

    Ceinture Orange

  • Members
  • PipPipPip
  • 32 messages

Posté 04 April 2015 - 18:14 PM

en fait si il est possible d'executer du code javascript et php en meme temps car il y a plusieurs annee j'ai eu recourt a cette methode.
je me souvien que je devais renomer le js en php et que je devais inclure un genre de meta dans le fichier meme mais pour le reste cela reste vague.

#4 pcxpert

    Ceinture Orange

  • Members
  • PipPipPip
  • 32 messages

Posté 04 April 2015 - 18:23 PM

merci je viens de tester avec un booelen et cela marche meme si il est en dehors du scope :)

#5 Monsieur Spi

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 7004 messages

Posté 04 April 2015 - 18:57 PM

Re,

A lire : http://www.toutjavas...r/savoir17.php3
PHP interprété en premier (serveur) puis le HTML et le JS (navigateur), donc on peut mettre du JS dans du PHP mais pas l'inverse.

Une solution pour "mixer" les deux :

<?php echo 'var maVariable = ' . $variable; ?>

Content que la solution avec le Boolean fonctionne ;)

#6 pcxpert

    Ceinture Orange

  • Members
  • PipPipPip
  • 32 messages

Posté 05 April 2015 - 06:56 AM

Bonsoir Monsieur Spi, grâce a votre dernier commentaire j'ai résolue le problème car oui j'avais tester le bool mais simplement dans un script pure javascript et en essayant avec du php la boucle me retournais toujours false.

Par contre <?php echo 'var maVariable = ' . $variable; ?> fait un echo avec la variable et la valeur de la variable alors je savais que nous étions proche de la réponse j'ai simplement déplacé le echo et par magie cela a fonctionné :) merci encore.

<?php
//include .....

sec_session_start();

if (login_check($mysqli) == true) {
$logged = 'in';

} else {
$logged = 'out';
}

?>

<script>
var testing123 = '<?php echo $logged; ?>';
if (testing123=="in") {
alert('in');
} else {
alert('out');
}
</script>




Répondre à ce sujet



  

1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP