مؤخرا قمت بشراء سكريبت اجنبي اتضح انة لا يدعم العربية وبة بعض المشاكل الاخري وكالعادة بعد شراء الاسكريبت المبرمج لم يعد يرد علي رسائلي، المهم اني الحمد لله استطعت حل اغلب المشكلات ما تبقي مشكلة عدم قبول اللغة العربية في الوسوم او كما تُعرف بالانجليزية tags وفي نفس الوقت عدم قبول علامة الفصلة ( , ) بين الوسوم، فقط يقبل علامة السيميكولون ( ; ) للفصل بين الوسوم، بما اني قمت بالنظر وتعديل اغلب الملفات فلم اجد سببا للمشكلة سوي بهذة السطور لاحدي الملفات ..
كود PHP:
<? /*
if (get_magic_quotes_gpc()) {
foreach ($HTTP_GET_VARS as $k => $v)
$_GET[$k] = stripslashes($v);
foreach ($HTTP_POST_VARS as $k => $v)
$_POST[$k] = stripslashes($v);
}
*/
if ($_GET[url]) $_GET[url] = urldecode($_GET[url]);
if ($_GET[description]) $_GET[description] = urldecode($_GET[description]);
if ($_POST[tags]) $_POST[tags] = urldecode($_POST[tags]);
if ($_POST[tags][0] == ' ') $_POST[tags] = substr($_POST[tags], 1);
if ($_POST[tags][strlen($_POST[tags])-1] == ' ') $_POST[tags] = substr($_POST[tags], 0, -1);
if ($_POST[tags][strlen($_POST[tags])-1] == ';') $_POST[tags] = substr($_POST[tags], 0, -1);
if ($_POST[tags][strlen($_POST[tags])-1] == ' ') $_POST[tags] = substr($_POST[tags], 0, -1);
}
include($_SERVER['DOCUMENT_ROOT']."/conf.php");
include($_SERVER['DOCUMENT_ROOT']."/key.php");
/*
$do_error = 0;
if (($_POST['url']) and preg_match('(\bhttp://[^ ]+\b)', $_POST['url'])) {
$do_error = 1;
}
*/
if ($_POST['url'] and $_POST['description'] and $_POST['tags'] and !$_POST['fromindex']) {
if ($_POST['notes']) $notes = ", notes='$_POST[notes]'";
if ($_POST['share']) $share = ", share='$_POST[share]'";
$add_at = time();
$user_name_email = $_SESSION[collectf][login];
$q = "INSERT INTO content SET user='$user_name_email', userid=".$_SESSION[collectf][userid].", url='$_POST[url]', description=' $_POST[description]'".$notes.", tags='$_POST[tags]'".$share.", add_at=$add_at" or die(mysql_error());
if (mysql_query($q)) {
$onetag = explode(';', $_POST['tags']);
foreach ($onetag as $ke => $ve) {
$res_check = mysql_query ("select id from tags where tag='$ve' and userid=".$_SESSION[collectf][userid]);
if ($res_check and mysql_num_rows($res_check)==0) {
if ($ve[0] == ' ') $ve = substr($ve, 1);
if ($ve[strlen($ve)-1] == ' ') $ve = substr(ve, 0, -1);
$q = "INSERT INTO tags SET userid=".$_SESSION[collectf][userid].", tag='".$ve."', add_at=".time();
mysql_query($q);
}
}
$sql="SELECT id from content where user='$user_name_email' AND add_at=$add_at";
$result_f = mysql_query($sql) or die(mysql_error());
$content_ID = mysql_fetch_array($result_f);
if (mysql_num_rows($result_f)>0) {
if (!is_dir($_SERVER['DOCUMENT_ROOT']."/content/".$_SESSION[collectf][userid]."/".$content_ID['id'])) {
if (mkdir($_SERVER['DOCUMENT_ROOT']."/content/".$_SESSION[collectf][userid]."/".$content_ID['id'],0777)) {
$sql="DELETE from content where user='$user_name_email' AND add_at=$add_at";
$result_f = mysql_query($sql) or die(mysql_error());
echo "Try again.";
}
}
} else {
include($_SERVER['DOCUMENT_ROOT']."/header.php");
/*if ($do_error <> 0) {
if ($do_error == 1) {
echo "Type a valid URL.";
} else {
echo "Fill all required fields.";
}*/
?>
قرأت عن دالة ereg_replace وايضا preg_match ولكني لم استطيع استخلاص طريقة لمساعدتي علي حل هذة المشكلة، ولان ليس لدي خبرة في مثل هذة المشاكل فأتمني ان اجد مساعد لحل هذة المشكلتين السابق ذكرهم وحتي ولو بمقابل لا مشكلة.
__________________ "يجب ان تعمل في صمت؛ ولا يجب ان يكون الصمت عملك"
طيب ياريت تخبرني لا يقبل كيف؟ يعني هل تظهر رسالة خطأ ما؟ معرفة رسالة الخطأ ستساعد في اكتشاف مكان الكود المطلوب تعديله خصوصا ان الموضوع محتاج تجربة وليس مجرد الاطلاع على الكود
هذة المشكلة ليس لها علاقة بجنسية المبرمج بل انها عادة في الاعمال المدفوعة للمبرمج الحر ولهذا دائما ما اكرة الاعمال المدفوعة بشكل عام واتجة للمفتوحة او المجانية لان حتي ولو فرضنا بأنها تنقص الكثير فالمبلغ الذي اقوم بالشراء بة استطيع استغلالة في ايجاد مبرمج يفوم بالتعديلات الخاصة التي اريدها.
إقتباس:
المشاركة الأصلية بواسطة فِكرة
طيب ياريت تخبرني لا يقبل كيف؟ يعني هل تظهر رسالة خطأ ما؟ معرفة رسالة الخطأ ستساعد في اكتشاف مكان الكود المطلوب تعديله خصوصا ان الموضوع محتاج تجربة وليس مجرد الاطلاع على الكود
شكرا لاهتمامك اخي محمود، لا يقبل بمعني ان بمجرد اضافة وسم عربي يقوم بأرجاعي الي نفس الصفحة مضيفا الجملة الموجودة بنهاية الملف الذي ارفقتة Fill all required fields
اي انة يعتبرني اني لم اقم بمليء نموذج الوسوم من الاساس مع العلم ان قواعد البيانات كاملة قمت بتحويلها الي utf-8 وايضا عدلت بعض الملفات المرمزة الي نفس الترميز ويقبل البحث بالعربية ايضا اي ان المشكلة في الوسوم فقط، اما بالنسبة لمشكلة الفصلة بين الوسوم فعند وضع اي علامة اخري غير السيميكولون ( ; ) يقوم بجلب الوسوم بطريقة متشابكة وبدون اي فصلات.
__________________ "يجب ان تعمل في صمت؛ ولا يجب ان يكون الصمت عملك"
if ($_POST[tags][0] == ' ') $_POST[tags] = substr($_POST[tags], 1);
if ($_POST[tags][strlen($_POST[tags])-1] == ' ') $_POST[tags] = substr($_POST[tags], 0, -1);
if ($_POST[tags][strlen($_POST[tags])-1] == ',') $_POST[tags] = substr($_POST[tags], 0, -1);
if ($_POST[tags][strlen($_POST[tags])-1] == ' ') $_POST[tags] = substr($_POST[tags], 0, -1);
}
ثانياً يجب أن نستخدم الفاصلة "," للفصل بين التاج والأخرى بدلا من الفاصلة المنقوطة ";"
استبدل الكود
كود PHP:
$onetag = explode(';', $_POST['tags']);
بالكود
كود PHP:
$onetag = explode(',', $_POST['tags']);
وجرب
لا تنسى ان تأخذ نسخة من الملف قبل التعديل عليه
شكرا لك اخي محمود لم انتبة لسطر دالة explode الا عندما ذكرتة، قمت بتعديل الدالة ايضا في بقية ملفات الاسكريبت وعملت بشكل جيد فالان مشكلة الفاصلة اتحلت والحمد لله، ولكن بالنسبة لمشكلة الوسوم العربية أليس لها حل !!
__________________ "يجب ان تعمل في صمت؛ ولا يجب ان يكون الصمت عملك"