代码如下:<?php
if($_GET["index"]==1){
    $title="校园信息发布论坛--书刊信息";
$table=bk_topic;
}
if($_GET["index"]==2){
$title="校园信息发布论坛--家电信息";
$table=e_topic;
}
if($_GET["index"]==3){
$title="校园信息发布论坛--求助信息";
$table=help_topic;
}
if($_GET["index"]==4){
$title="校园信息发布论坛--家教信息";
$table=teach_topic;
}
echo $table;
if(($_POST["addtopic"])&&($islogin===true)){
    
    $sql="insert into ".$table." values('','$_SESSION[id]','$_POST[topic_name]','$_POST[topic]',now())";
echo $sql;
mysql_query($sql);
echo "<script>alert('发表成功');</script>";
}
那条insert语句显示的时候没有$table的值,但是我在if外面显示的时候$table有值.怎么回事啊?

解决方案 »

  1.   

    嗯 上面是GET 下面判断的是POST...将POST修改为GET.
      

  2.   

    get得到的是上一个页面的超链接传的值,post处理的是表单的本页面表单的信息。不一样的
      

  3.   

    ...
    echo $table; //这里显示有值,表示确有 index 传入
    if(($_POST["addtopic"])&&($islogin===true)){//这个 $islogin 是在哪里定义的?
      

  4.   


    $islogin是在if语句前面定义的 判断有没有登录用的 它的值是为true
      

  5.   

    lz这个代码是伪代码? 请给出原始代码,这个代码肯定会报错的啊PHP Notice:  Use of undefined constant bk_topic - assumed 'bk_topic'
      

  6.   

    推测这个应该是php的变量作用域的问题。你的table定义是在全局环境还是函数内部?
    table的使用是紧跟在定义之后,还是进入到其他函数了?
      

  7.   


    这只是notice不是错误,不影响结果。你看我的代码就知道了并没有进入其他函数
      

  8.   


    echo $table . '<br/>';
    //if(($_POST["addtopic"])&&($islogin===true)){
        
        $sql="insert into ".$table." values('','$_SESSION[id]','$_POST[topic_name]','$_POST[topic]',now())";
        echo $sql;
        //mysql_query($sql);
        //echo "<script>alert('发表成功');</script>";
    //}
    //把这里运行的结果帖出来
      

  9.   

    if  else  输出一下呀
      

  10.   


    我觉得是不是这个问题,我的$_GET[index]是从url得到的,当单击表单的提交按钮执行你贴出来的if语句,但是单击提交按钮会刷新页面,改变了url的值没有了index参数,使得要执行if语句时$table没有值。是这样的吗?
      

  11.   

    搜 ajax , 局部刷新