在 php 图像上传器中出现错误

Getting error in php image uploader

本文关键字:错误 php 图像      更新时间:2023-09-26

我在这段代码中遇到了以下错误,该错误得到了解决..!

这是粘贴链接以查看整个代码: http://pastebin.com/JKegmNHC

这里还有

代码也可用..你可以通过这里或使用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 //any php code
<<<HTML //html and php variables 
<p><input type='image' src='http://images.aviary.com/images/edit-photo.png' value='Edit photo' onclick="return launchEditor('image1', '$fulltarget');" /></p>";   
HTML;
?>

在这种情况下,您的变量在没有回显的情况下执行。

你的代码中有这个:echo "。.html。。。'"...'" ..更多网页.."。这里的问题是,当解析器遇到第二个" (在 html...在这种情况下),它会想:'嘿!这是 echo 的结尾,所以我可以假设 echo 在这里完成,但你真正想要的是告诉解析器忽略你在代码中的两个"。因此,您需要转义引号。你转义了"使用.像这样: onclick=''"return launchEditor('image1', '$fulltarget');''"

"这里还有另一个问题..: 注意:未定义的索引:子在 C:''xampp''htdocs''uploader''upload.php 在第 4 行也彼此 注意:未定义的变量:C:''xampp''htdocs''uploader''upload.php 在第 100 行

的 fulltarget 注意:未定义的变量:C:''xampp''htdocs''uploader''upload.php 在第 100 行中的 fulltarget"

好吧,对于问题的第一部分,您始终假设"sub"存在于 $_POST 中。但是,如果没有呢?在这种情况下,您的帖子数据不包含"sub"。这就是解析器告诉你的。做一个

if(isset($_POST['sub'])) {
    $subject = $_POST['sub']
} else {
    //do something else
}

通过这种方式,您可以在尝试从帖子中访问它之前确保"sub"确实存在。