الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف اتخلص من مشكلة عدم امكانية الاتصال بقاعدة البيانات مرتين في صفحة واحدة ؟؟؟

بدأه أبو خالد الشمالي في 9 يناير 2010 · 6 رد · 1,028 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

منذ عدة شهور تواجهني هذه المشكلة .. وهي عندما اريد أن أضمن صفحات مختلفة في صفحة واحدة.

مثلاً في صفحة الـ (index.php) وهي الرئيسية للموقع اريد أن ارفق بداخلها صفحات اخرى لتظهر لي بالصفحة الرئيسة بهذه الطريقة :

include("show_note.php");

وفي كل صفحة فرعية يكون هناك استعلام بقاعدة البيانات, وكما هو معروف أن الاستعلام يحتاج للاتصال بقاعدة البيانات .. وعادة اوامر الاتصال بالقاعدة يكون في ملف نسميه (config.php) . عندما اقوم بارفاق ملف الكونفق في كل صفحة فرعية هكذا :

include("admin/config.php");

وأحاول اظهار الصفحات الفرعية في الصفحة الرئيسية عن طريق الامر (include) تظهر لي رسالة الخطأ التالية:

Fatal error: Cannot redeclare connecttodb() (previously declared in C:\xampp\htdocs\tolab&learn\estgama_mag\admin\config.php:11) in C:\xampp\htdocs\tolab&learn\estgama_mag\admin\config.php on line 17

حاولت أن ارفق ملف الكونفق في الصفحة الرئيسية فقط ولا ارفقه في الصفحات الفرعية لكن تأتي رسالة خطأ تفيد بأن الصفحة الفرعية لا تستطيع الاتصال بقاعدة البيانات :

Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\xampp\htdocs\tolab&learn\estgama_mag\rand.php on line 16

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\xampp\htdocs\tolab&learn\estgama_mag\rand.php on line 16

ارجو من أهل الخبرة ان يفيدوني في حل هذه المشكلة .. وأكن شاكراً لهم.

أتمنى أن اكون عرض المشكلة بصورة واضحة .

#2

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

فضلاً قم بنسخ محتويات ملف الكونفق لأستطيع مساعدتك..

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

تحياتي،،

n622971709_461151_8573.jpg
#3

اخر العزيز مشكلتك بسيطه جدا وهى انك بتكرر من الفنكشن لانك بتقوم بإستدعاء الملف اكثر من مرة مثال: Cannot redeclare connecttodb() هنا معنها انك كررت الفنكشن ده مرتين

ولانك تتجاهل المشكلة دى استخدم include_once بدل من include بحيث يقوم بعمل استدعاء مرة واحدة فقط

مثال:

include_once("show_note.php");

ولله التوفيق

#4
القادرى كتب:

اخر العزيز مشكلتك بسيطه جدا وهى انك بتكرر من الفنكشن لانك بتقوم بإستدعاء الملف اكثر من مرة مثال: Cannot redeclare connecttodb() هنا معنها انك كررت الفنكشن ده مرتين

ولانك تتجاهل المشكلة دى استخدم include_once بدل من include بحيث يقوم بعمل استدعاء مرة واحدة فقط

مثال:

include_once("show_note.php");

ولله التوفيق

جميل جدا والدالة include_once() مفيدة جدا

cert.gif

___________________

فليتك تحلو والحياة مريرة - وليتك ترضى والأنام غضـــاب

وليت الذي بيني وبينك عامر - وبيني وبين العالمين خـراب

اذا صح منك الود فالكل هين - وكل الذي فوق التراب تـــراب

____________________

سبحانك اللهم وبحمدك اشهد ان لا اله الا انت استغفرك واتوب اليك

#5

وبإمكانك أيضاً إستخدام الدالة require_once

أنصحك أخي أن تنتبه جيداً من ثغرة File include.. ومراعاة أن لا تقع في هذا الفخ

1

Follow me on Twitter:

@majds

Expert PHP Programmer, and Database Administrator

#6

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

أخي الكريم Nurettin Erdogan

ممكن تفيدنا في ثغرة الـ File Include لم سمحت

ولك جزيل الشكر

#7

حسناً، سأعطيكم نظرة سريعة على ثغرة File Include

بعض المبرمجون يستخدمون include وأخواتها دون مراعاة الجوانب الأمنية لهذه الدالة

مثلاً البعض يجعل من Parameter الذي يتم إرساله في دالة include وأخواته غير محدد، وديناميكي

مثال بسيط، لأحد الأخطاء

include($_GET['page'].'.php');

وبذلك سيقوم على سبيل المثال بتمرير إسم الصفحة من خلال URL

مثلاً سيجلب صفحة Contact

سيقوم بـ index.php?page=contact

في المقابل الدالة ستقوم بجلب الصفحة contact.php

وهكذا..

وبذلك يمكن لهاكر أن يكتشف وجود هذه الثغرة، ويمكنه ذلك من include لـ Shell

والتحكم بالسيرفر..

لذلك النصيحة أن تكون Include محدودة جداً.. ومتأكد من أنها آمنة

هذا ببساطة معنى ثغرة File Include.

1

Follow me on Twitter:

@majds

Expert PHP Programmer, and Database Administrator

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…