النتائج 1 إلى 7 من 7

الموضوع: مشكلة بسكريبت اجنبي لا يدعم الوسوم العربية

  1. #1

    تاريخ التسجيل
    May 2007
    المشاركات
    2,403

    مشكلة بسكريبت اجنبي لا يدعم الوسوم العربية



    مؤخرا قمت بشراء سكريبت اجنبي اتضح انة لا يدعم العربية وبة بعض المشاكل الاخري وكالعادة بعد شراء الاسكريبت المبرمج لم يعد يرد علي رسائلي، المهم اني الحمد لله استطعت حل اغلب المشكلات ما تبقي مشكلة عدم قبول اللغة العربية في الوسوم او كما تُعرف بالانجليزية 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]) {

        
    $_POST[tags] = ereg_replace('[^a-zA-Z0-9 ;]'''$_POST[tags]);

        
    $_POST[tags] = ereg_replace('( +)'' '$_POST[tags]);

        
    $_POST[tags] = ereg_replace('(;+)'';'$_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_ator 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($ve1);

                    if (
    $ve[strlen($ve)-1] == ' '$ve substr(ve0, -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)) {

    //                    echo "Folder created";

                        
    chmod($_SERVER['DOCUMENT_ROOT']."/content/".$_SESSION[collectf][userid]."/".$content_ID['id'],0777);

                        include(
    $_SERVER['DOCUMENT_ROOT']."/freplace.php");

                        
    $ret=find_replace($_POST['url'], $_SERVER['DOCUMENT_ROOT']."/content/".$_SESSION[collectf][userid]."/".$content_ID['id']."/");

                            if (
    $_POST['sendnot'] == '1') {

                                
    $sednfav="";

                                
    $handle = @fopen ($_SERVER['DOCUMENT_ROOT'].'/favorite.tpl'"rb");

                        
    /*        if(!$handle){

                                  break;

                                }*/

                                
    do { 

                                   
    $data fread($handle8192); 

                                   if (
    strlen($data) == 0) { 

                                       break; 

                                   } 

                                   
    $sednfav .= $data

                                } while(
    true); 

                                
    fclose ($handle);

                                
    $sednfav str_replace('%%description%%'$_POST['description'], $sednfav);

                                
    $sednfav str_replace('%%url%%'$_POST['url'], $sednfav);

                                
    $sednfav str_replace('%%saved_at%%'$htt_uri."content/".$_SESSION[collectf][userid]."/".$content_ID['id'], $sednfav);

                                
    $onetag explode(';'$_POST['share']);

                                foreach (
    $onetag as $ke => $ve) {

                                    if(
    preg_match('#^(\w|[-])+(\.(\w|[-])+)*@((\[([0-1]\d\d|2[0-4]\d|25[0-5])\.([0-1]\d\d|2[0-4]\d|25[0-5])\.([0-1]\d\d|2[0-4]\d|25[0-5])\.([0-1]\d\d|2[0-4]\d|25[0-5])\])|((([a-zA-Z0-9])+(([-])+([a-zA-Z0-9])+)*\.)+([a-zA-Z])+(([-])+([a-zA-Z0-9])+)*))$#'$ve)) 

                                        
    mail($ve"Shared webpage"$sednfav"From: $user_name_email \n" ."Reply-To: $user_name_email \n");

                                }

                            }



                        if (
    $ret) {

                            
    header("Location: /mylinks.php?write=1");

                            exit();

                        } else {

                            
    header("Location: /mylinks.php?write=2");

                            exit();

                        }

                    }

                }

            } else {

                
    $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 ولكني لم استطيع استخلاص طريقة لمساعدتي علي حل هذة المشكلة، ولان ليس لدي خبرة في مثل هذة المشاكل فأتمني ان اجد مساعد لحل هذة المشكلتين السابق ذكرهم وحتي ولو بمقابل لا مشكلة.





    __________________
    "يجب ان تعمل في صمت؛ ولا يجب ان يكون الصمت عملك"


  2. #2
    عضو فعال
    تاريخ التسجيل
    Dec 2008
    المشاركات
    1,897


    كالعادة بعد شراء الاسكريبت المبرمج لم يعد يرد علي رسائلي
    حسبت ان هذه الظاهرة موجودة فقط عند العرب .






  3. #3
    عضو فعال جدا
    تاريخ التسجيل
    Apr 2002
    المشاركات
    2,046


    طيب ياريت تخبرني لا يقبل كيف؟ يعني هل تظهر رسالة خطأ ما؟ معرفة رسالة الخطأ ستساعد في اكتشاف مكان الكود المطلوب تعديله خصوصا ان الموضوع محتاج تجربة وليس مجرد الاطلاع على الكود





    __________________
    مدونتي

  4. #4

    تاريخ التسجيل
    May 2007
    المشاركات
    2,403


    حسبت ان هذه الظاهرة موجودة فقط عند العرب .
    هذة المشكلة ليس لها علاقة بجنسية المبرمج بل انها عادة في الاعمال المدفوعة للمبرمج الحر ولهذا دائما ما اكرة الاعمال المدفوعة بشكل عام واتجة للمفتوحة او المجانية لان حتي ولو فرضنا بأنها تنقص الكثير فالمبلغ الذي اقوم بالشراء بة استطيع استغلالة في ايجاد مبرمج يفوم بالتعديلات الخاصة التي اريدها.

    طيب ياريت تخبرني لا يقبل كيف؟ يعني هل تظهر رسالة خطأ ما؟ معرفة رسالة الخطأ ستساعد في اكتشاف مكان الكود المطلوب تعديله خصوصا ان الموضوع محتاج تجربة وليس مجرد الاطلاع على الكود
    شكرا لاهتمامك اخي محمود، لا يقبل بمعني ان بمجرد اضافة وسم عربي يقوم بأرجاعي الي نفس الصفحة مضيفا الجملة الموجودة بنهاية الملف الذي ارفقتة Fill all required fields

    اي انة يعتبرني اني لم اقم بمليء نموذج الوسوم من الاساس مع العلم ان قواعد البيانات كاملة قمت بتحويلها الي utf-8 وايضا عدلت بعض الملفات المرمزة الي نفس الترميز ويقبل البحث بالعربية ايضا اي ان المشكلة في الوسوم فقط، اما بالنسبة لمشكلة الفصلة بين الوسوم فعند وضع اي علامة اخري غير السيميكولون ( ; ) يقوم بجلب الوسوم بطريقة متشابكة وبدون اي فصلات.





    __________________
    "يجب ان تعمل في صمت؛ ولا يجب ان يكون الصمت عملك"

  5. #5
    عضو فعال جدا
    تاريخ التسجيل
    Apr 2002
    المشاركات
    2,046


    بدايةً يجب السماح بالفاصلة "," بدلا من الفاصلة المنقوطة ";" في التاجز
    استبدل الكود:
    كود PHP:
    if ($_POST[tags]) {

        
    $_POST[tags] = ereg_replace('[^a-zA-Z0-9 ;]'''$_POST[tags]);

        
    $_POST[tags] = ereg_replace('( +)'' '$_POST[tags]);

       
    $_POST[tags] = ereg_replace('(;+)'';'$_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);


    بالكود
    كود PHP:
    if ($_POST[tags]) {

        
    $_POST[tags] = ereg_replace('[^a-zA-Z0-9 ,]'''$_POST[tags]);

        
    $_POST[tags] = ereg_replace('( +)'' '$_POST[tags]);

        
    $_POST[tags] = ereg_replace('(,+)'','$_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);



    ثانياً يجب أن نستخدم الفاصلة "," للفصل بين التاج والأخرى بدلا من الفاصلة المنقوطة ";"
    استبدل الكود
    كود PHP:
    $onetag explode(';'$_POST['tags']); 
    بالكود
    كود PHP:
    $onetag explode(','$_POST['tags']); 
    وجرب

    لا تنسى ان تأخذ نسخة من الملف قبل التعديل عليه





    __________________
    مدونتي

  6. #6

    تاريخ التسجيل
    May 2007
    المشاركات
    2,403


    بدايةً يجب السماح بالفاصلة "," بدلا من الفاصلة المنقوطة ";" في التاجز
    استبدل الكود:
    كود PHP:
    if ($_POST[tags]) {

        
    $_POST[tags] = ereg_replace('[^a-zA-Z0-9 ;]'''$_POST[tags]);

        
    $_POST[tags] = ereg_replace('( +)'' '$_POST[tags]);

       
    $_POST[tags] = ereg_replace('(;+)'';'$_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);


    بالكود
    كود PHP:
    if ($_POST[tags]) {

        
    $_POST[tags] = ereg_replace('[^a-zA-Z0-9 ,]'''$_POST[tags]);

        
    $_POST[tags] = ereg_replace('( +)'' '$_POST[tags]);

        
    $_POST[tags] = ereg_replace('(,+)'','$_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);


    ثانياً يجب أن نستخدم الفاصلة "," للفصل بين التاج والأخرى بدلا من الفاصلة المنقوطة ";"
    استبدل الكود
    كود PHP:
    $onetag explode(';'$_POST['tags']); 
    بالكود
    كود PHP:
    $onetag explode(','$_POST['tags']); 
    وجرب

    لا تنسى ان تأخذ نسخة من الملف قبل التعديل عليه
    شكرا لك اخي محمود لم انتبة لسطر دالة explode الا عندما ذكرتة، قمت بتعديل الدالة ايضا في بقية ملفات الاسكريبت وعملت بشكل جيد فالان مشكلة الفاصلة اتحلت والحمد لله، ولكن بالنسبة لمشكلة الوسوم العربية أليس لها حل !!





    __________________
    "يجب ان تعمل في صمت؛ ولا يجب ان يكون الصمت عملك"

  7. #7
    عضو فعال جدا
    تاريخ التسجيل
    Apr 2002
    المشاركات
    2,046


    جرب
    كود PHP:
    $_POST[tags] = ereg_replace('[^a-zA-Zأ-ي0-9 ;]'''$_POST[tags]); 
    بدلا من

    كود PHP:
    $_POST[tags] = ereg_replace('[^a-zA-Z0-9 ;]'''$_POST[tags]); 
    لكي تسمح الدالة بالحروف العربية





    __________________
    مدونتي





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض