صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 15 من 17

الموضوع: لماذا هذا الكود لا يعمل؟؟!

  1. #1
    عضو سوبر نشيط
    تاريخ التسجيل
    Oct 2003
    المشاركات
    641

    لماذا هذا الكود لا يعمل؟؟!



    السلام عليكم ورحمة الله وبركاته ...

    أخواني أنا عملت فورم تسجيل يتم عند التسجيل إضافته في قاعدة البيانات وما أريده أن يتم التحقق في قاعدة البيانات من حقل معين وهو عبارة عن رقم ملف مثلاً فإذا كان موجود لا يتم تسجيله مرة أخرى .. ولكن الحاصل الآن أنه يمكن التسجيل بنفس الرقم كل مرة وبالتالي تكرار التسجيل بنفس الرقم في قاعدة البيانات .. وأنا أستخدم هذا الكود:

    كود PHP:

    $selectnum 
    mysql_query("SELECT * FROM employee WHERE number = $v2");
    $checknum mysql_num_rows($selectnum);
    if (
    $checknum >= 1) {
        
    $html=eregi_replace("$e_msg","هذا الرقم مسجل من قبل",$html);
            echo 
    $html;
    }else{ 

    }
    mysql_query("INSERT INTO exmployee(id,number,name,type,job,branch1,branch2,note)
        value (null,'
    $v2','$v3','$v4','$v5','$v6','$v7','$v8')");
    }

    وهذا كود الإتصال بقاعدة البيانات وهو يعمل ويوجد إتصال مع القاعدة:

    كود PHP:
    //الاتصال بقاعدة البيانات
    $connection mysql_connect("localhost","root","root");
    mysql_select_db("database"$connection); 

    فهذا الكود لا يعمل ولا تظهر نتيجة أن الرقم مسجل من قبل ... فما هي المشكلة حتى يعمل هذا الكود ويتم التحقق من الرقم إن كان مسجل أم لا وتأتيه هذه الرسالة؟؟!







  2. #2
    عضو سوبر نشيط
    تاريخ التسجيل
    Oct 2003
    المشاركات
    641


    سؤال آخر أيضاً:

    عندي ملف php وأريد أسوي له حماية بحيث لما يطلبه أحد من المتصفح يظهر له خانتين فيهما إسم المستخدم وكلمة المرور ــ واسم المستخدم وكلمة المرور تكون مخزنة في الملف وليس في قاعدة البيانات ــ ولا يفتح ذلك الرابط أو الملف إلا بعد إدخالهما وإن أدخلهما خطأ تأتيه رسالة .. عذراً كلمة المرور خطأ حاول مرة أخرى ؟؟

    فكيف الطريقة أرجو مساعدتي .؟؟!






  3. #3
    عضو جديد
    تاريخ التسجيل
    Apr 2010
    المشاركات
    15


    كود PHP:
    <?php
     $host 
    "localhost";
     
    $user "root";
     
    $pass "root";
     
    $db "اكتب هنا جدول";

     
    mysql_connect($host,$user,$pass);
     
    mysql_select_db($db);


    ?>
    تفضل هزا ملف كونفيك يعمل لاي سكربيت


    الحمايه الذهبيه | Gold Security





    التعديل الأخير تم بواسطة hevger ; 05-09-2011 الساعة 11:02 PM

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


    شكراً لك .. ولكن ما فائدة ملف كونفيك والسكربت أصلاً يقوم بالإتصال بقاعدة البيانات ويقوم بالإضافة وغيرها؟؟!

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






  5. #5
    عضو نشيط جدا
    تاريخ التسجيل
    May 2007
    المشاركات
    509


    جرب الشرط التالي عزيزي :

    كود PHP:
    if (!empty($checknum) && $checknum!=0) { 
    اذا لم ينفع حاول ان تقوم بتنصيص القيمة يعني يصبح لديك التالي :

    كود PHP:
    if ($checknum >= '1') { 
    إلى الامام





    __________________
    EbNCaNa اخوكم ابن قانا

    [درس] قائمة بريدية بأسهل الطرق بواسطة PHP

    [توقيعك يجب أن لا يكون أطول من 400 حرف يتضمن تجاوز كود المنتدى] - الى متى المعاناة يا حضرة الأدارة ؟

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


    السلام عليكم أخي
    المشكلة بسيطة , مجرد { زائد فقط !
    كود PHP:
    $selectnum mysql_query("SELECT * FROM employee WHERE number = $v2"); 
    $checknum mysql_num_rows($selectnum); 
    if (
    $checknum >= 1) { 
        
    $html=eregi_replace("$e_msg","هذا الرقم مسجل من قبل",$html); 
            echo 
    $html
    }else{  

    // قم يحذفه ووافني بالنتائج
    mysql_query("INSERT INTO exmployee(id,number,name,type,job,branch1,branch2,note) 
        value (null,'
    $v2','$v3','$v4','$v5','$v6','$v7','$v8')"); 

    }  
    // لماذا هذا هنا ؟ ألكود مأخوذ من دالة ؟ 
    السبب لأنك أغلقت else قبل الإدراج إلى القاعد ة , فبالتالي سيدرجها سواء وُجدت أم لاز






  7. #7
    عضو سوبر نشيط
    تاريخ التسجيل
    Oct 2003
    المشاركات
    641


    جرب الشرط التالي عزيزي :

    كود PHP:
    if (!empty($checknum) && $checknum!=0) { 
    اذا لم ينفع حاول ان تقوم بتنصيص القيمة يعني يصبح لديك التالي :

    كود PHP:
    if ($checknum >= '1') { 
    إلى الامام

    للأسف لم ينفع الحلين أخي يتم الإضافة وحتى لو كان نفس الرقم مسجل من قبل ..!!






  8. #8
    عضو سوبر نشيط
    تاريخ التسجيل
    Oct 2003
    المشاركات
    641


    السلام عليكم أخي
    المشكلة بسيطة , مجرد { زائد فقط !
    كود PHP:
    $selectnum mysql_query("SELECT * FROM employee WHERE number = $v2"); 
    $checknum mysql_num_rows($selectnum); 
    if (
    $checknum >= 1) { 
        
    $html=eregi_replace("$e_msg","هذا الرقم مسجل من قبل",$html); 
            echo 
    $html
    }else{  

    // قم يحذفه ووافني بالنتائج
    mysql_query("INSERT INTO exmployee(id,number,name,type,job,branch1,branch2,note) 
        value (null,'
    $v2','$v3','$v4','$v5','$v6','$v7','$v8')"); 

    }  
    // لماذا هذا هنا ؟ ألكود مأخوذ من دالة ؟ 
    السبب لأنك أغلقت else قبل الإدراج إلى القاعد ة , فبالتالي سيدرجها سواء وُجدت أم لاز


    قمت بالتعديل الذي ذكرته وحذفت { بحيث صار التعديل هكذا:

    كود PHP:
    $selectnum mysql_query("SELECT * FROM employee WHERE number = $v2");
    $checknum mysql_num_rows($selectnum);
    if (
    $checknum >= 1) {
        
    $html=eregi_replace("$e_msg","هذا الرقم مسجل من قبل",$html);
            echo 
    $html;

    }else{ 

    mysql_query("INSERT INTO exmployee(id,number,name,type,job,branch1,branch2,note)
        value (null,'
    $v2','$v3','$v4','$v5','$v6','$v7','$v8')");
    }

    ولكن لم يعمل الملف وتأتيني رسالة خطأ:


    Parse error: syntax error, unexpected $end in C:\AppServ\www\add.php on line 321


    فما الحل؟؟!






  9. #9
    عضو نشيط
    تاريخ التسجيل
    Apr 2010
    المشاركات
    60


    عفوا , أعد الكو كما كان , ثم قم بإجراء هذا التعديل:

    كود PHP:
    $selectnum mysql_query("SELECT * FROM employee WHERE number = $v2");  
    $checknum mysql_num_rows($selectnum);  
    if (
    $checknum >= 1) {  
        
    $html=eregi_replace("$e_msg","هذا الرقم مسجل من قبل",$html);  
            echo 
    $html;  
    }else{   

    mysql_query("INSERT INTO exmployee(id,number,name,type,job,branch1,branch2,note)  
        value (null,'
    $v2','$v3','$v4','$v5','$v6','$v7','$v8')");  



    }  

    بحيث يتم نقل الاستعلام إلى داخل else

    جرب ووافني بالنتائج






  10. #10
    عضو سوبر نشيط
    تاريخ التسجيل
    Oct 2003
    المشاركات
    641


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






  11. #11
    عضو سوبر نشيط
    تاريخ التسجيل
    Oct 2003
    المشاركات
    641


    عفوا بعدما حذفت القوس الأخير { اختفت رسالة الخطأ لكن لا زالت المشكلة قائمة ويمكن إضافات بيانات أو أرقام مكررة ..!!






  12. #12
    عضو سوبر نشيط
    تاريخ التسجيل
    Oct 2003
    المشاركات
    641


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






  13. #13
    عضو سوبر نشيط
    تاريخ التسجيل
    Oct 2003
    المشاركات
    641


    أنا أعتقد أن المشكلة من في هذا المتغير ..!!

    كود PHP:
    $e_msg="تم إضافة البيانات بنجاح"
    كود PHP:
    <tr><td>الرقم الوظيفي :</td><td>".nl2br($v2)."</td></tr

    كود PHP:
    <!-- ############ بدء كود صفحة النتيجة ############ -->
    <table border="0" width="100%" height="100%" style="border-collapse: collapse" cellpadding="0">
        <td>
                                    <table id="theader" border="1" width="100%" style="border-collapse: collapse" bgcolor="#CFE5BC" bordercolor="#326400">
     <tr>
      <td align="center">
     <b><img border="0" src="add.gif"></b></td>
    </tr>
    </table>
    </td>
     </tr>
      <tr>
     <td>
    <center><? echo nl2br($e_msg)?></center>
     </td>
       </tr>
    <tr>
    <td>
                                                                    <table id="tfooter" border="1" width="100%" style="border-collapse: collapse" cellpadding="0" bgcolor="#CFE5BC" bordercolor="#326400">
     <tr>
       <td align="center"> </a> </td>
     </tr>
     </table>
    </td>
    </tr>
      </table>
    <!-- ############ نهاية كود صفحة النتيجة ############ -->

    فالمشكلة على ما أظن في هذا المتغير:

    كود PHP:
    <? echo nl2br($e_msg)?>
    فبعد التسجيل فسواء كان الرقم مسجل من قبل أم لا فتأتي هذه الرسالة:

    كود PHP:
    $e_msg="تم إضافة البيانات بنجاح"
    على الرغم إن كان الرقم مسجل من قبل فلا يتم إضافته مرة أخرى لكن بقية مشكلة رسالة الإشعار بأن هذا الرقم مسجل من قبل .

    فكيف يكون التعديل بحيث لو تم التسجيل برقم وظيفي جديد غير مسجل من قبل تأتيه رسالة تم إضافة البيانات بنجاح وفي حال كان الرقم مسجل من قبل تأتي رسالة عفواً هذا الرقم مسجل من قبل ؟؟!





    التعديل الأخير تم بواسطة أمجد ; 09-09-2011 الساعة 11:20 AM

  14. #14
    عضو سوبر نشيط
    تاريخ التسجيل
    Oct 2003
    المشاركات
    641


    وينكم؟

    أرجو الرد على الموضوع للأهمية.






  15. #15
    عضو جديد
    تاريخ التسجيل
    Aug 2011
    المشاركات
    4


    أخوي

    أدخل

    $e_msg="تم إضافة البيانات بنجاح";

    بين وقوسي else

    وعدل السطرين هذي
    كود PHP:
    $html=eregi_replace("$e_msg","هذا الرقم مسجل من قبل",$html);
    echo 
    $html
    إلى
    كود PHP:
        $e_msg="هذا الرقم مسجل من قبل"
    ليكون المتغير يسند له قيمة مختلفه إذا تغيرت الحالة
    :con2:
    هذا بناءً على ردودك الأخيرة





    التعديل الأخير تم بواسطة صقر محمد ; 10-09-2011 الساعة 09:08 PM





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

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

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