ایمپورت کردن فایل sql.txt به داخل دیتابیس از طریق پی اچ پی

phpweb

Active Member
لطفا بگید که چطور می تونم به کمک پی اچ پی یه فایل به اسم sql.txt که حاوی کدهای ایجاد دیتابیس و جدولها هست رو به داخل دیتابیس ایمپورت کنم؟

می خوام برای قسمت نصب سایتم این کار رو انجام بدم.
 

M_cover

Member
شما با دستور shell_exec به راحتی می توانید یک فایل داده بارگذاری کنید
PHP:
shell_exec("Mysql –h host -u user -p database < backup-file.sql");
موفق باشید:rose:
 

phpweb

Active Member
شما با دستور shell_exec به راحتی می توانید یک فایل داده بارگذاری کنید
PHP:
shell_exec("mysql –h host -u user -p database < backup-file.sql");
موفق باشید:rose:
این تابع به پسورد احتیاج نداره؟

مشکلی که پیش اینه که هکر ممکنه محتویات فایل رو تغییر بده. برای تشخیص این مطلب چه راهی هست؟

البته به نظر خودم باید محتویات فایل رو خوند، md5 رو محاسبه کرد و تشخیص داد که آیا مقدار md5 جدید با مقدار md5 اولیه تفاوت داره یا نه. نظر شما چیه؟
 

imanmir

Member
شکل استاندارد این دستور

$TheFile = "1.txt";
$User = "root"; // NOTE: Either use a MySQL user or your CPanel/Netadmin user
$Password = "";
$DatabaseName = "db"; // NOTE: The database is prefixed with your CPanel/Netadmin user

$Results = shell_exec("mysql -u$User -p$Password -hlocalhost $DatabaseName < $TheFile");


echo "Results from MySQL import of $DatabaseName with User $User with file $TheFile:\r\n $Results\r\n";
 

M_cover

Member
دوست عزیز imanmir از استاندار سازی شما متشکرم اما لطفا کد های خود را داخل تگ ویرایشگر قرار دهید
کد استاندارد:

PHP:
$TheFile = "1.txt";
    $User = "root"; // NOTE: Either use a MySQL user or your CPanel/Netadmin user
    $Password = "";
    $DatabaseName = "db"; // NOTE: The database is prefixed with your CPanel/Netadmin user

   $Results = shell_exec("mysql -u$User -p$Password -hlocalhost $DatabaseName < $TheFile");


    echo "Results from MySQL import of $DatabaseName with User $User with file $TheFile:\r\n $Results\r\n";
این تابع به پسورد احتیاج نداره؟
منظور شما از پسورد برای چی است؟ تمام مقادیر کاملا واضع است قسمت اول نوع پایگاه داده mysql و -u نام کاربری پایگاه داده
-p پسور پایگاه داده -h هاست دیتابیس است قسمت بعد هم فایل مورد نظر است
مشکلی که پیش اینه که هکر ممکنه محتویات فایل رو تغییر بده. برای تشخیص این مطلب چه راهی هست؟
بله این تابع یک باگ امنیتی دارد و این هم مشخص بودن داده ها است که معمولا بعضی از سرویس دهندها از سرور برای امنیت کاربران این دستور را در سرور فیلتر می کنند
البته به نظر خودم باید محتویات فایل رو خوند، md5 رو محاسبه کرد و تشخیص داد که آیا مقدار md5 جدید با مقدار md5 اولیه تفاوت داره یا نه. نظر شما چیه؟
البته راه های متعددی وجود دارد استفاده از هش کد ها روش منطقی است اما همیشه راه درستی نیست(در مواردی که کد ها دارای انعطاف شوند کارایی ندارد :دی) اگر نظر من را می خواهید معمولا من در این گونه کار ها از اینکد های جاوا اسکریپت استفاده می کنم که امنیت خوبی را به همراه مییاورند و ضمنا قابل دیکد کردن و استفاده دوباره را نیز دارا می باشند
یکی از این اینکد ها که من به شخصه از آن استفاده کردم و راضی هستم jcryption است که با اجاکس - پی اچ پی ساخته شده و انعطاف خاصی را دارد

موفق باشید :rose:
 
آخرین ویرایش:

phpweb

Active Member
دوست عزیز imanmir از استاندار سازی شما متشکرم اما لطفا کد های خود را داخل تگ ویرایشگر قرار دهید
کد استاندارد:

PHP:
$thefile = "1.txt";
    $user = "root"; // note: Either use a mysql user or your cpanel/netadmin user
    $password = "";
    $databasename = "db"; // note: The database is prefixed with your cpanel/netadmin user

   $results = shell_exec("mysql -u$user -p$password -hlocalhost $databasename < $thefile");


    echo "results from mysql import of $databasename with user $user with file $thefile:\r\n $results\r\n";
منظور شما از پسورد برای چی است؟ تمام مقادیر کاملا واضع است قسمت اول نوع پایگاه داده mysql و -u نام کاربری پایگاه داده
-p پسور پایگاه داده -h هاست دیتابیس است قسمت بعد هم فایل مورد نظر است
بله این تابع یک باگ امنیتی دارد و این هم مشخص بودن داده ها است که معمولا بعضی از سرویس دهندها از سرور برای امنیت کاربران این دستور را در سرور فیلتر می کنند
البته راه های متعددی وجود دارد استفاده از هش کد ها روش منطقی است اما همیشه راه درستی نیست(در مواردی که کد ها دارای انعطاف شوند کارایی ندارد :دی) اگر نظر من را می خواهید معمولا من در این گونه کار ها از اینکد های جاوا اسکریپت استفاده می کنم که امنیت خوبی را به همراه مییاورند و ضمنا قابل دیکد کردن و استفاده دوباره را نیز دارا می باشند
یکی از این اینکد ها که من به شخصه از آن استفاده کردم و راضی هستم jcryption است که با اجاکس - پی اچ پی ساخته شده و انعطاف خاصی را دارد

موفق باشید :rose:
اگر این تابع رو غیر فعال می کنن که بهتره از یه روش دیگه استفاده کنم. من برای ایجاد پایگاه داده می خوام از این روش استفاده کنم.
 

M_cover

Member
اگر این تابع رو غیر فعال می کنن که بهتره از یه روش دیگه استفاده کنم. من برای ایجاد پایگاه داده می خوام از این روش استفاده کنم.

تقریبا 90 درصد سرویس دهنده ها این کارو نمی کنند چون بعضی از cms ها از این روش استفاده می کنند اگر هم سرویس دهنده ایی این کار را کرد شما با اعلام نیازی که دارید درخواست باز کرد اون را برای اکانت خود می کنید ....
 

phpweb

Active Member
تقریبا 90 درصد سرویس دهنده ها این کارو نمی کنند چون بعضی از cms ها از این روش استفاده می کنند اگر هم سرویس دهنده ایی این کار را کرد شما با اعلام نیازی که دارید درخواست باز کرد اون را برای اکانت خود می کنید ....
پس بهتره از این روش استفاده نکنم. و جدولها رو از طریق اجرای کوئری ایجاد کنم.
 

جدیدترین ارسال ها

بالا