<?php
mysql_connect("localhost","root","") or die("Can't connect to the SQL-server");
mysql_select_db("edush");
$url="http://192.0.0.227/videos/kendisi/videos/";
$date = date("Y-m-d H:i:s");?>
<TABLE WIDTH="460" ALIGN="CENTER" VALIGN="TOP">
<TH COLSPAN="2">
<P>课程flv添加
</TH>
<FORM NAME="guestbook" ACTION="test.php?action=send" METHOD="POST">
<TR>
<TD ALIGN="RIGHT" VALIGN="TOP">课件名称:</TD>
<TD><INPUT TYPE=text NAME=flv_name></TD>
</TR>
<TR>
<TD ALIGN="RIGHT" VALIGN="TOP">课程名:</TD>
<TD><INPUT TYPE=text NAME=course></TD>
</TR>
<TR>
<TD ALIGN="RIGHT" VALIGN="TOP">上传者:</TD>
<TD><INPUT TYPE=text NAME=user></TD>
</TR>
<TR>
<TD ALIGN="RIGHT" VALIGN="TOP">课程说明:</TD>
<TD><TEXTAREA NAME=temp COLS=40 ROWS=6></TEXTAREA>
<P><INPUT TYPE=submit VALUE=Submit> <INPUT TYPE=Reset VALUE=Reset> 
</td>
</TR>
</FORM>
</TABLE>
<?php
if($action == "send") {

//保存记录
$flv_url=$url.$flv_name."."."flv";
$query = "INSERT INTO flv VALUES ('','$flv_name', '$flv_url','$date','$user','$temp','$course')";
$result = mysql_query($query);


}?>
就是这样简单代码,单位里都能运行成功,往数据库里加数据家里就不行,而且发现家里电脑,做别的例子,action都不会跳转

解决方案 »

  1.   

    if($action == "send") {
    改成if($_POST['action'] == "send") {试试?
      

  2.   

    看错了,要加一个action的隐藏表单元素
      

  3.   

    if($action == "send") {  if($action == "send") {// 你这里是PHP的简短风格写法,需要将register_globals 配置为on (在php.ini中进行设置register_globals=on
    在4.2.0以后的版本中,该配置默认值为off
    建议使用中等风格 if($_POST['action'] == "send") { //它只在PHP4.1.0以后均支持。。现在的PHP版本一般均支持
      

  4.   

    楼上大哥果然厉害,另外请问,我外面假如买虚拟主机,能不能自己改php。ini?
    是不是我以后编东西都要用$_post写法?现在学习中,好多例子大概都老是上面例子
      

  5.   

    最好不要依赖register_globals很多主机都不支持,存在安全隐患
      

  6.   

    我前面又试了下,我只有改register_globals 才能运行成功
    不改参数,楼上2种写法都不通过
      

  7.   

    写法不标准所导致。<?php
    if($_SERVER['REQUEST_METHOD']=='POST') { //这里改成这样。再试试。//保存记录
    $flv_url=$url.$flv_name."."."flv";
    $query = "INSERT INTO flv VALUES ('','$flv_name', '$flv_url','$date','$user','$temp','$course')";
    $result = mysql_query($query);
    }?>
      

  8.   

    1、你的代码只能正常工作在 register_globals=on 的环境中
    2、你的action是通过url参数传递的,所以取得action的值要用$_GET["action"]
    3、对于搜集的php4代码(通常都需要工作在 register_globals=on 的环境中)而又无权或不想修改php.ini文件时,可在程序开始处执行下列代码
    extract($_GET);
    extract($_POST);
      

  9.   

    手册上的:警告 
    不要对不能信任的数据使用 extract(),例如用户的输入($_GET,...)。如果这样做,举例说,要临时运行依赖于 register_globals 的老代码,要确保使用不会覆盖的 extract_type 值,例如 EXTR_SKIP,并且要留意应该按照 php.ini 中由 variables_order 定义的顺序来提取。 
     extract() 的一种可能用法是将 wddx_deserialize() 返回的结合数组中的内容导入到符号表变量中去。 
    <?php/* 假定 $var_array 是 wddx_deserialize 返回的数组*/$size = "large";
    $var_array = array("color" => "blue",
                       "size"  => "medium",
                       "shape" => "sphere");
    extract($var_array, EXTR_PREFIX_SAME, "wddx");echo "$color, $size, $shape, $wddx_size\n";?>