2013-09-21 46 views
0

我得到這個代碼以下錯誤:Strict Standards: Only variables should be passed by reference in C:\xampp\htdocs\uploader\upload.php on line 12 Success在PHP中得到錯誤編碼變量的東西不確定

也是其他錯誤是Notice: Undefined variable: fulltarget in C:\xampp\htdocs\uploader\upload.php on line 101

Notice: Undefined variable: fulltarget in C:\xampp\htdocs\uploader\upload.php on line 101

這裏是引擎收錄鏈接查看整個代碼: 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> 

回答

0

作爲每[PHP: end - Manual],當使用end()它通過陣列作爲參考中的最後一個元素。

您可以嘗試兩件事情:

  1. 不要在end()使用explode()。嘗試這樣做,當你聲明$name的爆炸:
    $name = explode('.', $_FILES['img']['name']);

  2. 使用array_slice()list()代替end()
    list($ext) = array_slice(explode('.' , $name), -1);

任一個可能會工作。

0

因爲您嘗試首先使用變量而未初始化變量,您會收到'Notice:Undefined variable'錯誤。在您的HTML中,您使用'$ fulltarget',但它只在您提交表單後才設置。如果你想擺脫這個通知,你應該在你的PHP開啓標籤後加上$fulltarget = '';之類的東西。

如果您將檢查PHP end()功能文檔http://php.net/manual/en/function.end.php您將看到該函數通過引用將數組作爲參數。要解決這個錯誤,你應該將你的explode()結果保存爲一個變量,然後將該變量傳遞給end()函數。例如:$arr = explode('.', $name); $ext = end($arr);

+0

這個錯誤請問這是什麼意思,當我上傳圖片和圖片顯示,所以它顯示...'嚴格的標準:只有變量應通過引用傳遞在C:\ xampp \ htdocs \上傳\第12行的upload.php成功' –

+0

我的答案的第二段說明了這個錯誤的問題。 –