آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

ارور کد اپلود (عکس)

reza piry ghadim  11 سال پیش  11 سال پیش
+1 0

سلام یه کد اپلود نوشتم به صورت کامل هم کار میکنه

ولی سه تا اررو میده به این صورت :

( ! ) Strict standards: Only variables should be passed by reference in C:\dev\testham\send.php on line 23
Call Stack
#TimeMemoryFunctionLocation
1 0.0010 148720 {main}( ) ..\send.php:0

 

اینم کدم :

 foreach($_FILES as $photo) {
$extension = end(explode('.', $photo['name'])); // ********* line 23
$photo['name'] = str_replace('.', '-', $photo['name']);
$photo['name'] = str_replace('-' . $extension, '.' . $extension, $photo['name']);
if (in_array($extension, array('jpg', 'jpeg', 'jpe', 'png', 'gif'))) {

if ($photo['error'] == 0 && $photo['size'] <= 2097152) {
move_uploaded_file($photo['tmp_name'], 'uploaded/' . $photo['name']);
}
}

}

حالا برای اینکه سوالی پیش نیاد کد فرمم رو هم میزارم :

 

 <form action="/send.php/" enctype="multipart/form-data"  method="post">
<table>
<tr><th>username :</th><td><input name="" type="text" value="" /></td></tr>
<tr><th>password :</th><td><input name="" type="password" value="" /></td></tr>
<tr><th>gender :</th><td><label><input name="gender" type="radio" value="m" />Male</label><label><input name="gender" type="radio" value="f" />Female</label></td></tr>
<tr><th>Favorite Language</th><td><lable><input name="php" type="checkbox" value="true" />PHP &nbsp;</lable><lable><input name="aspx" type="checkbox" value="true" />ASP.NET &nbsp;</lable><lable><input name="jsp" type="checkbox" value="true" />JSP &nbsp;</lable></td></tr>
<tr><th>image1 :</th><td><input name="photo1" type="file" /></td></tr>
<tr><th>image2 :</th><td><input name="photo2" type="file" /></td></tr>
<tr><th>image3 :</th><td><input name="photo3" type="file" /></td></tr>
<input name="MAX_FILE_SIZE" type="hidden" value="2097152" />
</table>
<input type="submit" value="send"/>
</form>

 به نظرتون مشکل از کجاست؟؟؟

