کلیدستان

نسخه‌ی کامل: ویرایش یک اسکریپت php و mysql
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام  بر اساتید خسته نباشین
من مبتدی هستم و مشغول مطالعه یه سوال داشتم ممنون میشم راهنمایی بفرمایین
من یه اسکریپت رو سایتم نصب کردم که یه فرم ثبت نام داره و اطلاعات رو تو mysql  ذخیره میکنه   میخام فقط چند فیلد از فرم ثبت نام باشه و بقیه رو حذف کنم نویسنده اسکریپت ترتیب فیلدها رو طوری قرار داده  که اگه فیلد  اول رو حذف کنم اطلاعات فیلد دوم در پایگاه داده بجای فیلد اول میشینه.
اگه من از 5تا فیلد ثبت نام  فقط  اولی و چهارمی- که نام کاربری و رمز عبوره - رو بخام چکار کنم
که انگار از اول فقط همین دو تا فیلد وجود داشته و اطلاعات و کدهای بقیه فیلدهای زاید ( مث نام پدر و مدل ماشین )را  در فایل ثبت نام(php)  و هم در دیتابیس mysql   حذف کنم؟  سپاس
سلام.
بستگی به ساختار کدها داره.
باید کدها را ذکر کنید. البته توضیحاتی کلی در مورد بخش های آن بدهید تا با یک نگاه به کدها بتوان راهنمایی کرد.

Flower
ضمن تشکر از استاد عزیز
 من دوتا از فایلهای اسکریپت رو ضمیمه کردم   فایل اصلی  ثبت نام  signup.php   هستش  و جداول دیتابیس  با ریستور کردن فایل install.sql  موجود در ریشه پوشه اسکریپت   .در محیط بازیابی پشتیبان اسکریپت تو  دیتابیس  ساخته میشن .  من فایل signup.php  رو ادیت کردم  میخام  فقط فیلدهایی که خودم میخام  تو دیتابیس ساخته بشه  و زمان گزارش گیری هم  بجز فیلدهای من  همه فیلدهای دیگه حذف بشه .   آیا باید فیلدهای install.sql  رو هم ویرایش کنم؟؟ممنون میشم  یه نگاه به  اسکریپت بندازین  بینم اصلا ساختارش چجوریه؟ من کجاها رو ادیت کنم ؟ اصلا اطلاعات فرم ثبت نام توسط کدوم فایل میره تو دیتابیس؟
 

ضمنا  اگه بخوام تو فیلد ثبت نام برای کد کاربری اعتبار سنجی بشه و فقط حروف کوچک لاتین و اعدا د باشه کد مربوطه باید به چه شکلی تو فایل signup.php

 نوشته بشه؟ تو فرم اصلی  فقط میشه عدد نوشت !

 سپاس بیکران
یه سوال از اساتید عزیز 
اگه جواب اینو بدونم  سوال قبلیم  رو دیگه میدونم چکار کنم
 میخام بدونم  وقتی  توسط یه فرم ثبت نام  که به فارسی نوشته    نام خود را وارد کنید   و ما یک نام ثبت میکنیم 
 اولا توسط چه مدل فایلی  این نام  فارسی میره  وارد یه فیلد (جدول )  تو دیتابیس میشه  که همین مقدار(نام وارد شده ) رو تو یه جدول  اما با نام انگلیسی name   ذخیره میکنه؟؟
ٍثانیا  وقتی میخایم   لیست نامهای ثبت شده رو ببینیم  ( با علم بر اینکه  مثلا توی رکورد name   دیتابیس  10 نام ثبت شده ) توی چه فایلی اطلاعات رو از دیتابیس میخونه  اما فرمی که به ما نشون میده  مجدد بجای  کلمه name   معادل فارسیش  قرار داده؟ به عبارتی  ساختار فرم فارسی تهیه گزارش از رکوردهای دیتابیس  چه شکلیه؟ php   html    یا چیزای دیگه؟    من دنبال این فایل اخیرم و پیداش نمیکنم !!مرسی
بنده توضیحاتی را در ادامه می نویسم که یک راهنمای کلی برای اینگونه موارد باشد. اگر همه جزئیات را شرح می دهم برای این است که برای سایر دوستان نیز مفید باشد.
برای آشنایی با ساختار فرم ها (Forms)، دو دسته کلید (دسته بندی) زیر را ببینید :

دسته کلید شماره 146

دسته کلید شماره 227

