gpt4 book ai didi

php - 有人能帮我理解为什么这个 MySQL 更新代码不工作 php 5

转载 作者:太空宇宙 更新时间:2023-11-03 11:15:35 24 4
gpt4 key购买 nike

这是代码。它似乎在 PHP 5 中有问题。它在 PHP 4.4.9 中运行良好。

if($_REQUEST['action']== "Update"){ 

$curDate = date("Y-m-d");
$image =$_FILES['vImage']["name"];
$uploadedfile = $_FILES['vImage']['tmp_name'];


$sql="UPDATE businessad
SET iBUserID= '$_REQUEST[iBUserID]',
iCategoryID= '$_REQUEST[iBCategoryID]',
vAdTitle= '$_REQUEST[vAdTitle]',
tAdText= '$_REQUEST[tAdText]',
vAdImage= '$vAdImage',
vAdURL= '$_REQUEST[vAdURL]',
dStartDate= '$_REQUEST[dStartDate]',
dEndDate= '$_REQUEST[dEndDate]',
vAddress1= '$_REQUEST[vAddress1]',
vAddress2= '$_REQUEST[vAddress2]',
vCity= '$_REQUEST[vCity]',
vState= '$_REQUEST[vState]',
vZipCode= '$_REQUEST[vZipCode]',
vPhone= '$_REQUEST[vPhone]',
vEmail= '$_REQUEST[vEmail]',
eStatus='$_REQUEST[eStatus]'

WHERE iBusAdID='".$_REQUEST['iBusAdID']."'";

$db_sql=$obj->sql_query($sql);

if($db_sql)
{
$msg=MSG_UPDATE;
header("Location:businessadview.php?var_msg=$msg");
exit;
}
else
{
$msg=MSG_UPDATE_ERROR;
header("Location:businessadview.php?var_msg=$msg");
exit;

该代码不会更新到 MySQL 表,我不确定为什么。

在上面的代码之前是一个看起来像这样的表单

<form name="frmadd" method="post" action="businessadadd_a.php" enctype="multipart/form-data">
<input type="hidden" name="action" value="<?=$action;?>">
<input type="hidden" name="iBusAdID" value=<?=$iBusAdID;?>>

我检查了我的服务器错误日志并发现了这一点。它提到了 globals.php 中的一些错误,这是 include 调用的一部分。我也会包含包含代码。

这是包含代码

<?php

@session_start();

@ob_start();

include_once("./lib/db_config.php");

include_once("./lib/myclass.php");

include_once("./lib/globals.php");

if(!isset($obj)){

$obj = new myclass($SERVER,$DBASE,$USERNAME,$PASSWORD);

}

include_once("./lib/generalsettings.php");

include_once("./function/general.php");

include_once("./lib/messages.php");

getGeneralVar();

?>

这是服务器错误日志有问题的 globals.php 代码

  <?php

$glob=array("SERVER");

if(isset($GPC_vars))
{ foreach($GPC_vars as $var)
{ foreach(array("GET","POST","COOKIE") as $avar)
if(isset($GLOBALS["HTTP_".$avar."_VARS"][$var]))
{ $$var=$GLOBALS["HTTP_".$avar."_VARS"][$var];
}
}
}
else
{ $glob=array_merge(array("GET","POST","COOKIE"),$glob);
}

foreach($glob as $avar)
{ $arr=$GLOBALS["HTTP_".$avar."_VARS"];
foreach($arr as $var => $res)
$$var=$res;
}

foreach ($HTTP_POST_FILES as $name => $value) {
$$name = $value["tmp_name"];
foreach($value as $k=>$v) {
$varname_ = $name."_".$k;
$$varname_ = $v;
}
}
reset($HTTP_POST_FILES);
?>

这是错误日志的内容

[2011 年 3 月 14 日星期一 13:08:55] [错误] [客户端 -] 文件不存在:/public_html/favicon.ico

[Mon Mar 14 13:08:54 2011] [error] [client -] PHP Warning: reset() [function.reset]: Passed variable is not an array or object in/public_html/lib/globals.php在第 30 行,引用者:xxx.com/admin/businessadadd.php?iBusAdID=4&action=Update

[Mon Mar 14 13:08:54 2011] [error] [client -] PHP Warning: invalid argument provided for foreach() in .../public_html/lib/globals.php on line 23, referer: xxx .com/admin/businessadadd.php?iBusAdID=4&action=Update

[2011 年 3 月 14 日星期一 13:08:54] [错误] [客户端 -] PHP 警告:为第 19 行 .../public_html/lib/globals.php 中的 foreach() 提供的参数无效,引用者:xxx .com/admin/businessadadd.php?iBusAdID=4&action=Update

[2011 年 3 月 14 日星期一 13:08:54] [错误] [客户端 -] PHP 警告:为第 19 行 .../public_html/lib/globals.php 中的 foreach() 提供的参数无效,引用者:xxx .com/admin/businessadadd.php?iBusAdID=4&action=Update

[2011 年 3 月 14 日星期一 13:08:54] [错误] [客户端 -] PHP 警告:为第 19 行 .../public_html/lib/globals.php 中的 foreach() 提供的参数无效,引用者:xxx .com/admin/businessadadd.php?iBusAdID=4&action=Update

[2011 年 3 月 14 日星期一 13:08:54] [错误] [客户端 -] PHP 警告:为第 19 行 .../public_html/lib/globals.php 中的 foreach() 提供的参数无效,引用者:xxx .com/admin/businessadadd.php?iBusAdID=4&action=Update

最佳答案

因为它只是一个字符串。你执行查询吗?如果是这样,mysql_error 告诉您什么?

拜托,非常拜托,谷歌SQL注入(inject)。此代码非常脆弱。

关于php - 有人能帮我理解为什么这个 MySQL 更新代码不工作 php 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5293605/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com