ما رأيكم في صفحة install.php وكيف احفظ المدخلات

  • el3zahaby

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

انا ابرمج صفحة install.php لكن لم تكتمل بعد لان بها مشكله

ولكن اريد معرفة كيف احفظ المدخلا التي تأتي من الفورم ؟؟؟!!

هذا هوا الكود

<?php
include '../head.php';
?>
<br>
<br>
<br>
<br>
<div  style="width: 50%; margin: 0 auto; background: #F3F3F3; border-right: 10px solid #ffa000 ;padding: 9px; ">
    <form method="post" action="../config/conreglog.php" >
    <div class="w3-group" style="border: 1px solid; ">      
        <input name="DBhost" class="w3-input" type="text" style="width:100%" required>
        <label class="w3-label">الهوست</label>
    </div>
    <div class="w3-group"style="border: 1px solid; ">      
        <input name="DBname" class="w3-input" type="text" style="width:100%" required>
        <label class="w3-label">قاعدة البيانات</label>
    </div>
    <div class="w3-group"style="border: 1px solid; ">      
        <input name="DBuser" class="w3-input" type="text" style="width:100%" required>
        <label class="w3-label">اسم المستخدم</label>
    </div>
    <div class="w3-group"style="border: 1px solid; ">      
        <input name="DBpass" class="w3-input" type="text" style="width:100%" required>
        <label class="w3-label">كلمة المرور</label>
    </div>

        <button class="w3-input" type="submit">ادخال- التالي </button>
</form>
</div>

الكود السابق هوا ما في صفحة install.php

وهذ الكود في صفحة config.php

 <?php
require '../install/install.php';



 $DBhost = $_POST['DBhost']; // اسم الهوست وغالبا يكون لوكل هوست
 $DBname = $_POST['DBname']; // اسم القاعدة
 $DBuser = $_POST['DBuser']; // اسم اليوزر
 $DBpass = $_POST['DBuser']; // باسورد القاعدة

 $Connect = @mysql_connect($DBhost,$DBuser,$DBpass); // الاتصال بالقاعدة
 if(!$Connect){// اذا لم يتم الاتصال
 echo 'يرجى التاكد من بيانات القاعدة';// طباعة العبارة
 exit; // ايقاف تنفيذ باقى اكواد الصفحة
 }


 $Select = @mysql_select_db($DBname);// اختيار القاعدة للتعامل معها
 if(!$Select){// اذا لم يتم الامر
 echo 'غير قادر على الاتصال بالقاعدة';// طباعة العبارة
 exit;// ايقاف تنفيذ باقى اكواد الصفحة
}

?>

فعند ادخال معلمومات القاعدة يتم الاتصال ويكون كل شئ ممتاز

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

فالسؤال هو كيف احفظ معلومات القاعدة ؟؟ هل احفظة بسيشن ام ماذا ؟

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

تخزين بيانات مهمة مثل بيانات الاتصال بقاعدة البيانات في الكوكيز خطرة جدا .. لأنه سيمكن لأي زائر معرفة بيانات القاعدة واختراق الموقع!

الطريقة الأفضل هي ان تنشئ ملف كونفيج فارغ .. وعند عمل Submit للفورم تقوم بكتابة الكود في الملف الفارغ وهكذا كل شئ سيكون آمن

انا يا صديقي اريد عندما اعطي هذا السكربت الى شخص (بعد انتهائه طبعا) ويريد رفعه على استضافته....


عند الرفع على الاستضلفة يقوم السكربت بطرح عليه بعض الاسأله في الفورم في صفة install.php ويرسلها لصفحة كونفيج لكي يتصل بالقاعدة ... وعند نجاح الاتصال يتم بعد ذالك عمل جدولان

اول جدول للوحة التحكم في الموقع (للمديرين)

والثاني لتسجيل الدخول والخروج (لمستخدمين)

وعند نجاح العمليات السابقة يتم كتابة

echo'ارجاء حذف صفحة install.php'

لانها اذا بقية سيتم اختراق الموقع وعمل به جداول اخرى لكن ما اريده هوا انه عند عمل الجداول واحذف صفحة install.php
تبقى المعلومات المدخلة في صفحة config.php التي ارسلت لها المعلومات سابقا على شكل متغير كما ذكرت في بداية المساهة :

وهذ الكود في صفحة config.php

$DBhost = $_POST['DBhost']; // اسم الهوست وغالبا يكون لوكل هوست
$DBname = $_POST['DBname']; // اسم القاعدة
$DBuser = $_POST['DBuser']; // اسم اليوزر
$DBpass = $_POST['DBuser']; // باسورد القاعدة

وهذه المتغيرات هي التي اتت من الفورم

تمام فهمت الفكرة 100%.

