شنبه ۲۲ شهریور ۱۴۰۴

Saturday, September 13, 2025 GMT +3:30

ارسال پارامتر به URL و دریافت مقادیر با PHP

php-curl-file-get-contents

زمانی که از ارسال پارامتر در وب صحبت می کنیم، بیشتر ذهنمان معطوف به فرم های HTML و متد POST یا GET می شود، البته این شیوه مرسوم و پرکاربردی برای ارسال داده ها از مرورگر (سمت کاربر) به یک سایت (سمت سرور) است، اما گاهی مواقع نیاز است که از این قالب سنتی پا را فراتر بنهیم و از روش های دیگری نیز استفاده کنیم، به فرض از همین استاندارد POST و GET در ارسال درخواست های آژاکسی (Ajax) نیز به سرور استفاده می شود، از طرفی کدها و توابعی در PHP وجود دارد که می توانند علاوه بر ارسال پارامترها به یک سرور (آدرس URL)، پاسخ آن را نیز دریافت کنند، امکان بالقوه ای که می تواند کاربردهای زیادی داشته باشد، از جمله مهمترین این توابع file_get_contents و cURL هستند که در ادامه آموزش به آنها خواهیم پرداخت.

تابع file_get_contents


از تابع file_get_contents در PHP برای خواند اطلاعات یک فایل یا آدرس URL استفاده می شود، به عنوان مثال:
<?php
$homepage = file_get_contents('https://webgoo.ir/');
echo $homepage;
?>
کد بالا با ارسال یک درخواست به آدرس تعیین شده، پاسخ سرور (که صفحه اول سایت «وبگو» است) را به صورت رشته متنی دریافت می کند، اکنون اگر با دستور echo از متغیر فرضی homepage خروجی بگیریم، اطلاعات دریافت شده نمایش داده می شوند.
تابع file_get_contents  پنج آرگومان به شرح زیر می پذیرد:
- آرگومان اول (filename): نام (یا آدرس) فایل یا URL.
- آرگومان دوم (use_include_path): فراخوانی فایل از دایرکتوری include_path در تنظیمات PHP.
- آرگومان سوم (context): محتوایی که به همراه درخواست ارسال می شود، این محتوا باید توسط تابع  stream_context_create (و بر اساس استانداردهای HTTP context options) ساخته شود تا معتبر باشد، تنظیمات قابل اعمال در این قسمت عبارتند از: method، header، user_agent، content، proxy، request_fulluri، follow_location، max_redirects، protocol_version، timeout و ignore_errors؛ اطلاعات بیشتر:
http://php.net/manual/en/context.http.php
- آرگومان چهارم (offset): محل و خط شروع خواندن اطلاعات (این قابلیت به دلیل پشتیبانی نشدن برای فایل های لوکال و محدودیت هایش، چندان کاربردی نیست).
- آرگومان پنجم (maxlen): حداکثر کاراکتری که تابع خواهد خواند (در حالت پیش فرض تمام اطلاعات خوانده می شود).

تابع file_get_contents و متد POST


تابع file_get_contents علاوه بر دریافت پاسخ یک سرور، این توانایی را دارد که در چاچوب متد POST پارامترهایی نیز به سرور مقصد ارسال نماید، همان طور که در توضیح آرگومان های آن گفته شد، این پارامترها باید در چارچوب استاندارد HTTP بوده و پیش از ارسال توسط تابع stream_context_create معتبر شوند، به این ترتیب می توان نحوه کار فرم های HTML را به راحتی شبیه سازی کرد، ضمن اینکه علاوه بر ارسال پارامترها، می توان هم زمان نتیجه درخواست را نیز دریافت کرد، به مثال زیر توجه کنید.
<?php
//مقادیری که باید ارسال شوند
$data = http_build_query(
    array(
    'var_1' => 'content_1',
    'var_2' => 'content_2',
    'var_3' => 'content_3'
    )
);
//تنظیم سربرگ های http
$http = array('http' =>
    array(
    'method'  => 'POST',
    'header'  => 'Content-type: application/x-www-form-urlencoded',
    'content' => $data
    )
);
//معتبر سازی با stream_context_create
$context = stream_context_create($http);
//ارسال درخواست و دریافت نتیجه
$result = file_get_contents('http://www.example.com/submit/get.php', FALSE, $context);
?>
نکته: برای نمایش نتیجه دریافتی می توانید از یک دستور ساده echo استفاده کرده و از متغیر result خروجی بگیرید.

