اذهب إلى المحتوى

السؤال

نشر (معدل)

اذا كان لدينا جدول بقاعدة البيانات مثلا users

مكون من قيم مختلفة مثلا الاسم والسن وبيانات اخرى وسوف يتم ترك بعض القيم فارغة عند التسجيل فى الموقع( فورم التسجيل او الاشتراك)

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

مع العلم انه تم تخزين جلسة ل اسم العضو عند الدخول بفورم الدخول 

مثلا

$name= $_SESSION['username'];

 

تم التعديل في بواسطة Hamada Ahmed

Recommended Posts

  • 1
نشر

حتى تحفظ بيانات مستخدم ليعاود تسجيل الدخول مرة ثانية و تتأكد من أنه نفسه، يمكنك حفظ بياناته في cookies في المتصفح، حيث تتعرف عليه.

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

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

بعد دخوله لهذه الصفحة، يمكنك تعبئة القيم التي سبق وأدخلها فيها، ومن ثم يتابع هو تعبئة باقِ البيانات وأنت ترسل استعلام للقاعدة عندها بعمل تحديث و ترسل البيانات الإضافية.

  • 1
نشر
"SELECT emailColumn,nameColumn From usersTable WHERE username=' ". $_SESSION['username'] . " ' "

حيث emailcolumn و namecolumn هيا الجداول الفارغة فى قاعدة البيانات و ادخل كافة الجداول التى تريد تعلمه بانعافارغة و usersTable هو جدول الاعضاء بعد تنفيذ كود ال sql السابق تاخذ نتيجته فى متغير و ليكن اسمه $row

