Javascript php编码未定义变量时出错
我在这段代码中遇到了以下错误:Javascript php编码未定义变量时出错,javascript,php,html,Javascript,Php,Html,我在这段代码中遇到了以下错误:Strict Standards:在第12行的C:\xampp\htdocs\uploader\upload.php中,只有变量应该通过引用传递 成功 另一个错误是注意:未定义的变量:C:\xampp\htdocs\uploader\upload.php中的fulltarget,第101行 注意:未定义变量:第101行C:\xampp\htdocs\uploader\upload.php中的fulltarget 下面是pastebin链接以查看整个代码: 此外,这里
Strict Standards:在第12行的C:\xampp\htdocs\uploader\upload.php中,只有变量应该通过引用传递
成功
另一个错误是注意:未定义的变量:C:\xampp\htdocs\uploader\upload.php中的fulltarget,第101行
注意:未定义变量:第101行C:\xampp\htdocs\uploader\upload.php中的fulltarget
下面是pastebin链接以查看整个代码:
此外,这里还提供了代码。。您可以在此处查看,也可以使用pastebin链接从相关行获取正确的错误指示
代码如下:
<?php
$submit=$_POST['sub'];
if(isset($submit))
{
$name=$_FILES['img']['name'];
$type=$_FILES['img']['type'];
$size=($_FILES['img']['size'])/1024;
$ext=end(explode('.',$name));
if (($ext == "gif")
|| ($ext == "jpeg")
|| ($ext == "jpg")
|| ($ext =="png")
&& ($size > 30))
{
############################## File Renaming ###################################################
$newname=uniqid();
//$ext=end(explode('.',$name));
$fullname=$newname.".".$ext;
$target="pics/";
$fulltarget=$target.$fullname;
if(move_uploaded_file($_FILES['img']['tmp_name'],$fulltarget))
{
echo "Success";
}
else
{
echo "Failed";
}
############################## File Renaming end ###################################################
}
else{
echo "not successful";
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" type="text/css" href="abhi.css" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Php Image Uploader</title>
</head>
<body>
<div id="a1">
<form name="frm" method="post" enctype="multipart/form-data">
<input type="file" name="img" /><br />
<input type="submit" name="sub" value="Store" />
</form>
</div>
<div id="a2">
<?php echo "
<html>
<head>
<title>Aviary Photo Editer</title>
<!-- Load Feather code -->
<script type='text/javascript' src='http://feather.aviary.com/js/feather.js'></script>
<!-- Instantiate Feather -->
<script type='text/javascript'>
var featherEditor = new Aviary.Feather({
apiKey: 'ceegvx4siylhayrr',
apiVersion: 3,
theme: 'dark', // Check out our new 'light' and 'dark' themes!
tools: 'enhance,frames,crop,orientation,brightness,saturation,sharpness,draw,redeye,blemish,effects,stickers,resize,focus,contrast,warmth,colorsplash,text,whiten',
appendTo: '',
onSave: function(imageID, newURL) {
var img = document.getElementById(imageID);
img.src = newURL;
},
onError: function(errorObj) {
alert(errorObj.message);
}
});
function launchEditor(id, src) {
featherEditor.launch({
image: id,
url: src
});
return false;
}
</script>
</head>
<body>
<div id='injection_site'></div>
<img id='image1' src='$fulltarget'/>
<p><input type='image' src='http://images.aviary.com/images/edit-photo.png' value='Edit photo' onclick=\"return launchEditor('image1', '$fulltarget');\" /></p>";
?>
</body>
</html>
Php图像上传器
根据[],当您使用end()
时,它将数组中的最后一个元素作为引用传递
您可以尝试以下几种方法:
不要在end()
中使用explode()
。当您声明$name
:
$name=explode('.',$_文件['img']['name'])代码>
使用array\u slice()
和list()
代替end()
:
list($ext)=数组_切片(分解('.',$name),-1)代码>
这两种方法都可能有效。您会收到“注意:未定义变量”错误,因为您试图在不初始化变量的情况下使用该变量。在HTML中使用“$fulltarget”,但它仅在提交表单后设置。如果你想摆脱这个通知,你应该放一些类似于$fulltarget=''代码>在PHP开始标记之后
如果您查看PHPend()
函数文档,您将看到该函数通过引用将数组作为参数。要修复此错误,应将explode()
结果保存为变量,然后将该变量传递给end()
函数。例如:$arr=explode('.',$name)$ext=结束($arr)代码>请注意,当我上传图片并显示图片时会发生此错误。严格的标准:在C:\xampp\htdocs\uploader\uploader.php的第12行Success中只能通过引用传递变量。
我回答的第二段解释了此错误的问题。