و به خصوص کلید زیر :

کلید شماره 399

حالا فرض کنیم که بنده یک سری فایل دارم و مطابق آنچه شما گفتید، قصد دارم که یکی از فرم ها و پردازش آن را تغییر بدهم.
ابتدا به سراغ فایل html (یا php) ای می روم که در آن، فرم نمایش داده می شود. با یافتن کدهای فرم (تگ form)، مشخصه action آن را نگاه می کنم :

کد پی‌اچ‌پی:
<form method="post" action="show_text.php"

چون در مشخصه action ، آدرس صفحه ای که پردازش فرم را انجام می دهد، ذکر شده است. به صفحه مورد نظر می روم. معمولا در زبان PHP ، با تابع isset (کلید شماره 429) چک می کنند که اطلاعات فرم به صفحه ارسال شده یا نه. یعنی مثلا یک فیلد (field) از فرم را بررسی می کنند که آیا به صفحه ارسال شده یا نه، اگر ارسال شده باشد، آنگاه کدهای پردازش فرم اجرا می شود.
در این مرحله باید کدهای پردازشی را بررسی کنیم تا ببینیم به چه شکل اطلاعات ذخیره می شوند.

اگر کدها خیلی زیاد باشند، شما می توانید بر اساس کلمات کلیدی که در query های sql به کار می روند، خط های مربوط به قرار دادن اطلاعات در جدول پایگاه داده را بیابید. یعنی چون کلمه INSERT برای قرار دادن یک ردیف جدید در جدول است، کافی است این کلمه را جستجو کرده و ببینید که در چه قسمت هایی از کد به کار رفته است.
برای به روزرسانی ردیفی از جدول هم کلمه UPDATE در query به کار می رود.

اما در مورد حذف تعدادی از فایلدهای فرم، اگر تسلط کامل به کدهای فرم و بخش پردازش آنها پیدا کردید، می توانید آن فیلدهای فرم را کامل حذف کنید و در query های sql هم بخش مربوط به آنها را حذف نمایید، اما اگر به کدها تسلطی نداشتید و با حذف فیلدها، مشکلاتی به وجود می آمد، یک راه حل دیگر این است که آنها را به صورت hidden در بیاورید و یک مقدار دلخواه (تهی) را هم برای آنها تعیین کنید تا صفحه پردازش خطا نگیرد که این فیلدها برای پردازش ارسال نشده اند. برای تبدیل فیلدها به حالت hidden ، کلید زیر را بخوانید :

کلید شماره 457

در مورد فایل هایی با پسوند sql که مثلا فایل install.sql را نام بردید، باید دقت داشته باشید که این فایل ها حاوی query های sql برای اجرا شدن هستند و به شکل کدهای داینامیک php نیستند. منظورم این است که یک سری query های آماده و از قبل تعیین شده هستند و در حین اجرای صفحات، تنها از فایل با پسوند sql فراخوانی شده و دستورات موجود در آنها اجرا می شود (حداقل بنده ندیده ام که به شکل دیگری استفاده شوند، حالا ممکن است مثلا در یک برنامه خاص، دستورات فراخوانی شده و قبل از اجرا، تغییرات و جایگزینی هایی در آنها اعمال شد، ولی در کل، فایل sql برای فراخوانی و اجرا شدن query های از پیش نوشته شده می باشد، اگر دقت کرده باشید، فایل های back up از پایگاه داده با پسوند sql هم دقیقا به همین صورت هستند و اگر یکی از آنها را بررسی کنید، تنها query هایی برای اجرا شدن می باشند). 
از نام فایل که install.sql هم می توان تشخیص داد که در ابتدای نصب اجرا می شود (احتمالا query هایی برای ساخت پایگاه داده و جدل های آن می باشد). بنابراین اگر به دنبال بخش قرار دادن اطلاعات جدید در جدول ها هستید، ابتدا صفحات php را بررسی نمایید. اگر خواستید که ساختار اولیه جدول ها (هنگام ساخت) را تغییر بدهید، انگاه به سراغ فایل های sql بروید و query ها را ویرایش کنید.

Flower
(۱۳۹۴/۰۹/۱۲, ۰۳:۳۱ ب.ظ)admin نوشته: [ -> ]بنده توضیحاتی را در ادامه می نویسم که یک راهنمای کلی برای اینگونه موارد باشد. اگر همه جزئیات را شرح می دهم برای این است که برای سایر دوستان نیز مفید باشد.
برای آشنایی با ساختار فرم ها (Forms)، دو دسته کلید (دسته بندی) زیر را ببینید :