تقوم بعمل if على $row]'emailColumn'[ اذا لم يكن موجودا اظهر رسالة تخبره بان الايميل مفقود

  • 1
نشر
بتاريخ 22 ساعات قال Hamada Ahmed:

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


<?php
session_start();
// If the user is not logged in redirect to the login page...
if (!isset($_SESSION['loggedin']))
   {
    header('Location:index.php?do=7');
    exit;
    }
include('connect_file.php');

$stmt = $db->prepare('SELECT mopile FROM accounts WHERE id = ?');
$stmt->bind_param('i', $_SESSION['id']);
$stmt->execute();
$stmt->bind_result($mopile);
$stmt->fetch();
$stmt->close();

if (!isset ($row['mopile']))  
{
echo "قم باضافة الهاتف فى صفحة التعديل ";
}
else
{
echo $mopile ;
}
?>

 

لاحظ ان تستخدم $stmt->bind_result($mopile); اذا فى الاسفل 

تستخدم if (!isset ($mopile))  و ليس if (!isset ($row['mopile']))  

  • 0
نشر

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

للتحقق من البيانات عند طرف المستخدم (أي متصفح الويب) يتم استخدام javascript في ال forms المستخدمة والتي يتم إدخال البيانات فيها،

مثال ليكن لدينا حقل البريد الالكتروني التالي:

 <form name="myForm" action="/action_page.php" onsubmit="return validateForm()" method="post">
Name: <input type="text" name="email">
<input type="submit" value="Submit">
</form> 

وعندها يمكن عند الضغط على زر submit التحقق من حقل البريد الالكتروني قبل إرسال الطلب إلى خادم الويب كالتالي:

function validateForm() {
  var x = document.forms["myForm"]["email"].value;
  if (x == "") {
    alert("يرجى تعبئة حقل البريد الالكتروني");
    return false;
  }

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

أما من جهة خادم الويب، فإن ذلك يعتمد على حسب لغة البرمجة التي تقوم باستخدامها من طرف الخادم، ولكن عموماً المبدأ هو نفسه فعند استقبال البيانات يتم أيضاً التحقق من صحتها عن طريق وضع شروط if else وفي حال لم تكن البيانات موافقة للشروط المذكورة يتم إرسال رسالة خطأ من الخادم إلى المستخدم.

بعد التعديل على سؤالك:

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

  • 0
نشر

انا لا اقصد ذلك

انا اقصد ان هناك حقول اختيارية

اذا لم يقم العضو بتسجيلها اثناء التسجيل فى الموقع

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

  • 0
نشر
بتاريخ 15 دقائق مضت قال Hamada Ahmed:

$name= $_SESSION['username'];

بما أنك تقوم باستعادة البيانات للمستخدم من قاعدة البيانات بعد تسجيل دخوله وتحفظها في الجلسة، تستطيع أيضاً تحديد الحقول الفارغة في سجله، وبعدها بنفس الطريقة التي ترسل فيها البيانات من الخادم إلى المستخدم تستطيع إرسال رسائل مخصصة تفيد بأن بعض الحقول فارغة ويجب تعديلها.

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

  • 0
نشر (معدل)

مثلا العضو احمد لم يخزن الايميل عند التسجيل

وعندما قام بالدخول للموقع كعضو تم تخزين جلسة مثلا برقم ال id او اسم المستخدم

كيف اجلب بياناته من الجدول للتأكد من ان حقل الايميل فارغ = لا اريد تخزين جلسات اثناء التسجيل لكن فقط يتم تخزين الجلسة اثناء الدخول

اعتقد ان الامر يحتاج ل  select

لاستدعاء بيانات هذا العضو من الجدول

وعمل شرط اذا كان الحقل فارغ

ليس معي كود محدد لكن اريد كود يحقق هذه الشروط

تم التعديل في بواسطة Hamada Ahmed
  • 0
نشر
بتاريخ 23 ساعات قال Mohamed Abd Elfattah:

"SELECT emailColumn,nameColumn From usersTable WHERE username=' " . $_SESSION['username'] . " ' "

حيث emailcolumn و namecolumn هيا الجداول الفارغة فى قاعدة البيانات و ادخل كافة الجداول التى تريد تعلمه بانعا فارغة و usersTable هو جدول الاعضاء بعد تنفيذ كود ال sql السابق تاخذ نتيجته فى متغير و ليكن اسمه $row

تقوم بعمل if على $row]'emailColumn'[ اذا لم يكن موجودا اظهر رسالة تخبره بان الايميل مفقود

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

<?php
session_start();
// If the user is not logged in redirect to the login page...
if (!isset($_SESSION['loggedin']))
   {
    header('Location:index.php?do=7');
    exit;
    }
include('connect_file.php');

$stmt = $db->prepare('SELECT mopile FROM accounts WHERE id = ?');
$stmt->bind_param('i', $_SESSION['id']);
$stmt->execute();
$stmt->bind_result($mopile);
$stmt->fetch();
$stmt->close();

if (!isset ($row['mopile']))  
{
echo "قم باضافة الهاتف فى صفحة التعديل ";
}
else
{
echo $mopile ;
}
?>

 

  • 0
نشر
بتاريخ 22 ساعات قال Mohamed Abd Elfattah:

 

لاحظ ان تستخدم $stmt->bind_result($mopile); اذا فى الاسفل 

 

تستخدم if (!isset ($mopile))  و ليس if (!isset ($row['mopile']))  

نفس المشكلة

<?php
session_start();
// If the user is not logged in redirect to the login page...
if (!isset($_SESSION['loggedin']))
   {
    header('Location:index.php?do=7');
    exit;
    }
include('connect_file.php');

$stmt = $db->prepare('SELECT mopile FROM accounts WHERE id = ?');
$stmt->bind_param('i', $_SESSION['id']);
$stmt->execute();
$stmt->bind_result($mopile);   
$stmt->fetch();
$stmt->close();

if (!isset ($mopile))
{
echo "قم باضافة الهاتف فى صفحة التعديل ";
}
else
{
echo $mopile ;
}

?>
بتاريخ On 2/25/2021 at 00:37 قال Sam Ahw:

بما أنك تقوم باستعادة البيانات للمستخدم من قاعدة البيانات بعد تسجيل دخوله وتحفظها في الجلسة، تستطيع أيضاً تحديد الحقول الفارغة في سجله، وبعدها بنفس الطريقة التي ترسل فيها البيانات من الخادم إلى المستخدم تستطيع إرسال رسائل مخصصة تفيد بأن بعض الحقول فارغة ويجب تعديلها.

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

 

<?php
session_start();
// If the user is not logged in redirect to the login page...
if (!isset($_SESSION['loggedin']))
   {
    header('Location:index.php?do=7');
    exit;
    }
include('connect_file.php');

$stmt = $db->prepare('SELECT mopile FROM accounts WHERE id = ?');
$stmt->bind_param('i', $_SESSION['id']);
$stmt->execute();
$stmt->bind_result($mopile);   
$stmt->fetch();
$stmt->close();

if (!isset ($mopile))
{
echo "قم باضافة الهاتف فى صفحة التعديل ";
}
else
{
echo $mopile ;
}

?>

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

  • 0
نشر
بتاريخ 19 ساعات قال Mohamed Abd Elfattah:

"SELECT emailColumn,nameColumn From usersTable WHERE username=' " . $_SESSION['username'] . " ' "

حيث emailcolumn و namecolumn هيا الجداول الفارغة فى قاعدة البيانات و ادخل كافة الجداول التى تريد تعلمه بانعا فارغة و usersTable هو جدول الاعضاء بعد تنفيذ كود ال sql السابق تاخذ نتيجته فى متغير و ليكن اسمه $row

تقوم بعمل if على $row]'emailColumn'[ اذا لم يكن موجودا اظهر رسالة تخبره بان الايميل مفقود

ممتاز مبارك لك

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...