【问题标题】:put session inside echo将会话放入回声
【发布时间】:2015-01-27 14:50:23
【问题描述】:
 if (isset($_SESSION['LAST_ACTIVITY1']) && (time() - $_SESSION['LAST_ACTIVITY1'] > 5)) {


         echo'
    <script type="text/javascript">

    var marks = <?php echo session_unset(); ?>
    var answer = confirm ("Your Session will expired.Click yes to continue or cancel to logout")
    if (answer){
    alert ("Woo Hoo! So am I.")

    }else{
    alert ("Darn. Well, keep trying then.")

// code need to put here is php

    }
    </script>
    ';
    }else{
    }

以上是我当前的代码.. 现在我想在 echo 中插入会话 else.. 如何做到这一点.. 如何将 php 代码放入 php echo 中的 javascript 中 ..

下面是else里面的代码:

if (isset($_SESSION['member_id'])) {
      session_unset();     // unset $_SESSION variable for the run-time
        session_destroy();   // destroy session data in storage


      header('Location: '.AT_BASE_HREF.'login.php?loginexpired=true');
       exit;
  }

【问题讨论】:

  • 你的问题是什么?什么不起作用?除此之外:字符串中的&lt;?php echo session_unset(); ?&gt; 应该如何工作?
  • 我不明白你在做什么。 session_unset() 没有返回任何东西,你为什么要回显它?
  • 您不能在字符串中使用&lt;?php,您只能在从 PHP 脚本解释切换到原始输出时使用它。
  • 因为它在 php 中..我想做弹出...如果单击是它什么也不做..如果没有未设置的会话

标签: javascript php session


【解决方案1】:

当您使用echo 时,您需要使用字符串连接,而不是&lt;?php 来执行PHP 代码。所以应该是:

echo '<script type="text/javascript">

var marks = ' . session_unset() . ';
var answer = confirm ("Your Session will expired.Click yes to continue or cancel to logout");
    if (answer){
        alert ("Woo Hoo! So am I.");

    }else{
        alert ("Darn. Well, keep trying then.")
' . $some_php_var . '
}
</script>';

或者不使用echo,你可以切换出PHP解释:

if (isset($_SESSION['LAST_ACTIVITY1']) && (time() - $_SESSION['LAST_ACTIVITY1'] > 5)) {
    ?>
    <script type="text/javascript">

    var marks = <?php echo session_unset(); ?>;
    var answer = confirm ("Your Session will expired.Click yes to continue or cancel to logout");
    if (answer){
        alert ("Woo Hoo! So am I.");

    }else{
        alert ("Darn. Well, keep trying then.");

    <?php // code need to put here is php
    ?>

    }
    </script>
<?php 
} else{
}

不过,您还有其他问题。 session_unset() 不返回任何内容,因此将其分配给某些东西是没有意义的。以上将导致语句:

var marks = ;

这将导致 Javascript 语法错误。我不确定你想在那里做什么,所以我不知道要改成什么。

【讨论】:

  • 我尝试了您的第二个代码,但它不会发出警报,因为它已使会话过期。你的第一个代码在 . $some_php_var 。我可以更改为 session_unset();我需要将它分配给 $var 吗?
  • 我认为您对 PHP 和 Javascript 的工作方式存在一些误解。 PHP在您创建页面时在服务器上运行,它不受Javascriptif的影响。
  • $some_php_var 也可以是 PHP 函数。但它会在页面创建时运行,并将其结果放入 Javascript 中。
  • 这是否意味着.. 我无法在弹出警报中取消设置会话?
  • 您需要使用 AJAX 向 PHP 发送请求,告诉它取消会话。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-15
  • 2012-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-29
  • 2015-02-14
相关资源
最近更新 更多