اخواني ارجو المساعده

  • Bing

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

  $explava = explode('.', $itemimgName);

  $endava = end($explava);

  $itemimgExten = strtolower($endava);

  $itemimg = rand(0, 10000) . '_' . $itemimgName;

اريد انا اعرف وضيفتها في الكود لو سمحتو

هذا هو الكود كاملًا

<?php

include('configg.php');

if(isset($_POST['uploade'])){

  $NAME = $_POST['name'];

  $PRICE = $_POST['price'];

  // $IMAGE = $_FILES['image'];

  // $image_location = $_FILES['image']['tmp_name'];

  // $image_name  = $_FILES['image']['name'];

  // upload variables

  $itemimgName = $_FILES['image']['name'];

  $itemimgTmp = $_FILES['image']['tmp_name'];

  $explava = explode('.', $itemimgName);

  $endava = end($explava);

  $itemimgExten = strtolower($endava);

  $itemimg = rand(0, 10000) . '_' . $itemimgName;

  $insert = "INSERT INTO food(name , price , image) VALUES ('$NAME','$PRICE','$itemimg')";

  // var_dump($insert -> erorrInfo($insert));

  mysqli_query($con ,$insert);

  if(move_uploaded_file($itemimgTmp, "im\\" . $itemimg)){

    echo "<script>alert('yyyeess')</script>";

  }

  else{

    echo "<script>alert('noo')</script>";

  }

}

?>

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

التعليقات

Mustafa_Suleiman أضف ردا

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

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

واستخدام هذا الاسم الجديد لحفظ الملف المرفوع في مجلد الصور في الخادم.

ثم استخدام المتغير $itemimg في إدخال بيانات المنتج في جدول food في قاعدة البيانات واستخدامه أيضًا في رابط الصورة المرفوعة في العرض.

وسأشرح لك بالتفصيل:

في البداية يتم استخلاص الامتداد (extension) لملف الصورة المرفوع على الموقع، وتوليد اسم عشوائي جديد للملف.

أي أولاً، يتم تفكيك اسم الملف بناءً على النقطة التي تفصل الامتداد عن اسم الملف، باستخدام دالة PHP المسماة explode()، حيث يتم تحويل اسم الملف إلى مصفوفة (array) تحتوي على قسمين: اسم الملف والامتداد.

ثم، استخدام دالة end() للحصول على العنصر الأخير في المصفوفة السابقة (الذي يحوي الامتداد) وتخزينه في المتغير $endava.

بعد ذلك، تحويل النص في المتغير $endava إلى حروف صغيرة باستخدام دالة strtolower()، وحفظ النتيجة في المتغير $itemimgExten.

أخيراً، إنشاء اسم عشوائي جديد للملف باستخدام دالة rand()، من خلال إضافة عدد عشوائي بين 0 و 10000 إلى الجزء الأول من الاسم، ثم إضافة النقطة والامتداد الجديدة التي تم تخزينها في المتغير $itemimgExten، وتخزين النتيجة النهائية في المتغير $itemimg.

شكرن اخي جزاك الله الف خير

اشكرك شكر جزيل لولا مساهمتك

لما اكملت مشروع اشكرك مره اخرى

سأوضح الأمر بشكل أكثر تفصيلاً.

في هذا الكود، يتم استخدام دالة `explode()` لتفكيك اسم الملف الذي يتم تحميله إلى مصفوفة من خلال تحديد النقطة كفاصل بين الأجزاء. في هذه الحالة، يتم استخدام `$itemimgName` كمصدر للاسم الذي يتم تحليله.

$explava = explode('.', $itemimgName);

بعد ذلك، يتم استخدام دالة `end()` لاسترداد العنصر الأخير من المصفوفة، وهو الامتداد الذي يتم استخدامه في الخطوة التالية.

$endava = end($explava);

ثم يتم تحويل الامتداد إلى حروف صغيرة باستخدام دالة `strtolower()`، ويتم حفظ النتيجة في المتغير `$itemimgExten`.

$itemimgExten = strtolower($endava);

في الخطوة التالية، يتم استخدام هذه المتغيرات لإنشاء اسم ملف جديد. يتم استخدام `$itemimgName` كاسم ملف الأصلي، ويتم إضافة عدد عشوائي بين 0 و 10000 وشرطة سفلية قبل الاسم الأصلي. يتم حفظ النتيجة في المتغير `$itemimg`.

$itemimg = rand(0, 10000) . '_' . $itemimgName;

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