تابع cURL


یکی از قدرتمند ترین کتابخانه های مربوط به کار با پروتکل های وب در PHP، کتابخانه libcurl است که از نسخه 4.0.2 به آن افزوده شده است، البته این کتابخه به صورت پیش فرض در مفسر PHP وجود ندارد، اما به جهت کاربردی بودن، معمولا در اکثر سرورها به صورت پیش فرض فعال است، به طور ساده کتابخانه libcurl دربرگیرنده مجموعه توابعی است که کار با پروتکل های وب (از جمله HTTPS، HTTP، FTP و...) را به صورت حرفه ای و با قابلیت های زیاد ممکن می کند، به مثال زیر توجه کنید.
<?php
$content = 'PHP cURL';
$curl = curl_init('http://www.example.com/submit/get.php');
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, 'var='.$content);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, FALSE);
$result = curl_exec($curl);
curl_close($curl);
?>
همان طور که در مثال بالا مشخص است، توابع مربوط به این کتابخانه با پیشوند _curl شروع می شوند، اما توضیح مختصری درباره برخی توابع این کتابخانه:
- تابع curl_init: با دریافت یک آدرس url، نشست cURL را آغاز می کند.
- تابع curl_setopt: تنظیم پارامترهای مورد نیاز برای اجرای صحیح یک نشست cURL.
- تابع curl_exec: اجرای یک نشست cURL.
- تابع curl_close: پایان یک نشست cURL.
- تابع curl_error: آخرین خطای رخ داده در نشست را نمایش می دهد.
- تابع curl_errno: شماره خطای برگردانده شده را نمایش می دهد.
البته توابع مربوط به این کتابخانه محدود به موارد گفته شده نمی شود:
http://www.php.net/manual/en/book.curl.php
به مثالی کاربردی توجه کنید.
<?php
//تنظیم آدرس url
$curl = curl_init('http://www.example.com/submit/get.php');
//تنظیم ارسال از طریق متد POST
curl_setopt($curl, CURLOPT_POST, 1);
//تنظیم پارامترها
curl_setopt($curl, CURLOPT_POSTFIELDS, 'var_1=content_1&var_2=content_2&var_3=content_3');
//تعین اینکه پاسخ سرور دریافت شود یا خیر
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
//اجرای نشست
$result = curl_exec($curl);
//پایان نشست
curl_close($curl);
?>
توضیح:
- آدرس url مقصد را در قسمت curl_init مشخص کنید.
- در تنظیمات مربوط به CURLOPT_POST، متد استفاده شده در درخواست را مشخص می کنیم، اگر مقدار 1 یا TRUE باشد، مقادیر CURLOPT_POSTFIELDS از طریق متد POST ارسال شده و پارامترهای احتمالی در آدرس URL نادیده گرفته می شوند (امکان ترکیب متد POST و GET در این حالت وجود ندارد).
- در تنظیمات قسمت CURLOPT_POSTFIELDS، پارامترها و مقادیر آنها را تعیین کنید، این پارامترها در واقع نقش نام فیلد و مقادیر آنها نقش مقدار فیلد را در یک فرم HTML بازی می کنند.
- در قسمت CURLOPT_RETURNTRANSFER، مشخص می کنیم که آیا پاسخ سرور نیز پس از ارسال درخواست دریافت شود یا خیر، اگر مقدار TRUE باشد، پاسخ به صورت رشته متنی دریافت می شود و اگر FALSE باشد، پاسخ دریافت نمی شود.
- برای تکمیل یک نشست cURL باید حتما با تابع curl_exec آن را اجرا کنیم.
- در نهایت نیز با تابع curl_close، نشست cURL را خاتمه می دهیم.
نکته: برای نمایش نتیجه دریافتی می توانید از یک دستور ساده echo استفاده کرده و از متغیر result خروجی بگیرید.
دسته بندی: آموزش کاربردی » PHP
related مطالب بیشتر:
نحوه نمایش متن و تصاویر اتفاقی در PHP و MySQL
ساخت منوی هوشمند با PHP و CSS
ساخت فید خوان آر اس اس (RSS Feed Reader) با PHP
ارسال ایمیل با PHP و کلاس PHPMailer
آموزش ساخت نقشه XML سایت (Sitemap) با PHP و MySQL
دیدگاه
more ۱۴۶ دیدگاه برای این مطلب ارسال شده است.
more چینش دیدگاه ها به ترتیب از جدیدترین به قدیمی ترین است.
سید صالح
۱۳:۰۵ ۱۴۰۳/۰۱/۰۷
با سلام و خسته نباشید
من یک فرم ساده دارم که کاربر باید پر کنه چون سوال امنیتی و اینا نداره ربات ها همه اش اسپم ارسال می کنن یکی از فیلدها نام و نام خانوادگیه اگه فارسی باشه ربات ها نمی تونن همه اش اسپم بفرستن میخوام کدی داشته باشم که اگه کاربری اونجا فارسی وارد نکرد نتونه بره مرحله بعد و اخطار دریافت کنه خیلی ممنون می شم کمکم کنید
با تشکر
برای بررسی صرف وجود حروف زبان فارسی و فاصله در رشته متنی ارسالی می توانید از نمونه کد زیر استفاده کنید:
<?php
$str = "سلام";
if(preg_match('/[^آ-ی ]/ui', $str)){
echo 'فقط حروف فارسی و فاصله مجاز است!';
} else {
echo 'رشته متنی مجاز است!';
}
?>
در اینجا متغیر str از قبل مقداردهی شده اما در فرم های وب معمولا باید از طریق متد POST یا GET مقادیر فیلدهای فرم را از کاربر دریافت و سپس اعتبارسنجی کنید.
اسماعیل سیدی
۰۸:۱۳ ۱۴۰۲/۱۲/۱۹
با تشکر از شما که جواب دادید
یه سوال دیگه هم داشتم من مطالب سایتم زیاده توی مطالب لینکهایی هستند که توی آپلودسنترها آپلود کردم میشه کاری کرد متوجه بشم کاربران چه تعداد روی لینکها کلیک کرده اند؟ میخوام یه تابع داشته باشم که تعداد اونارو بدونم واسه لینکهای خود سایت اینکارو کردم ولی این لینکهای سایت خودم نیستن میخوام وقتی کاربر روی این لینکها کلیک می کنه تعداد و شناسه اون پست برام مشخص بشه
با تشکر
برای این کار به یک اسکریپت ریدایرکتر (انتقال دهنده لینک) در سایتتان احتیاج دارید و باید تمام آدرس های موجود در مطالب را هم با آدرس ریدارکتر آن جایگزین کنید، به فرض اگر لینک اصلی یک فایل به صورت زیر باشد:
http://example.com/link/to/file.zip
برای ریدایرکت کردن آن باید به صورت نمونه زیر تغییر کند:
http://yoursite.com/redirect/to/?file=file.zip&id=234
که 234 می تواند آی دی فرضی ردیف مربوط به اطلاعات لینک اصلی فایل در دیتابیس باشد و در نهایت پس از شمارش کلیک انجام شده در اسکریپت شما، کاربر با دستور header به آدرس اصلی منتقل می شود.
اسماعیل سیدی
۲۳:۵۴ ۱۴۰۲/۱۲/۱۴
ببخشید یه سوال دیگه هم دارم
چطور می تونم وقتی یه مطلبی رو توی سایتم میذارم اگه اون مطلب حاوی لینک دانلود بود اون لینک رو برام توی هاست خودم آپلود کنه لینکها همه مستقیم هستند و توی سایت های آپلودر هستند واسه عکس هم اگه کدی چیزی هست ممنون میشم راهنمایی کنید میخوام عکسها هم توی هاست خودم آپلود بشه هر عکس و هر فایلی که بود واسه عکسها تابع خودش باشه و واسه فایلها هم همین طور
متشکرم از شما بزرگوار
متاسفانه انجام این موارد به راحتی و با راه حل کوتاه امکانپذیر نیست، به نظر برای پردازش خودکار این فرایندها باید دو ربات نوشته شود، یکی برای دریافت فایل ها و آپلود آن در سایت شما و دیگری برای جایگزینی لینک مطلب با لینک جدید از سایت شما که کاری زمانبر و تخصصی است.
مجتهدزاده
۱۷:۱۸ ۱۴۰۲/۰۷/۰۳
سلام
من در لاراول سعی دارم تا با
file_get_content
یک لینک رو اجرا کنم تا یک اس ام اس به شماره ای که در لینک هست ارسال بشه. گاهی در متن داده های ارسالی مقادیر فارسی دارم. وقتی تمام مقادیر ارسالی انگلیسی هست سامانه به درستی کار می کنه و اس ام اس ارسال می شه اما وقتی یکی از متغیرها مقدار فارسی داره خطای 502 دریافت می کنم. راهی هست که این مشکل رو رفع کنم؟ (سامانه پیامکی فراز اس ام اس هستش)
به سورس کدهایتان دسترسی نداریم و امکان تست و خطایابی میسر نیست، اما از توضیحات مشخص است که مشکلی در پردازش کاراکترهای یونیکد وجود دارد، اطلاعات را قبل از ارسال از فیلتر تابع
rawurlencode
عبور دهید ببینید مشکل رفع می شود:
$str = rawurlencode(file_get_content(URL));
همچنین بررسی کنید ممکن است مشکل از وجود کاراکتر خاص در داده ها باشد نه الزاما متن فارسی.
مزرجی
۲۲:۵۲ ۱۴۰۲/۰۲/۲۱
سلام وقت بخیر
چجوری میشه فهمید خروجی هر لینک چیه؟ مثلا از کجا بفهمیم خروجی یک لینک، متن هست یا فیلم هست یا عکس یا ارایه (json) و...؟
ممنون میشم تجربیات خودتون رو در اختیار ما بگذارید
با تابع get_headers در PHP می توانیم پارامترهای موجود در پاسخ سرور URL را به صورت آرایه دریافت کنیم، در ایندکس Content-Type می توانیم نوع خروجی را بررسی کنیم به فرض text/html.
https://www.php.net/manual/en/function.get-headers.php
سعید
۰۰:۳۱ ۱۴۰۱/۰۵/۰۸
باسلام
با تشکر از شما درست بود و مشکلی نداشت
در پناه خدای بزرگ باشید
سعید
۰۶:۰۸ ۱۴۰۱/۰۵/۰۷
با سلام و خسته نباشید
شرط های زیر رو نگاه کنید:
<?php if($cart->ch_price==1): ?><a href='<?php echo $this->createUrl('post/'.$cart->id) ; ?>'><b class=title><?php echo $this->pageTitle; ?></b></a><?php endif; ?>
<?php if($cart->ch_price!=1): ?><a href='<?php echo $this->createUrl('cart/'.$cart->pay) ; ?>'><b class=title><?php echo $this->pageTitle; ?></b></a><?php endif; ?>
اگه دقت کنید می بینید که جفت شرط ها شبیه هم هستند. فقط یکی مساویه و دیگری مساوی نیست آیا امکان داره شرط دوم بصورت elseif نوشته بشه؟ یعنی واسه این دو تا شرط فقط یک شرط با دو کاربرد نوشته بشه هرچند اینجوری هم مشکلی نداره ولی می خوام مرتب تر و ساده تر باشه و جفت شرط ها توی یک شرط لحاظ بشه
با تشکر فراوان
شرط های بالا را می توانید به صورت زیر خلاصه و کوتاه کنید:
<?php if($cart->ch_price==1): ?><a href='<?php echo $this->createUrl('post/'.$cart->id) ; ?>'><b class=title><?php echo $this->pageTitle; ?></b></a><?php else: ?><a href='<?php echo $this->createUrl('cart/'.$cart->pay) ; ?>'><b class=title><?php echo $this->pageTitle; ?></b></a><?php endif; ?>
تست نکرده ایم، لطفا بررسی کنید مشکلی نباشد.
rona
۱۹:۰۹ ۱۴۰۰/۱۱/۲۰
سلام وقتتون بخیر باشه 
ببخشید من به  دنبال یک پارامتر هستیم در php که زمانی که ما در باکس  عبارات را تایپ میکنیم نتایجی (که از سمت گوگل ارسال شود) به ما نشان دهد.
تا آنجا که اطلاع داریم برای این مورد نیاز به استفاده از خدمات API گوگل است، متاسفانه کد آماده ای در این خصوص در اختیار نداریم، لطفا در وب جستجو کنید ممکن است کلاس های آماده ای برای این منظور از قبل نوشته شده باشد، در هر صورت با توجه به اینکه سیاست های گوگل در این موارد سختگیرانه تر شده ممکن است نمونه کدهای موجود از کار افتاده باشند یا نیاز به اعمال به روزرسانی هایی باشد.
امیرحسین
۱۸:۵۲ ۱۴۰۰/۰۸/۱۲
سلام وقت بخیر، شما فقط با curl یکاری کنید که در اینستاگرام کامنت ارسال کنید منتظر جوابتون هستم
حذف شد
به این شماره اس ام اس بدید ممنون
 https://github.com/DeadMerc/Instagram-Spammer-bot/blob/master/bot_old.php#L126
