شوّيت: شبكة كرة قدم اجتماعية




العودة   سوالف سوفت > سوالف برمجة المواقع وتطويرها > PHP
التسجيل المدوّنات البحث مشاركات اليوم جعل الأقسام مقروءة

الرد على الموضوع
 
LinkBack أدوات الموضوع
مشرف قسم أخبار الإنترنت والتقنية ومناقشتها
#1  
مشكلة بسكريبت اجنبي لا يدعم الوسوم العربية

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






__________________
"يجب ان تعمل في صمت؛ ولا يجب ان يكون الصمت عملك"
Peter Eden is offline   قديم 04-07-2009, 10:55 PM
الرد مع إقتباس
ليسامحني كل من اخطأت بحقه
#2  

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






وضاء is offline   قديم 04-07-2009, 11:34 PM
الرد مع إقتباس
عضو فعال جدا
#3  

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






محمود حسين is offline   قديم 04-07-2009, 11:38 PM
الرد مع إقتباس
مشرف قسم أخبار الإنترنت والتقنية ومناقشتها
#4  

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

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

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






__________________
"يجب ان تعمل في صمت؛ ولا يجب ان يكون الصمت عملك"
Peter Eden is offline   قديم 05-07-2009, 12:04 AM
الرد مع إقتباس
عضو فعال جدا
#5  

بدايةً يجب السماح بالفاصلة "," بدلا من الفاصلة المنقوطة ";" في التاجز
استبدل الكود:
كود 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']); 
وجرب

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






محمود حسين is offline   قديم 05-07-2009, 12:50 AM
الرد مع إقتباس
مشرف قسم أخبار الإنترنت والتقنية ومناقشتها
#6  

إقتباس:
المشاركة الأصلية بواسطة فِكرة مشاهدة مشاركة
بدايةً يجب السماح بالفاصلة "," بدلا من الفاصلة المنقوطة ";" في التاجز
استبدل الكود:
كود 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 الا عندما ذكرتة، قمت بتعديل الدالة ايضا في بقية ملفات الاسكريبت وعملت بشكل جيد فالان مشكلة الفاصلة اتحلت والحمد لله، ولكن بالنسبة لمشكلة الوسوم العربية أليس لها حل !!






__________________
"يجب ان تعمل في صمت؛ ولا يجب ان يكون الصمت عملك"
Peter Eden is offline   قديم 05-07-2009, 02:10 AM
الرد مع إقتباس
عضو فعال جدا
#7  

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

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






محمود حسين is offline   قديم 05-07-2009, 05:39 AM
الرد مع إقتباس
الرد على الموضوع


 

أدوات الموضوع

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

كود vB متاح
كود [IMG] متاح
كود HTML غير متاح
Trackbacks are متاح
Pingbacks are متاح
Refbacks are متاح


المواضيع المشابهه
الموضوع كاتب الموضوع القسم الردود آخر مشاركة
ماهو افضل منتدى اجنبي يدعم vBulletin seastar القسم العام 7 09-08-2008 08:36 AM
موقع اجنبي يتقدم على المواقع العربية بكلمة عربية .. كيف ؟؟ بو مبارك تقنية محركات البحث Search Engine Optimization 12 23-05-2008 01:38 AM
مشكلة بسكريبت ال Zen cart الحل يا عرب Abou Nart الويب والويب 2.0 والـ Semantic Web 0 11-06-2007 12:14 AM
مشكلة بسكريبت في السيرفر ... اول سؤال لي الرباط هوست سوالف الاستضافة 4 27-01-2007 03:03 PM
طلب مساعدة الله لايهينكم-مشكلة بسكريبت producer الويب والويب 2.0 والـ Semantic Web 4 08-11-2004 08:01 AM


جميع الأوقات بتوقيت غرينتش +3. الوقت الآن هو 06:15 PM.