صفحة 1 من 3 123 الأخيرةالأخيرة
النتائج 1 إلى 15 من 34

الموضوع: أول برنامج لي لا يعمل ما هي الاسباب

  1. #1
    عضو نشيط
    تاريخ التسجيل
    Jan 2009
    المشاركات
    60

    أول برنامج لي لا يعمل ما هي الاسباب



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


    أولا هذا الكود الذي يقوم بنقل الملف من اي موقع إلى موقعي وهو يعمل بشكل جيد
    كود PHP:
    $file="$link";
    $file=implode(file($file));
    $fopen=fopen("$nsmefile","w");
    fwrite($fopen,$file);
    fclose($fopen); 
    لكن اريد أن اقوم بعمل نقل الملفات دون الدخول إلى السي بنل
    فقط كاني زائر عادي ((اعلم انه سيسبب ثغرة قي الموقع وساحاول اعمل الحماية))

    هذه الصفحة كاملة
    المشكلة هي عند إدخال عنوان الملف واسم الملف يجب ان تعمل if على حد علمي
    المشكلة الثانية هي عند الدخول على الموقع عن طريق هذا الرايط index.php?mp=yas
    يجب ان تعمل
    switch فارجو اخباري بمكان الخطأ

    كود PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta content="ar-sa" http-equiv="Content-Language" />
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
    <?php
    $url
    =$_POST["url"];
    $nsmefile=$_POST["nsmefile"];
    if(isset (
    $url)&& isset ($nsmefile)){
    $file="$link";
    $file=implode(file($file));
    $fopen=fopen("$nsmefile","w");
    fwrite($fopen,$file);
    fclose($fopen);
    echo
    "<meta http-equiv=\"Refresh\" content=\"6;URL=index.php?mp=yas\" />";
    }
    ?>
    <title>برنامج نقل الملفات</title>
    </head>
    <body style="text-align: right">
    <?php
    switch($mp)
    {
    case
    "yas":
    echo
    "تم النقل الملف";
    break;
    default:
    ?>
    <form action="" method="post">
        <table style="width: 100%">
            <tr>
                <td><input name="url" style="width: 383px" type="text" />&nbsp;</td>
                <td>عنوان الملف</td>
            </tr>
            <tr>
                <td><input name="namefile" style="width: 380px" type="text" />&nbsp;</td>
                <td>اسم الملف</td>
            </tr>
            <tr>
                <td><input name="Button1" type="submit" value="أبدء النقل" />&nbsp;</td>
                <td>&nbsp;</td>
            </tr>
        </table>
    </form>
    <?php
    break;
    }
    ?>
    </body></html>

    لي اسبوع احاول اعمل البرنامج لكن الآن وصلت إلى طريق مسدود واريد مساعدتكم





    __________________
    ابصم


  2. #2


    هذه هو تعديلي وهو يعمل ومجرب
    ابحث عن الأخطاء ...
    كود PHP:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta content="ar-sa" http-equiv="Content-Language" />
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
    <?php
    $url
    =$_POST["url"];
    $namefile=$_POST["namefile"];
    if(isset (
    $url) && isset ($namefile)){
    $file=implode(" ",file($url));
    $fopen=fopen($namefile,"w");
    fwrite($fopen,$file);
    fclose($fopen);
    echo
    "<meta http-equiv=\"Refresh\" content=\"6;URL=index.php?mp=yas\" />";
    }
    ?>
    <title>برنامج نقل الملفات</title>
    </head>
    <body style="text-align: right">
    <?php
    switch($mp)
    {
    case
    "yas":
    echo
    "تم النقل الملف";
    break;
    default:
    ?>
    <form action="" method="post">
        <table style="width: 100%">
            <tr>
                <td><input name="url" style="width: 383px" type="text" />&nbsp;</td>
                <td>عنوان الملف</td>
            </tr>
            <tr>
                <td><input name="namefile" style="width: 380px" type="text" />&nbsp;</td>
                <td>اسم الملف</td>
            </tr>
            <tr>
                <td><input name="Button1" type="submit" value="أبدء النقل" />&nbsp;</td>
                <td>&nbsp;</td>
            </tr>
        </table>
    </form>
    <?php
    break;
    }
    ?>
    لكن الكود يحتاج الى برمجته من جديد لانه ملخبط





    __________________
    عدت
    اقتراحاتكم -> www.elbachiri.com

  3. #3
    عضو نشيط
    تاريخ التسجيل
    Jan 2009
    المشاركات
    60


    مشكور وما قصرت

    كان الخطأ هو nsmefile والصحيح namefile

    ما اعرف من وين طلع حرف s بدل الحرف a :shy:

    هذا الخطأ الثاني
    أنا استخدمت المتغير link وبعد أن عرفت أنها دالة معرفة مسبقا احببت ان اقوم بتغيير اسم المتغير من link إلى url لتفادي اي مشاكل في المستقبل
    ولم اقم باجراء التعديل على هذا السطر :shy:
    كود PHP:
    $file="$link";
    $file=implode(file($file)); 
    لكن الكود يحتاج الى برمجته من جديد لانه ملخبط
    توني جديد وش اسوي :funny: لازم الكود يتلخبط

    هذا الرد سريع
    ولي عودة بعد تطوير البرنامج :app:

    وسيتم مراجعة switch لمعرفة لماذا لم تعمل

    شكرا لك مرة أخرى





    __________________
    ابصم

  4. #4
    عضو نشيط
    تاريخ التسجيل
    Jun 2003
    المشاركات
    291


    شخصيا تعلمت اساليب ترتيب الكود من فتح مشاريع ضخمه ومرتبه (phpBB مثلا) و تضييع ساعات اتفرج عليها بدون سبب معين.

    لكن فعلا صعب تتعلم بعض الافكار الجديده من اي مصدر ثاني.






  5. #5
    عضو نشيط جدا
    تاريخ التسجيل
    Feb 2005
    المشاركات
    359


    INPUT






  6. #6
    عضو نشيط
    تاريخ التسجيل
    Jan 2009
    المشاركات
    60


    الحمد لله تم الانتهاء
    والبرنامج يعمل بشكل ممتاز وبدون اخطاء والكود مرتب

    وللعلم فقط اخي عبد الواحد البشيري
    كتابه هذا السطر بهذه الطريقة يتلف الملف المطلوب نقلة
    كود PHP:
    $file=implode(" ",file($url)); 
    ويجب ان تكون بهذه الطريقة
    كود PHP:
    $file=implode(file($url)); 
    وسيتم نشر البرنامج قريبا

    وبصراحة البرنامج خطير :funny: ولازم اعمل الحماية للبرنامج لكي لا يقوم احد بالدخول عليه ونقل اي ملف للموقع :1power:





    التعديل الأخير تم بواسطة قمر الشعراء ; 26-02-2009 الساعة 06:02 PM
    __________________
    ابصم

  7. #7
    عضو نشيط
    تاريخ التسجيل
    Jan 2009
    المشاركات
    60


    شخصيا تعلمت اساليب ترتيب الكود من فتح مشاريع ضخمه ومرتبه (phpBB مثلا) و تضييع ساعات اتفرج عليها بدون سبب معين.

    لكن فعلا صعب تتعلم بعض الافكار الجديده من اي مصدر ثاني.
    شكرا لك على هذه المعلومة

    الكود لم يكن مرتب بسبب الاخطاء الكثيرة التي ظهرت فيه ومحاولة التعديل وايجاد الاخطاء

    الحمد لله الان الكود مرتب مع العلم اني لم اهتم بتصميم البرنامج


    كود PHP:
    <?php
    $url
    =trim($_POST["url"]);
    $namefile=trim($_POST["namefile"]);

    if( 
    $url!="" && $namefile!=""){
    $file=implode(file($url));
    $fopen=fopen("$namefile","w");
    fwrite($fopen,$file);
    fclose($fopen);

    if(!
    $file){echo"تاكد من عنوان الملف";}
    elseif(
    $file){echo"تم نقل الملف بنجاح";}
    }
    ?>
    لا نستغني عن ملاحضاتكم





    __________________
    ابصم

  8. #8
    عضو نشيط
    تاريخ التسجيل
    Jan 2009
    المشاركات
    60


    ولا تزعل البرنامج في المرفق

    طريقة تركيب البرنامج
    قم برفع الملف في موقعك :1power:مبروك تم تركيب البرنامج بنجاح :funny:
    طريقة استخدام البرنامج
    قم بكتابة عنوان صحيح للملف المطلوب نقله
    قم بكتابة اسم الملف (((تخيل نفسك بتحمل ملف على جهازك ((حفظ باسم)) سيطلب منك كتابة اسم الملف)))
    بعد ادخال المعلومات بشكل صحيح سيتم نقل الملف إلى نفس المجلد الموجود عليه برنامج النقل

    --------
    سيتم تطوير البرنامج واضافة مميزات اخرى (((انتظر الاصدار القادم )) :funny: مصدق نفسة
    --------





    الملفات المرفقة الملفات المرفقة
    __________________
    ابصم

  9. #9


    ما رأيك في هذا الكود ؟ لعلك تستفيد من كيفية كتابة الشروط

    الكود لم اجربه
    ما دمت في البداية انصحك بكتابة التعليقات

    كود PHP:

    <?php 
    $url
    =trim($_POST["url"]); 
    $namefile=trim($_POST["namefile"]); 
    // ادا تم استخدام post 
    if( $_SERVER['REQUEST_METHOD'] == "POST" ){ 
        
    // اذا كان الحقلين غير فارغين 
        
    if( empty($url) == false || empty($namefile) == false ){ 
            
    // اذا تم قراءة الرابط 
            
    if( $file=@implode(file($url)) ){ 
                
    // اذا تم انشاء الملف 
                
    if( $fopen=@fopen("$namefile","w") ){ 
                    
    // اذا تمت الكتابة في الملف 
                    
    if( fwrite($fopen,$file) ){ 
                        echo 
    "ممتاز لقد تم حفظ الملف بنجاح"
                    }else{ 
                        echo 
    "هناك خطأ في حفظ الملف"
                    } 
                
    fclose($fopen);
                }else{ 
                    echo 
    "عفوا لم يتم انشاء هذا الملف "
                }  
            }else{ 
                echo 
    "عفوان عنوان الصفحة غير صحيح او ان هناك خطأ مجهول"
            } 
         }else{
        echo 
    " عليك بتعبئة جميع الحقول";
         }
             
    }else{ 
        echo 
    "مرحبا"

        
    // include('form.html'); 

     
    ?>






    __________________
    عدت
    اقتراحاتكم -> www.elbachiri.com

  10. #10
    عضو نشيط
    تاريخ التسجيل
    Jan 2009
    المشاركات
    60


    1- أنا فكرت في كتابة التعليقات لكن لم افعل

    2- الكود ممتاز لكن من أول نظرة للكود عرفت ان فيه خطأ

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

    3- في شرط التاكد من ادخال جميع الحقول استخدمت empty
    وأنا اعلم أن
    isset ترجع ترو إذا كان المتغير له قيمة
    empty ترجع ترو إذا كان المتغير ليس له قيمة
    لكن الذي لا أعرفه هو لماذا تعطي الدالة isset ترو عندما تكون الحقول خالية
    شاهد هذا الكود
    كود PHP:
    <?php
    $url
    =$_POST["url"];
    $namefile=$_POST["namefile"];
    if(isset (
    $url)&& isset ($namefile)){
    $file="$link";
    $file=implode(file($file));
    $fopen=fopen("$namefile","w");
    fwrite($fopen,$file);
    fclose($fopen);
    }
    ?>

    يتم تنفيذ الشرط بعد الارسال مع أن الحقول فارغة
    وبعد اضافة الدالة
    trim
    اصبح ينفذ الشرط مباشرة قبل الارسال

    وهذا الذي حيرني فممكن تشرح لي هذي النقطة :con2:

    4- وضع شرط على المتغير
    $fopen اعجبني كنت اتوقع أن بعد التاكد من أن عنوان الملف صحيح وتم ادخال اسم للملف لن يحدث خطأ
    لكن بعد أن رئيت الكود الخاص بك وبه هذا الشرط أجريت عدة أختبارات ووجدت أن دالة fopen ترجع خطأ عندما يكون الاسم نقطة فقط "." أو "/"
    واكتشفت أنه يمكنني أن أنقل الملف إلى أي مجلد آخر غير المجلد الموجود به البرنامج
    مثلا لدي مجلد اسمه tset وهو في نفس المجلد الذي به البرنامج فاقوم بكتابة في خانة اسم الملف "tset/namefilem" وإذا ادخلت اسم مجلد غير موجود فسترجع الدالة خطأ


    شكرا لك فلقد افدتني كثيرا
    وآسف على الاطالة

    في علم النفس يطلقون على شخصيتي اسم "التحليلي" والسبب ان هذه الشخصية تحلل جميع الاحتمالات






    التعديل الأخير تم بواسطة قمر الشعراء ; 27-02-2009 الساعة 12:42 AM
    __________________
    ابصم

  11. #11
    عضو فعال
    تاريخ التسجيل
    Jun 2002
    المشاركات
    1,346


    بسم الله الرجمن الرحيم

    السلام عليكم..

    isset ترجع ترو إذا كان المتغير له قيمة
    empty ترجع ترو إذا كان المتغير ليس له قيمة

    isset ترجع TRUE إذا كان المتغير تم إنشاؤه بغض النظر إذا كان فارغاً تماماً أو يحمل قيمة!
    وبما أن المتغيرين url و namefile معرفين في أعلى الكود..
    المخرج دائما TRUE

    empty ترجع TRUE إذا كان المتغير فارغاً.. أي لا يحمل أي قيمة..
    سواء كانت 0 أو علامات اقتباس فارغة (متغير نصي) أو False ... الخ..
    كما يرجع TRUE إذا لم يتم تعريف المتغير من الأساس..


    أتمنى وضح الفرق بينهم!!

    ^____^
    تحياتي






  12. #12


    2- الكود ممتاز لكن من أول نظرة للكود عرفت ان فيه خطأ

    الخطأ موجود في شرط التاكد من ادخال جميع الحقول أنت قمت بكتابة || وهذا يعني أو
    ونحن نريد إدخال جميع الحقول فيجب استخدام &&
    انا تعمدت كتابة الشرط ب ||
    وهذه فكرتي في الشرط الذي كتبته
    غير صحيح

    لنشرح الكود نظريا

    شرطك يقول اذا كان الحقلين فارغين فأوقف البرنامج.. مالذي سيقع اذا كان حقل فارغ وحقل معبئ ؟ سيتخطى الشرط بكل سهولة لأنه لم يتحقق الشرط بفراغ الحقلين

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

    منطقيا سيعمل الشرط الذي وضعته هكذا

    || = او
    && = و
    && => اذا كان الحقل1 والحقل2 فارغين اوقف البرنامج => حتى يكون الفراغ في حقلين وسيتم ايقاف البرنامج
    || => اذا كان الحقل1 او الحقل2 فارغين اوقف البرنامج => اذا كان الحقل الأول او الثاني فارغين سيتم الاقاف

    والله دوختني معاك





    __________________
    عدت
    اقتراحاتكم -> www.elbachiri.com

  13. #13
    عضو نشيط
    تاريخ التسجيل
    Jan 2009
    المشاركات
    60


    دعني اشرح لك الشرط الذي كتبته
    أنت كتبت " عليك بتعبئة جميع الحقول"

    إذا الشرط يجب ان يطابق المكتوب &&

    أما الشرط ||

    "عليك بتعبئة أحد الحقول "
    راجع ما كتبت :deal:

    عن كتابة || فهذا يعني عند تحقق احد الشرطين يتم الاستمرار (( عند تعبئة احد الحقول قم بالاستمرار ))
    وعن كتابة && فهذا يعني يجب تحقق جمييع الشروط ليتم الاستمرار (( عند تعبئة جميع الحقول قم بالاستمرار ))


    قريبا الاصدار الثاني للبرنامج





    التعديل الأخير تم بواسطة قمر الشعراء ; 27-02-2009 الساعة 02:02 AM
    __________________
    ابصم

  14. #14
    عضو نشيط
    تاريخ التسجيل
    Jan 2009
    المشاركات
    60


    بسم الله الرجمن الرحيم

    السلام عليكم..




    isset ترجع TRUE إذا كان المتغير تم إنشاؤه بغض النظر إذا كان فارغاً تماماً أو يحمل قيمة!
    وبما أن المتغيرين url و namefile معرفين في أعلى الكود..
    المخرج دائما TRUE

    empty ترجع TRUE إذا كان المتغير فارغاً.. أي لا يحمل أي قيمة..
    سواء كانت 0 أو علامات اقتباس فارغة (متغير نصي) أو False ... الخ..
    كما يرجع TRUE إذا لم يتم تعريف المتغير من الأساس..


    أتمنى وضح الفرق بينهم!!

    ^____^
    تحياتي
    كود PHP:
    يعني هذا السطر 
    $url
    ==""
    نفس هذا السطر
    empty($url
    هل توجد دالة تعطيني فولس إذا كان المتغير فراق ؟
    يعني نفس هذا السطر

    كود PHP:
    $url!="" 
    أو اقوم بتعريف دالة بنفسي إذا كانت غير موجودة





    __________________
    ابصم

  15. #15


    صحيح
    واسف انني خرجت على استفسارك





    __________________
    عدت
    اقتراحاتكم -> www.elbachiri.com





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

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

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