0 0
سلام. رضا , ماشالله توی وب خیلی خوب راه افتادی و فکر نمیکنم کسی توی انجمن بتونه به سوالات پاسخ بده چون سطح دانش همه در زمینه ی وب از تو خیلی پایین تره , خود من هم توی زبان جاوا حرفه ای هستم و تو وب زیاد حرفی برای گفتن ندارم. به نظر من بیا روی وردپرس کار کن , اطلاعاتی که از کدنویسی وب داری نسبتا خوبه , اگه بخوای یه وب مستر بشی باید 10 سال کار کنی , یه تحقیق در مورد وردپرس انجام بده , مطمئن باش حتی تمام آموزش های استاد رو ببینی و خودت کلی مطلب دیگه هم بهش اضافه کنی سایتت اون چیزی که دلت میخواد نمیشه بهت قول میدم و ممکنه قابل هک شدن باشه. خیلی خوبه که کدنویسی بلدی میتونی خودت پلاگین ودپرس مثلا فرم ارتباط با ما بنویسی یا هر چیز دیگه یا به صورت آماده دانلود کنی. من فقط صد ها افزونه برای افزایش امنیت سایت دیدم. به نظر خود من وقت آدم ارزشش از این بیشتره که بخوای ساعت ها وقتت رو به نوشتن css صرف کنی در حالی که با وردپرس این کار توی چند ثانیه انجام میگیره. خود استاد این سایت رو با جوملا (یه سیسم مدیریت محتواست مثل وردپرس) نوشته ببین چقدر خوشگله. سایتهایی مثل دانلود ها لینک , میهن دانلود لینک و دانشجویار لینک با وردپرس نوشته شدن. به نظر خودت بد هستن!؟ (11 سال پیش)
0 0
اگه اطلاعاتت در زمینه ی وب خوب نبود به هیچ وجه استفاده از اون رو بهت توصیه نمیکردم و اول میگفتم یکم کدنویسی یاد بگیر تا حداقل شناخت خوبی در زمینه ی وب داشته باشی و بعدا بتونی برای وردپرس پوسته و افزونه درست کنی ولی اطلاعاتت خوبه به زودی آموزش نصب وردپرس و کار کردن با اون رو میدم. در ضمن خریدن هاست و دامین هم کار ساده ای نیست و اینکه چه چیزی بیشتر برات کاربرد داره با وردپرس میتونی توی اون هم حرفه ای شی. (11 سال پیش)
0 0
نه بابا من هنوز هیچی نمیدونم . دوستانی مثل محسن موحدhttp://answers.uncomaster.com/profile/28 که من در حد استاد خودم قبولش دارم . یا مثلا اقا مهدی زکیزاده لینک اگه درست نوشته باشم فارسیش رو) یا اقای محمد حسین زاده لینک و محمد حسین لینک و خیلیا دیگه که تعدادشون هم کم نیست ولی من دیگه زیاده گویی نمیکنم. من که این وسط عددی نیستم. شما اخیرا اومدید شاید هنوز خیلی ها رو نمیشناسید فعلا . بازم ممنون از لطفتون و تعریفتون :) (11 سال پیش)
0 0
احتمالا یه جا یه اشتباه کوچولو دارم باز... (11 سال پیش)
0 0
این دوستانی که معرفی کردید با توجه به حضور بالا در انجمن و طرح سوالت بسیار امتیاز کسب کردن و این نشان از آگاهی بسیار بالای اونها از علم کامپیوتر و برنامه نویسی نیست!!!البته دوستان جسارت نباشه و حتما اطلاعات خوبی از کامپیوتر دارن :) به هر حال تعارف نکردم ماشالله خوب داری کار میکنی وردپرس رو کار کنی میتونی پلاگین های خوبی بنویسی من خودم قبلا روی جوملا کار میکردم و الن سالهاست روی وردپرس کار میکنم به جرئت میگم میشه باهاش بهترین وب سایتها رو در سطح جهانی ساخت. (11 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
محسن موحد  11 سال پیش
+2 0

سلام. اول explode کن و در یک متغیر بریزش و بعد اون متغیرو داخل end بذار.

تابع end باید بهش متغیر بدیم چون این تابع یک آرایه بصورت اشاره گر میگیره.
در مورد Passing by Reference هم این لینکو ببینید.

اگر میخواین به همون شکل داخل end از explode استفاده کنید , این کدو باید به برنامتون اضافه کنید:

error_reporting(E_ALL & ~E_STRICT & ~E_NOTICE);

(تمام خطاها بجز E_STRICT و E_NOTICE)

 

اما برای آپلود کردن چند فایل میتونید از تگ زیر استفاده کنید:(جایگزین اون سه تا تگ photo در کدتون)

<input name='uploads[]' type="file" multiple>

و کد آپلود با استفاده از  تگ خط بالایی رو به این شکل واستون نوشتم:

 foreach($_FILES['uploads']['name'] as $key => $photo)
 {
 	$exp = explode('.', $photo);
	$extension = end($exp);
	$photo = str_replace('.', '-', $photo);
	if (in_array(strtolower($extension), array('jpg', 'jpeg', 'png', 'gif')))
	{
		if ($_FILES['uploads']['error'][$key] == 0 && $_FILES['uploads']['size'][$key] <= 2097152)
		{
		      move_uploaded_file($_FILES['uploads']['tmp_name'][$key], 'uploaded/' . $photo . '.' . $extension);
		}
	}
}

نکته امنیتی: نام فایل های آپلودی رو با استفاده از salt و pepper هش(در مطالب قبلی اشاره کردم) کن.

**البته برای آپلود تصاویرتون از تابعی که در این لینک قبلا گذاشتم استفاده کنید.**

0 0
دستت درد نکنه محسن جون . صبح نتونستم امتحانش کنم. به صورت بسیار عالی داره کار میکنه. از روشت هم خیلی خوشم اومد . مرسی. (11 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .