接收上一个页面传过来的变量在新版本的php中不能用他的名字当作变量直接用,安全起见。
不是别人不想回答,分也不是问题,而是这样同样的问题被问了千百遍了,真的很烦。接收上一页传来的变量要用$_POST[]或者$_GET[]数组得到
<?php
if($_POST['submit'])
{ $sql = "INSERT INTO  speakfor (add_time,speakid) VALUES ('".$_POST['date']."','".$_POST['pp']."')";
    $result = mysql_query($sql);
}
?>

解决方案 »

  1.   

    答xuzuning(唠叨) : 1、表单变值 2、有不能为空的字段,但我试过让speakid为空和不允许为空均不行啊。
      

  2.   

    调试时可以在代码的顶端或未尾加入下面代码:
    echo "<pre>";
    print_r($_POST);
    print_r($_GET);
    print_r($_SESSION);
    echo "<pre>";
    以观察以上变量
      

  3.   

    回maxid()只能得到print_r($_GET)  
    Array
    (
        [supply_id] => 200309041233
    )
    同志们快快解决偶的问题呀!急死了。
      

  4.   

    掉了个:print_r($_POST)为
    Array
    (
     )
      

  5.   

    把你的sql语句echo出来看看有无数据。
      

  6.   

    TO: ustb(偶然) 
       就是speakid为空别的都有值。我快晕了。
      

  7.   

    看一下$cc是否有值,在你的程序中echo一下$pp和$cc,以确认值是真的得到了。
    先echo $_GET['supply_id'];
    如果有值再往下看,如果没有,那问题就在这里了
    如果你的php版本太低请试试$HTTP_GET_VARS['supply_id'];
    并检查一下上一页是否真的发送了一个supply_id过来。
    接下来看这一段
    if($_GET['supply_id'])
    {
      $result= mysql_query("SELECT * FROM  supply WHERE supply_id='$supply_id'",$db);
      $myrow= mysql_fetch_array($result);
      $cc=$myrow['service_id'];
      $pp=$myrow['supply_id'];
      echo $cc;
      echo $pp;
    }
    如果这里都没有得到值,那么就是你没有查询到值;
    如果这里有值,那么问题一定是出在传递过程中或是接收过程中,请检查程序中的接收部分。
    总之,查错的办法有很多,能迅速找出一段程序的错误之处是程序员的基本素质之一,多看,多想,多学吧。
      

  8.   

    我试过table的结构改动,变量等众多的原因,最后还是糊!  在if($submit)    {     }
    的前或后用echo $pp;都有值,但在{}中就是不行。算了吧,我换个法吧。谢谢各位了。