دسته کلید شماره 146

دسته کلید شماره 227

و به خصوص کلید زیر :

کلید شماره 399

حالا فرض کنیم که بنده یک سری فایل دارم و مطابق آنچه شما گفتید، قصد دارم که یکی از فرم ها و پردازش آن را تغییر بدهم.
ابتدا به سراغ فایل html (یا php) ای می روم که در آن، فرم نمایش داده می شود. با یافتن کدهای فرم (تگ form)، مشخصه action آن را نگاه می کنم :

کد پی‌اچ‌پی:
<form method="post" action="show_text.php"

چون در مشخصه action ، آدرس صفحه ای که پردازش فرم را انجام می دهد، ذکر شده است. به صفحه مورد نظر می روم. معمولا در زبان PHP ، با تابع isset (کلید شماره 429) چک می کنند که اطلاعات فرم به صفحه ارسال شده یا نه. یعنی مثلا یک فیلد (field) از فرم را بررسی می کنند که آیا به صفحه ارسال شده یا نه، اگر ارسال شده باشد، آنگاه کدهای پردازش فرم اجرا می شود.
در این مرحله باید کدهای پردازشی را بررسی کنیم تا ببینیم به چه شکل اطلاعات ذخیره می شوند.

اگر کدها خیلی زیاد باشند، شما می توانید بر اساس کلمات کلیدی که در query های sql به کار می روند، خط های مربوط به قرار دادن اطلاعات در جدول پایگاه داده را بیابید. یعنی چون کلمه INSERT برای قرار دادن یک ردیف جدید در جدول است، کافی است این کلمه را جستجو کرده و ببینید که در چه قسمت هایی از کد به کار رفته است.
برای به روزرسانی ردیفی از جدول هم کلمه UPDATE در query به کار می رود.

اما در مورد حذف تعدادی از فایلدهای فرم، اگر تسلط کامل به کدهای فرم و بخش پردازش آنها پیدا کردید، می توانید آن فیلدهای فرم را کامل حذف کنید و در query های sql هم بخش مربوط به آنها را حذف نمایید، اما اگر به کدها تسلطی نداشتید و با حذف فیلدها، مشکلاتی به وجود می آمد، یک راه حل دیگر این است که آنها را به صورت hidden در بیاورید و یک مقدار دلخواه (تهی) را هم برای آنها تعیین کنید تا صفحه پردازش خطا نگیرد که این فیلدها برای پردازش ارسال نشده اند. برای تبدیل فیلدها به حالت hidden ، کلید زیر را بخوانید :

کلید شماره 457

در مورد فایل هایی با پسوند sql که مثلا فایل install.sql را نام بردید، باید دقت داشته باشید که این فایل ها حاوی query های sql برای اجرا شدن هستند و به شکل کدهای داینامیک php نیستند. منظورم این است که یک سری query های آماده و از قبل تعیین شده هستند و در حین اجرای صفحات، تنها از فایل با پسوند sql فراخوانی شده و دستورات موجود در آنها اجرا می شود (حداقل بنده ندیده ام که به شکل دیگری استفاده شوند، حالا ممکن است مثلا در یک برنامه خاص، دستورات فراخوانی شده و قبل از اجرا، تغییرات و جایگزینی هایی در آنها اعمال شد، ولی در کل، فایل sql برای فراخوانی و اجرا شدن query های از پیش نوشته شده می باشد، اگر دقت کرده باشید، فایل های back up از پایگاه داده با پسوند sql هم دقیقا به همین صورت هستند و اگر یکی از آنها را بررسی کنید، تنها query هایی برای اجرا شدن می باشند). 
از نام فایل که install.sql هم می توان تشخیص داد که در ابتدای نصب اجرا می شود (احتمالا query هایی برای ساخت پایگاه داده و جدل های آن می باشد). بنابراین اگر به دنبال بخش قرار دادن اطلاعات جدید در جدول ها هستید، ابتدا صفحات php را بررسی نمایید. اگر خواستید که ساختار اولیه جدول ها (هنگام ساخت) را تغییر بدهید، انگاه به سراغ فایل های sql بروید و query ها را ویرایش کنید.

Flower

استاد خیلی متشکرم  عالی بود  دست مربزاد سلامت باشین و روزگار بکام      تنت به تیغ طبیبان نیازمند مباد