الآن أنت بحاجة لحفظ هذه المتغيرات والطريقة الأمثل هي وضع سطر مع بداية ملف install.php يختبر وجود ملف باسم DBConfig.php في حالة وجوده فهذا يعني أن المتغيرات قد كُتبت مُسبقًا ولا داعي لملف install ويجب حذفه، أما في حالة فشل هذا الاختبار فيتابع سكريبت install عمله بشكل كامل، لكن بعد الانتهاء يجب القيام بإنشاء ملف باسم DBConfig وحفظ بيانات الاتصال بداخله وتستدعيها داخل السكريبت كيفما تشاء :)

أتمنى أن تكون الفكرة واضحة.

اعتذر فهمت طلبك بشكل خاطئ :))

لذا كتبت رد ليس له علاقة.

في حالة نجاح الاتصال قُم بتخزين القيم بـcookie أو session لكن هذه الطريقة مكشوفة وقد تؤدي باختراق قواعد البيانات لديك لأن تخزين بيانات الاتصال دون تشفير مُشكلة كبيرة.

اذن ما الحل؟

كما أخبرتك في حالة نجاح عملية الاتصال هذا يعني أن البيانات المُدخلة صحيحة ويُمكن استخدامها أثناء عملية التسجيل، لذا قُمت بتخزينها بـ COOKIE أو SESSION والأفضل الأخيرة ثم استخدمها مرة جديدة لإنشاء الاتصال

تم حفظها بنجاح في سيشن SESSION

لكن انت اخفتني من مشكلة الثغرات فهل يا اخي الكريم هناك حل :)

عند استخدام SESSION يتم حفظ الجلسة على الخادم وليس على جهاز المُستخدم كما هو الحال في COOKIES لذا الوضع أفضل بقليل، حاول عدم ارسال معلومات حسّاسّة دون تشفيرها لأن الاستماع إلى الطلبات المُرسلة والمُستقبلة بين الخادم ( السيرفر ) والعميل ( مُتصفح المُستخدم ) قد تكون له عواقب كبيرة.

إذا كانت هذه البيانات ستُستخدم في البرنامج بشكل دائم لما لا تقوم بتخزينها ضمن ملف ؟ يعني بعد أن يدخلها المُستخدم ويتم قبولها فعلًا، عوضًا عن حفهظا بجلسة ( سنتهتي مع إغلاق المُتصفح وبالتالي يحتاج المُستخدم إلى ادخال البيانات من جديد)، احفظها داخل ملف والسكريبت يقرأ محتويات الملف، هكذا أفضل

احفظها داخل ملف والسكريبت يقرأ محتويات الملف، هكذا أفضل

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

فكيف اذا اخفظه في ملف ؟

ما فهمته منك هو التالي، سوف تقوم باستدعاء ملف install فقط لتثبيت الجداول وما إلى ذلك، بعدها يتم حذفه، إلى هنا الموضوع تمام :)

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

انا يا صديقي اريد عندما اعطي هذا السكربت الى شخص (بعد انتهائه طبعا) ويريد رفعه على استضافته....


عند الرفع على الاستضلفة يقوم السكربت بطرح عليه بعض الاسأله في الفورم في صفة install.php ويرسلها لصفحة كونفيج لكي يتصل بالقاعدة ... وعند نجاح الاتصال يتم بعد ذالك عمل جدولان

اول جدول للوحة التحكم في الموقع (للمديرين)

والثاني لتسجيل الدخول والخروج (لمستخدمين)

وعند نجاح العمليات السابقة يتم كتابة 

echo'ارجاء حذف صفحة install.php'

لانها اذا بقية سيتم اختراق الموقع وعمل به جداول اخرى لكن ما اريده هوا انه عند عمل الجداول واحذف صفحة install.php
تبقى المعلومات المدخلة في صفحة config.php التي ارسلت لها المعلومات سابقا على شكل متغير كما ذكرت في بداية المساهة :

وهذ الكود في صفحة config.php

$DBhost = $_POST['DBhost']; // اسم الهوست وغالبا يكون لوكل هوست
$DBname = $_POST['DBname']; // اسم القاعدة
$DBuser = $_POST['DBuser']; // اسم اليوزر
$DBpass = $_POST['DBuser']; // باسورد القاعدة

وهذه المتغيرات هي التي اتت من الفورم

لم ارى التعليق السابق اصلا

:D

لحقت وعدلته :)))

ردي ليس له علاقة بالسؤال .

لكن حاول تجنب إستخدام mysql و حاول تعلم كلاس mysqli or PDO لأنه حسب علمي الطريقة التي إستخدمتها في الإتصال أبصبحث قديمة نوعا ما .

تقبل مروري.

بأذن الله بعد انتهائي من هذا السيكربت بالــmysql سأتعلم الــmysqli :)

شكرا لك