同一代码,有的机器能运行成功,有的不行

pkdsm 2010-07-01 11:21:05
<?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都不会跳转
...全文
72 点赞 收藏 13
写回复
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
freedom_gooboy 2010-07-02
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版本一般均支持

回复
在-云端 2010-07-02
[Quote=引用 11 楼 dingsongtao 的回复:]

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

+++
回复
Dleno 2010-07-02
手册上的:

警告
不要对不能信任的数据使用 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";

?>


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

+
回复
myhope88 2010-07-02
牛人太多了,来学习了
回复
xuzuning 2010-07-02
1、你的代码只能正常工作在 register_globals=on 的环境中
2、你的action是通过url参数传递的,所以取得action的值要用$_GET["action"]
3、对于搜集的php4代码(通常都需要工作在 register_globals=on 的环境中)而又无权或不想修改php.ini文件时,可在程序开始处执行下列代码
extract($_GET);
extract($_POST);
回复
床上等您 2010-07-02
写法不标准所导致。

<?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);


}?>
回复
LuciferStar 2010-07-02
URL传的参数,是$_GET["action"]
回复
pkdsm 2010-07-02
我前面又试了下,我只有改register_globals 才能运行成功
不改参数,楼上2种写法都不通过
回复
ankyliu 2010-07-02
最好不要依赖register_globals

很多主机都不支持,存在安全隐患
回复
pkdsm 2010-07-02
楼上大哥果然厉害,另外请问,我外面假如买虚拟主机,能不能自己改php。ini?
是不是我以后编东西都要用$_post写法?现在学习中,好多例子大概都老是上面例子
回复
ankyliu 2010-07-01
看错了,要加一个action的隐藏表单元素
回复
ankyliu 2010-07-01
if($action == "send") {


改成

if($_POST['action'] == "send") {

试试?
回复
发动态
发帖子
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
社区公告
暂无公告