【问题标题】:my php file called by post method in javascript cant access sessions why?我的 php 文件在 javascript 中由 post 方法调用,无法访问会话,为什么?
【发布时间】:2014-01-16 19:28:32
【问题描述】:

大家好,我正在尝试为我的网站编写简单的 cmets。我以某种方式找到了如何使用 jquery,但是当我从该查询中调用 post 方法时,我无法访问 $_SESSION('jmeno') 并且我不知道我错过了什么。 有我的代码

html ..

<li><input name="com" class="komentar" type="text" placeholder="Váš komentář..." IDCard="<?php echo $IDcard ?>" /></li>

js:

<SCRIPT type="text/javascript" src="/../jquery.js"></SCRIPT>
            <SCRIPT type="text/javascript" >

                $(document).ready(function(){   
        $('.komentar').keyup(function(e){
        if(e.keyCode == 13){

            var IDcard = $(this).attr('IDcard');
            var comment = $(this).val();
            $.post('commentService.php',{ IDcard: IDcard, comment: comment});
            $(this).val('');
        }
        });
    });
            </SCRIPT>

我的commentService.php 看起来像这样:

    <?php
    error_reporting(E_ALL); 

define('DBHOST', 'localhost');           
define('DBNAME', 'n2mu');               
define('DBUSER', '****');               
define('DBPASS', '****');                   

@mysql_connect(DBHOST, DBUSER, DBPASS) or die (mysql_error()); 
@mysql_select_db(DBNAME) or die (mysql_error()); 

@session_start();

    $comment = $_POST['comment'];
    $IDcard = $_POST['IDcard'];
    $jmeno = $_SESSION['jmeno'];

    mysql_query("INSERT INTO `card_com` VALUES('".  mysql_real_escape_string($IDcard)."', '".  mysql_real_escape_string($jmeno)."', '".  mysql_real_escape_string($comment)."', now() );");
    ?>

如果你能帮助我,那就太棒了!

【问题讨论】:

  • 您需要使用session_start();。把它作为commentService.php的第一行

标签: javascript php jquery session


【解决方案1】:

我看不到你在哪里定义了变量。一般来说,它们是这样工作的;

 /* page1.php */
 <?php
     session_start();
     $_SESSION['jmeno'] = "foo";


 ?>

 /* page2.php */
 <?php
    session_start();
    echo $_SESSION['jmeno']; //prints out foo

 ?>

确保在运行 page2.php 之前先运行 page1.php,以便可以定义或初始化会话变量。确保包含

 session_start();

功能位于每页的最顶部。所以无论你是直接通过浏览器还是通过javascript访问页面,变量的内容总是一样的都没关系。

【讨论】:

  • 我刚刚发现出了什么问题^^ 那正是我没有发现的。谢谢
  • 我认为有一些大问题。但真正的问题在我的脑海里。对不起各位...
  • 每个人都经常遇到这种情况。这叫做调试。不客气
猜你喜欢
  • 2020-12-24
  • 1970-01-01
  • 2012-02-17
  • 2015-07-14
  • 2012-03-19
  • 1970-01-01
  • 1970-01-01
  • 2012-04-12
  • 1970-01-01
相关资源
最近更新 更多