コード行は次のいずれかになります (1):
// double quotes on the outside and single quotes on the inside or vice versa
var membre = "<?= $_SESSION['login'] ?>";
またはこれ(2):
var membre = '<?= $_SESSION[' + login + '] ?>';
これは、「login」という名前のプロパティにアクセスするか (1)、「login」という名前の javascript 変数の内容を持つプロパティにアクセスするか (2) によって異なります。
とにかく、あなたのコード ( var membre = '<?= $_SESSION['login'] ?>';
) は、実際には「login」という名前が真ん中にある 2 つの文字列で区切られています。そのため、javascript は文字列"<?= $_SESSION["
を変数に割り当て、membre
その後にセミコロンが必要です。しかし、セミコロンの代わりに "login" という単語が検出され、別のステートメントであると見なされます。そのため、「missing ; before statement」というエラーが表示されます。
編集
Felix Kling が指摘したように、内部の PHP コード<?= ... ?>
が最初に評価されるため、私はここで間違った道をたどりました (以下の彼のコメントを参照)。したがって、内側の一重引用符はここでは問題になりません。