نمونه لینکی که کار نمیکنه دقیقا همین منظور ساخته شده
تست این کد نیاز به اطلاعات حساب واقعی اینستاگرام دارد و احتمال مسدود شدن همیشگی حساب بالا است!، احتمالا تکنیک استفاده شده کد توسط بخش امنیت اینستاگرام شناسایی و رفع باگ شده و دیگر این شیوه قابل استفاده نباشد.
امیرحسین
۰۰:۰۰ ۱۴۰۰/۰۸/۰۹
کاری که من میخوام انجام بدم اینه که یه درخواست فالو با CURL بفرستم یعنی لاگین کنه (به صورت ارسال کوکی سشن) بعد درخواست فالو بدم که کار نمیکنه اگه ممکنه این کدها رو بررسی کنید خطاشو بهم بگید ممنون میشم
حذف شد
این فایلو نگاه بندازید ممنونم
چشم، فقط کد نیاز به بررسی دقیق دارد باید چند روز صبر کنید تا سر فرصت تست و آزمایش و خطا کنیم.
امیرحسین
۲۳:۵۱ ۱۴۰۰/۰۸/۰۸
سلام وقت بخیر استاد گرامی
من یه سوالی داشتم من میخوام یه درخواستی به صفحه ای بزنم که یه قسمتی از کدها رو با جاوا اسکریپت به صورت پویا درج میکنه ELEMENT هاشو ولی درخواستی که من میدم با curl نمیتونه اون قسمتو پیدا کنه مثلا من با curl درخواست میدم به صفحه ای که یک فرمی داره که فرمش با جاوا اسکریپت به صفحه درج میشه، و داخل فرم یه فیلد مخفی وجود داره که داخل فیلد مخفی یه csrftoken وجود داره میخوام مقدار اون فیلد و بخونم ولی هیچی وجود نداره مثلا میخوام یه درخواست به صفحه اینستاگرام بدم
https://www.instagram.com/
و اطلاعات داخل فرمشو بدست بیارم هرچی فیلد داره، تو استک اور فلو هرچی کد وجود داره قدیمیه و کار نمیکنه من فکر میکنم با جاوا اسکریپت یا یه چیزی کدها رو ران میکنه CURL نمیتونه اونو پیدا کنه
mahdi
۱۴:۰۵ ۱۴۰۰/۰۷/۱۳
سلام استاد عزیز، استاد من یه https رو لوکال هاستم نصب کردم بعد فهمیدم که برای ارسال و دریافت از رباط تلگرام حتما باید از چیز شکن استفاده کرد (یکی از نشونه های خنگ بودن منه)، فکر میکردم از اون وبسایت که استفاده میکردم و فیلتر بود باید چیز شکن استفاده میکردم ولی استاد این چیزی که کلا نیاز به چیز شکن داره و در پنل هم من استفاده کردم که پست بصورت خودکار بره به کانال تلگرام ، پس چه فایده داره کلا وقتی حتما باید چیز شکن روشن باشه ، شاید یکی کلا نداشته باشه یا هر چیز دیگه ای اونوقت سایتش هنگ میکنه که
کلا بنظرت استاد عزیز این ایپیآی تلگرامو بندازم دور و از پنل هم که قرارش دادم برای هر پست ، پاکش کنمو وقتمو تلف نکنم براش؟
خیلی ممنون استاد عزیز
قضیه تلگرام کلا برمی گردد به زمانی که بازاراش خوب بود و ما هم به خاطر کسب درآمد در کوتاه مدت گفتیم، الزامی نیست CMS با این امکان ارائه شود! تلگرام هر چقدر قوی در نهایت صرفا یک پیام رسان و مستقل از بحث CMS است، برای بحث مسدود بودن اگر سرور سایت در خارج از کشور باشد می شود راه حل هایی پیاده کرد هرچند با این توصیفات خیلی ضرورتی هم ندارد.
mahdi
۱۷:۴۳ ۱۴۰۰/۰۷/۱۲
سلام استاد عزیز خیلی مخلصیم ، استاد پس من فقط اینو در پنل قرار میدم که توکن رباط و اسم کانال وارد بشه و مطالب زمان ایجاد شدن به صورت خودکار به اون کانال هم بره ، همین کافیه دیگه ؟ جز این نمیفهمم واقعا کاربرد دیگه ای اره یا نه ؟
استاد یه سوال دیگه اینکه ساخت رباط تو عرف یعنی چی ؟ یعنی یه پنل بسازیم که از داخل وب به رباط یه سری چیزا بفرستیم و ... و کنترل از داخل پنل وب سایت باشه ؟
یا مثل اون رباط فروشگاهی که من ساختم همه چیزو بشه از داخل خود رباط کنترل کرد که مثلا ادمین با یه رمز وارد بشه محصول اضافه کنه کم کنه بفروشه و همه چیز اونجا باشه و البته خب هستش داخل وب هستش کدوم درسته؟
و استاد درآمدزایی از ساخت رباط مثلا ساخت چه رباطی ؟ میشه یکی دوتاشو اسم ببرید ببینم مثلا چیا میسازن؟
کلا از چیزایی که هی تغییر میکنن بدم میاد استاد عزیز مثل ای پی آی تلگرام و لاراول و .... هی باید بری ببینی چکار کردن تا بروز باشی ولی آدم خودش سازنده باشه خودش بروز میشه
خیلی ممنون استاد عزیز
ربات را در پاسخ سوالتان که گفته بودید برای درآمدزایی سریع از برنامه نویسی وب چه راه کارهایی وجود دارد به عنوان یک روش کسب درآمد و مهارت جانبی پیشنهاد داده بودیم، ایده ها بستگی به نیاز مشتری و خلاقیت خودتان دارد به فرض یک مقطعی بازار ربات برای تبلیغات انتخاباتی داغ بود! ربات اجرای مسابقه هوش، نظرسنجی و... البته با مسدود شدن تلگرام کمی از تب و تاب این داستان کاسته شده، اما در کل تلگرام پلتفرم جالبی است هرچند فقط باید در حد یک App روی آن حساب کرد و تمرکز اصلی را روی سیستم و سرویس های مستقل شخصی گذاشت.
mahdi
۱۰:۳۸ ۱۴۰۰/۰۷/۱۲
سلام استاد عزیز، استاد اینکه گفتید کار با تلگرامم یاد بگیرم ، الان یه حالتی ایجاد کردم که هر وقت یه پست ارسال میشه ، عکس اون پست به همراه عنوان و یه مقدار از اولای متن پست و لینک سایت و لینک اون مطلب خودکار بره به کانال تلگرام هم اضافه شه ، کلا جز این کار دیگه ای باید کرد برای تلگرام ؟
گفتم یه پنلم بسازم که از داخل وب سایت بشه به تلگرام پست ارسال کرد ولی فکر میکنم خیلی کار بیخودیه و این ارسال خودکار پست به تلگرامم مثلا برا صرفه جویی در وقته (چقدرم که همه وقتشون پره :) ، درسته استاد عزیز ؟
و مثلا برای وبسایت های فروشگاهی باید به اضافه پست های وبلاگ برای محصولات هم این کارو کنم و در یک کانال جداگونه؟
آخه دوتا فیلد قرار دادم که اسم کانال و توکن ربات رو داخل دیتابیس ذخیره میکنه که اگر اون دوتا فیلد خالی باشند این ارسال رخ نمیده ، برای قسمت فروشگاهی دوتا فیلد جداگونه قرار بدم ؟ البته میدونم پیشفرض نباید قرار بدم مگه اینکه یه وبسایت فروشگاهی بزنم و همونجا فیلدها رو اضافه کنم چون ممکنه یه سایتی فروشگاهی نباشه کلا با تلگرام جز این کار دیگه ای باید کرد؟
راستی تو این سایت هم 000webhostapp جدیدا با تلگرام میخوایم ارتباط بگیریم سایت رو تعطیل میکنن مجبور شدم با چندتا ایمیل تستامو کنم
خیلی ممنون استاد عزیز
یادگیری API تلگرام را بیشتر به خاطر بحث امکان ساخت ربات و درآمدزایی از این طریق توصیه کردیم، در واقع هدف این بود که در کنار وبسایت با یک شبکه اجتماعی پرکاربرد نیز آشنا باشید، در کل اینگونه امکانات جزء موارد جانبی محسوب می شوند که می شود به شکل پلاگین به CMS اصلی اضافه کرد نه به عنوان هسته اصلی برنامه، در مورد اینکه چه امکاناتی در نظر بگیرید شیوه ثابتی وجود ندارد همه چیز بستگی به قابلیت هایی دارد که تلگرام در اختیار توسعه دهنده قرار می دهد و از همه مهمتر قابلیت هایی که کاربر CMS از آن انتظار دارد، روش پیاده سازی UI هم سلیقه است و با استعدادی که در شما سراغ داریم نباید در این مورد مشکلی وجود داشته باشد ;)
علی
۰۲:۰۴ ۱۴۰۰/۰۵/۲۶
با سلام و درود
چرا دستوراتی مثل دستور زیر در فایل کرون جاب اجرا نمی شود
wp_set_object_terms(396, 55, 'product_tag' , true);
یا
wp_set_object_terms(83, 100, 'product_cat' , true);
یا هر دستور php
می دونید این دستور ها اگر در فایل های قالب سایت مثلا در index.php یا single-product.php باشد اجرا می شود البته اگر صفحه اصلی سایت یا صفحه محصولی را در بروزر باز کنیم ولی همین کدها در فایل کرون جاب اجرا نمی شود. یه جوری انگار کدها را نمی فهمد
چه باید کرد؟
حل مشکل نیازمند بررسی سورس کدها و آزمایش و خطا است، اما مسئله می تواند به این دلیل باشد که تابع wp_set_object_terms به صورت مستقل در دسترس نیست یا نیاز به اعتبارسنجی نام و سطح کاربری در وردپرس دارد، خطایابی را با درج دستور زیر در ابتدای کدها فعال و با فراخوانی فایل در مرورگر نتیجه را بررسی کنید:
error_reporting(-1);
more لطفا پیش از ارسال دیدگاه نکات زیر را مد نظر داشته باشید:
- به سوالات کلی، زمانبر، مبهم و مشکلاتی که تلاشی برای رفع آنها نکرده باشید پاسخ مختصر داده شده یا به بخش برنامه نویسی اختصاصی ارجاع داده می شوند.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین یا به صورت حساب موقت و آزمایشی قرار دهید تا امکان بررسی دقیق مشکل و خطایابی میسر باشد.
- تمام دیدگاه های ارسالی خوانده شده و برای هر کاربر مدت زمان لازم جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد در بازه زمانی کوتاه خودداری کنید.



 refresh
10 × 10
7 × 9
20 × 20
=