منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : مشكلة عند تحديث قالب
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2 3
(30-03-26, 11:49 PM)nnnjk كتب : [ -> ]بارك الله فيك
فعلت ذلك لاكن لم تنجح عملية الرفع وظهر لي نفس الخطأ اعلاه
ووضعت الكود هذا في ملف htaccess فتعطل المنتدى وظهرا خطأ 500

PHP كود :
<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule

خطأ 500 طبيعي 
احذف هذا السطر الي كتبناه قبل شوي
php_value upload_tmp_dir /home/username/public_html/tmp

على الارجح ان السيرفر او الاستضافه تستخدم open_basedir

حل مؤقت
انشي مجلد التمب في هذا المسار  public_html حتى يصير معانا المسار  public_html/tmp
بعد ذلك انشيء ملف داخل موقعك وسميه  php.ini
وداخل هذا الملف ضع فيه الجملة ذي في نفس الملف الجديد (  php.ini )
upload_tmp_dir = /home/username/public_html/tmp
احفظ و جرّب 
مشكور على المجهود
فعلت ذلك لاكن ظهر لي نفس الخطأ بعد تعطيل الرفع الامن وادراج رابط مجلد tmp في php.ini
طيب اذا عندك اني ديسك ممكن نحل المشكلة باقل جهد
و انا ارجّح النقطة السابقة على كل حال الا وهي :
ان السيرفر او لااستضافة للاسف يمنع الكتابة open_basedir

حل اخر :
قم بانشاء صفحة عادية و اكتب فيها

PHP كود :
 <?php phpinfo(); ?>

شغل الصفحة و شوف اذا فيه سطر upload_tmp_dir
او مثل ذا /home/username/:/tmp/
فمسموح لك فقط داخل هالمسارات

كذلك ..
بدلاً من هذا السطر
upload_tmp_dir = /home/username/public_html/tmp
استبدله بهذا مباشرة
upload_tmp_dir = /tmp

اذا لا هذا و لا هذا .
فنرجّح النقطة الاولى الا و هي ان السيرفر لا يدعم ذلك .
وجدت السطر في بيانات php
وامامه الجملة no value
(31-03-26, 02:02 AM)nnnjk كتب : [ -> ]وجدت السطر في بيانات php
وامامه الجملة no value

ممتاز جداً : 
طيب نرجع للخطوة السابقة 
و ننشيء ملف نسميه  user.ini بدلاً من  php.ini 
و اكتب فيه هذا الكود 
PHP كود :
upload_tmp_dir = /home/username/public_html/tmp
file_uploads 
On
upload_max_filesize 
20M
post_max_size 
20M 

غيّر username باسم حساب الاستضافة عندك 
[*]انتظر 5 دقائق أو أعد تحميل الموقع لتطبيق .user.ini
[*]افتح info.php مرة ثانية و تأكد أن upload_tmp_dir يظهر المسار الجديد وليس no value

بانتظار ردك .
مشكور
ادرجت الكود في ملف htaccess وملف php.ini وملف user.ini وجميعهم لم يتغير شي

وحدت مسار
open_basedir
على النحو التالي

/home/username/:/tmp:/var/tmp:/opt/alt/php83/usr/share/pear/:/dev/urandom:/usr/local/lib/php/:/usr/local/php83/lib/php/
no value

نسخة php هي 5.6 وليس 8.3 كما في المسار المكتوب امام المتغير
(31-03-26, 02:49 AM)nnnjk كتب : [ -> ]مشكور
ادرجت الكود في ملف htaccess وملف php.ini وملف user.ini وجميعهم لم يتغير شي

وجدت مسار
open_basedir
على النحو التالي

/home/username/:/tmp:/var/tmp:/opt/alt/php83/usr/share/pear/:/dev/urandom:/usr/local/lib/php/:/usr/local/php83/lib/php/
no value

نسخة php هي 5.6 وليس 8.3 كما في المسار المكتوب امام المتغير

open_basedir

السيرفر عندك مقفل التعديل ✔️
تواصل مع الدعم الفني الخاص بموقع الاستضافة و اكتب هذه الرسالة : 

لدي مشكلة في رفع الملفات
يظهر خطأ: failed to write temp file
يبدو أن PHP لا يستطيع الكتابة في مجلد /tmp
هل يمكن التحقق من صلاحيات tmp أو تحديد upload_tmp_dir بشكل صحيح

لكن قبل ذلك خلينا نجري هذه المحاولة : 
انشيء صفحة php  و الصق فيها الكود 
PHP كود :
<?php
file_put_contents
('/tmp/test.txt''OK');
echo 
'done';
?>

[*]اذا اشتغل المشكلة من المنتدى
[*]ما اشتغل المشكلة من السيرفر

سؤال : هل لديك cPanel

إذا كان لديك cPanel
اذهب الى هذا المسار 
cPanel → Software → MultiPHP INI Editor → Editor Mode
وغيّر مسار open_basedir من هناك مباشرة بهذا السطر

PHP كود :
/home/username/:/tmp:/var/tmp:/usr/local/lib/php/:/dev/urandom 
استبدل username باسم المستخدم الحقيقي عندك .


بعد الحفظ جرب الموقع مباشرة
وإذا استمرت المشكلة أخبرني برسالة الخطأ الظاهرة.
طبع الكود done
(31-03-26, 04:06 AM)nnnjk كتب : [ -> ]طبع الكود done

ممتاز جداً . 

المشكلة من سكربت المنتدى نفسه (vBulletin)
خصوصا أنك ذكرت أنك تستخدم vBulletin 3.8.12 
هذا إصدار قديم جدا، وغالبا فيه مشاكل توافق مع PHP 5.6

الحل الفعلي داخل المنتدى 
 ادخل لوحة تحكم المنتدى (AdminCP) 
و من ثم  vBulletin Options
و صولاً الى  Server Settings and Optimization Options
بعد ذلك قم بالبحث عن  Path to Temporary Directory
ضع هذا المسار  /tmp

إذا ما لقيت الخيارات في الاعلى 
اذهب الى ملف  includes/config.php
ثم اكتب هذا السطر 
PHP كود :
كود :
$config['Misc']['tmpdir'] = '/tmp'; 

احفظ و جرّب 
وجدت الخيارات التاليه:

إعدادات السيرفر وخيارات تحقيق الأمثلية:

تفعيل الرفع في الوضع الآمن
إذا كان مزودك (server) يشغل PHP مع قيود الوضع الآمن, عين هذا إلى نعم.

اذا كان مزودك (server) يعمل مع وضع PHP الآمن, ستحتاج إلى تحديد مجلد لديه التراخيص 777 CHMOD 0777 والذي سيتم استخدامه كمجلد مؤقت للرفع. كل الملفات تزال من هذا المجلد بعد الإدخال إلى قاعدة البيانات.

ملاحظة: لا تتضمن القطع المتآخر ('/') بعد اسم المجلد.

/tmp
الصفحات : 1 2 3