article

ارسال پارامتر به 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 خروجی بگیرید.
sectionدسته بندی: آموزش کاربردی » PHP
related مطالب بیشتر:
» نمایش آمار بازدیدها با PHP بدون استفاده از دیتابیس
» دریافت و نمایش پیج رنک گوگل با PHP
» ساخت فید خوان آر اس اس (RSS Feed Reader) با PHP
» نمایش قسمتی از متن و پاراگراف با PHP
» ساخت منوی هوشمند با PHP و CSS
commentنظرات (۱۲۰ یادداشت برای این مطلب ارسال شده است)
more یادداشت های جدید بر اساس تاریخ ارسال در انتهای یادداشت های موجود نمایش داده می شوند.
نویسنده: aram
۱۵:۱۷ ۱۳۹۲/۰۵/۰۱
خیلی ممنون . لطفا در مورد preg_match توضیح دهید؟
پاسخ: 
تابع preg_match برای بررسی وجود یک عبارت در یک رشته بر اساس یک دستور باقاعده (Regular Expression) به کار می رود، اطلاعات بیشتر:
http://php.net/manual/en/function.preg-match.php
نویسنده: aram
۱۵:۴۰ ۱۳۹۲/۰۵/۰۱
بازم سلام
خیلی ممنون به سوالات من پاسخ دادید
چرا این کد خطا می دهد
if(preg_match( '/<td class="tm" width="120">مثقال طلا </td>
<td align="center" class="Rayka46 u6p1y1nd">(.*)</td>/' , $html , $matches))
{
$new = htmlentities($matches['0']);
$content = $new;
}
else $content="not found";
echo $content;
پیغام خطا
Warning: preg_match() [function.preg-match]: Unknown modifier 't' in C:\wamp\www\gold\2.php on line 19
پاسخ: 
سلام
برای نوشتن دستورات preg_match باید با Regex (زبان عبارات با قاعده) آشنا باشید، Regex شما در کدهای بالا معتبر نیست، نمونه صحیح:
<?php
$content = file_get_contents('http://webgoo.ir');
$footer = preg_match("/<div class=\"footer-txt\"[^>]*>(.*?)<\\/div>/ims", $content, $match);
echo $match[1];
?>
کد فرضی بالا اطلاعات را از صفحه اول سایت ما دریافت کرده و مقادیر متنی خط زیر را استخراج می کند:
<div class="footer-txt">
مقادیری که استخراج می شود
</div>
نویسنده: مهدی
۰۰:۲۴ ۱۳۹۲/۰۵/۲۹
سلام
یه سوال داشتم، می خوام یه مدیریت محتوا درست کنم که یه ادیتور داشته باشه، یعنی توش مطلب بنویسیم و دکمه ارسال رو بزنیم و به سایت ارسال بشه، این رو بلدم، اما می خوام یه گزینه هم داشته باشه به عنوان درج عکس که وقتی میزنیم یه صفحه باز بشه و لینک عکس و از ما بخواد...
اگه میشه کمکم کنید، مرسی :)
پاسخ: 
سلام
ساخت ادیتور با JavaScript یک کار حرفه ای است! یعنی شما باید پیش از این با جاوا اسکریپت کد نویسی کرده و تسلط لازم بر متدها و راه حل های سازگاری با مرورگرهای مختلف را یاد گرفته باشید، برای موردی که گفتید روش خلاصه ای وجود ندارد، باید با window.open پنجره جدید باز کنید و سپس مقادیر را از فیلدهای کاربر گرفته و مجدد با window.opener و innerHTML در ادیتور درج کنید، در عمل به دانستن نکات ریز زیادی احتیاج خواهید داشت که بیشتر آنها را باید در تجربه های قبلی و آموزش های مقدماتی کسب کرده باشید.
نویسنده: hosein
۱۸:۰۷ ۱۳۹۲/۰۶/۰۹
سلام
کدی میخواستم که تمامی مشخصات کاربر که با
$_SERVER
برگردانده می شود ، دریافت کند . نکته بسیار مهم اینه که کاربر اصلا اون فایل رو هم فرض می کنیم اجرا نکنه یا تو فایل هایی که اجرا میشه include نباشه باز هم اطلاعات کاربر که وارد به سایت میشه رو ذخیره کنه ، حالا یا با پی اچ پی یا با اچ تی اکسس
سپاس از سایت خوبتون
پاسخ: 
سلام
سوالتان کلی است!، چنین کدی را به صورت آماده در اختیار نداریم، باید بخشی از کدها را خودتان بنویسید و سوالتان را موردی مطرح کنید تا بتوانیم راهنمایی کنیم.
نویسنده: مرتضی
۱۸:۲۴ ۱۳۹۲/۰۸/۲۰
با سلام و خسته نباشید خدمت استاد گرامی
من یه گالری تصاویر دارم. می خوام تصاویر رو دسته بندی کنم. این تصاویر تو sql ثبت میشن. لازمه بعضی تصاویر تو دو یا چند دسته قرار بگیره و با انتخاب هر دسته تصاویر مربوط به اون دسته نمایش داده بشه.
در صفحه ثبت تصویر در گالری به تعداد دسته ها, چک باکس گذاشتم که دسته ها رو انتخاب می کنم.
سوالم اینه که چجوری می تونم چندتا چک باکس رو تو sql واسه یه عکس ثبت کنم و دسته بندی صورت بگیره ؟
کاری که کردم اینجوریه : اما فقط آخرین چک باکس ثبت میشه.
<input name="category[]" type="checkbox" value="category1" /><span>category 1</span>
<input name="category[]" type="checkbox" value="category2" /><span>category 2</span>
<input name="category[]" type="checkbox" value="category3" /><span>category 3</span>
----------------------------
$img_category = $_POST['category'];
foreach($img_category as $key => $value){
$category = $value;
}
بعد insert کردن category در sql.
با سپاس فراوان
پاسخ: 
سلام
بخش اصلی کار را درست انجام داده اید، اما در هر دور حلقه foreach به متغیر category مقدار داده شده که نهایتا تنها مقادیر دور آخر ست می شود.
در اینگونه موارد معمولا باید خروجی به صورت نمونه زیر باشد:
category 1|category 2|category 3
اگر دقت کنید یک علامت | بین سه گزینه قرار گرفته که این در هنگام فراخوانی و تجزیه به آرایه به عنوان delimiter به کار می آید، برای ایجاد رشته به صورت بالا باید حلقه را به صورت نمونه زیر بنویسید (تست نشده):
<?php
$img_category = $_POST['category'];
$loop = 1;
$count = count($img_category);
$category = NULL;
foreach($img_category as $key => $value){
if($loop < $count){
$category .= $value . '|';
}
else{
$category .= $value;
}
$loop++;
}
?>
برای زمان فراخوانی نیز از توابعی مانند explode استفاده کنید.
نویسنده: مرتضی
۲۱:۰۰ ۱۳۹۲/۰۸/۲۶
با عرض سلام مجدد
خیلی ممنون بابت پاسخ به سوال قبلی. اجرا کردم. درست بود. خیلی زحمت کشیدین.
من نمی دونم چطوری از تابع explode در این زمینه استفاده کنم. :(
تو اینترنت خیلی گشتم.
این فرم رو واسه انتخاب دسته دارم:
<form action="" method="get" name="GForm">
<select name="category" onchange="SubmitForm(this.form)">
<option>category 1</option>
<option>category 2</option>
<option>category 3</option>
</select>
</form>
حالا چطوری همه ی عکس هایی که مثلا مربوط به category 2 هستند رو از sql پیدا کنه و نمایش بده ؟
پاسخ: 
سلام
این کار را باید در هنگام تنظیم پرس و جوی MySQL، با SELECT و قابلیتی مانند LIKE یا علامت = انجام دهید (لطفا به آموزش های مقدماتی مراجعه نمائید).
نویسنده: مرتضی
۲۱:۲۷ ۱۳۹۲/۰۸/۲۷
خیلی سپاس گزارم بزرگوار. جوابتون خیلی کامل بود. مشکلم حل شد و خیلی خوشحال شدم.
اجرتون با آقا امام حسین (ع)
سایتتون واقعا عالیه - انشالله که همیشه موفق و پیروز باشید.
نویسنده: ستار
۱۶:۱۳ ۱۳۹۲/۱۰/۰۷
سلام
حالا اگر خواستیم از کد با کرون جاب استفاده کنیم و سایت هدف از ما یوزر و پسورد خواست باید چکار کنیم؟ چطوری کوکی و سشن ها را ست کنیم؟
پاسخ: 
برای ارسال نام کاربری و کلمه عبور، پارامترهای زیر را اضافه کنید:
curl_setopt($curl, CURLOPT_USERPWD, "$username:$password");
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
برای ارسال کوکی می توانید از نمونه زیر استفاده کنید (بین هر پارامتر کوکی باید یک space باشد):
$str_cookie = 'PHPSESSID='.session_name().'; path=/';
curl_setopt($curl, CURLOPT_COOKIE, $str_cookie );
نویسنده: ستار
۰۸:۵۴ ۱۳۹۲/۱۰/۰۹
سلام و ممنون از راهنمایی شما.
اما از اونجا که من php را در سطح مبتدی بلدم! چند سوال دیگه برام پیش اومد.
من تمام دستورات را در easyphp فعال کردم اما جواب نداد این کدی که فرمودید کوکی ها را به کجا میفرسته؟ به سایت هدف یا به هاستی که ما از کرون جاب ان استفاده می کنیم؟
اگر من کد را در کرون جاب یه هاست قرار بدم ایا با ip اون هاست به سایت هدف متصل میشم؟
اگر کپچا داشته باشه باید چکار کنم؟
با تشکر
پاسخ: 
سلام
اینکه "جواب نداد" نیاز به بررسی های بیشتر دارد، ممکن است اطلاعات ارسال شود، اما مشکل از جای دیگری باشد، کوکی قاعدتا در سمت کاربر (که در اینجا سایت هدف است) باید ایجاد شود، ip نیز همان ip سرور شما است، برای حالت رمز امنیتی قاعدتا کاری نمی توان کرد (مگر اینکه برنامه ای برای دور زدن آن بنویسید که با توجه به عدم تمایل مدیر سایت مربوطه به ارسال پیام های ناخواسته، این کار ممکن است به لحاظ اخلاقی درست نباشد!).
نویسنده: reza
۱۷:۳۴ ۱۳۹۲/۱۰/۱۹
سلام
چرا نمیشه از تابع file_get_contents برای سایت هایی مثل گوگل استفاده کرد. مثلا کد زیر error میده
<?php
$x = file_get_contents('http://google.com/');
echo $x;
?>
آیا راه حلی وجود نداره که بشه برای اینگونه سایت ها استفاده کرد؟
پاسخ: 
سلام
هر چند خطای رخ داده را مشخص نکرده اید، اما سایت گوگل نیاز به فعال بودن اکستنش php_openssl دارد که باید در تنظیمات PHP فعال باشد.
نویسنده: reza
۱۶:۲۵ ۱۳۹۲/۱۰/۲۰
سلام دوست عزیز من اکستنش php_openssl را فعال کردم و بعد از آن از کد زیر استفاده کردم.
<?php
$file = file_get_contents('http://www.google.com/search?q=cats',false);
echo $file;
?>
اما خطا داد و پیغام زیر نمایش داده شد.
403. That’s an error.
Your client does not have permission to get URL /search?q=cats from this server. (Client IP address: 2a01:4f8:200:44a6::2)

Please see Google's Terms of Service posted at http://www.google.com/terms_of_service.html
That’s all we know.
چرا نمی شود از تابع file_get_contents برای url
http://www.google.com/search?q=cats
استفاده کرد ؟
آیا هیچ راه راحلی وجود ندارد؟
پاسخ: 
سلام
کدها را تست کردیم، مشکلی وجود ندارد! به نظر دریافت خطای 403 به استفاده از IP ورژن 6 در هنگام اتصال مربوط می شود (احتمالا به تنظیمات سرور بر می گردد)، این احتمال نیز وجود دارد که IP سرور شما توسط گوگل بلاک شده باشد، به هر صورت این کد در لوکال هاست (حداقل برای ما) به خوبی کار می کند!
نویسنده: reza
۲۱:۱۱ ۱۳۹۲/۱۰/۲۰
سلام دوست عزیز
به نظر می رسد که مشکل من از سرور است و حل شدن آن سخت به نظر می رسد.
برای همین چون کد بالا در لوکال هاست شما به درستی کار می کند. می خواستم بدونم شما هاست خودتون رو از کدام سایت خریداری کردید؟
تا ما هم از همان سایت بخریم.
با تشکر
پاسخ: 
سلام
منظور از لوکال هاست، هاست مجازی است که با برنامه هایی مانند WampServer در سیستم کامپیوتر شخصی قابل ایجاد است!
نویسنده: reza
۱۵:۳۴ ۱۳۹۲/۱۰/۲۱
با سلام
با بخش پشتیبانی هاست خودم تماس گرفتم .
اونا میگن
""" مشکلی در برقراری ارتباط بین سرور میزبان سرویس شما با گوگل وجود ندارد.
درخواست های ارسالی به گوگل، توسط خود گوگل رد می شوند.
این مورد را باید از طریق پشتیبانی گوگل پیگیری کنید و در نهایت اگر نیاز به پیش نیاز هایی روی هاست بود، اطلاع دهید تا بررسی شود. """
آخه مشکل چیست ؟؟
با گوگل که نمیشه به راحتی ارتباط برقرار کرد ؟؟
من باید چکار کنم تا کد زیر در هاست من کار کنه
پاسخ: 
سلام
دوست گرامی، کد شما هم در لوکال و هم در سرور تست شده و به خوبی کار می کند، لذا شکی نیست که ایراد از تنظیماتی در سرور شما است، اما اینکه این تنظیمات چیست و آیا قابل رفع است یا خیر نیاز به بررسی های بیشتر و دسترسی به تنظیمات اصلی دارد که قاعدتا نه برای ما و نه برای شما مقدور نخواهد بود!
صرفا جهت راهنمایی: در صورت ضرورت از سرویس های سایت سرور پارس استفاده کنید.
نویسنده: reza
۱۴:۱۹ ۱۳۹۲/۱۰/۲۲
با سلام
میخواستم راجع به لاگین شدن با تابع curl بدونم. لطفا کمکم کنید چندتا کد دارم ولی کار نمی کنند.
مثلا:
<?php
$ch = curl_init();
$postData = array(
'login' => 'acogneau',
'pwd' => 'secretpassword',
'redirect_to' => 'http://example.com',
'testcookie' => '1'
);

curl_setopt_array($ch, array(
CURLOPT_URL => 'http://example.com/wp-login.php',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $postData,
CURLOPT_FOLLOWLOCATION => true
));

$output = curl_exec($ch);
echo $output;
curl_close($ch);
؟>
لطفا راهنمایی کنید
پاسخ: 
سلام
می توانید از نمونه کد آماده زیر استفاده کنید (تنظیمات را متناسب با سایت خود تغییر دهید - تست نشده).
<?php
function curl_get_wp_login($login_user, $login_pass, $login_url, $visit_url, $http_agent, $cookie_file){
if(!function_exists( 'curl_init' ) || !function_exists('curl_exec')){
$m = "cUrl is not vailable in you PHP server.";
echo $m;
}
//Preparing postdata for wordpress login
$data = "log=". $login_user ."&pwd=" . $login_pass . "&wp-submit=Log%20In&redirect_to=" . $visit_url;
//Intialize cURL
$ch = curl_init();
//Url to use
curl_setopt($ch, CURLOPT_URL, $login_url);
//Set the cookies for the login in a cookie file.
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
//Set SSL to false
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
//User agent
curl_setopt($ch, CURLOPT_USERAGENT, $http_agent);
//Maximum time cURL will wait for get response. in seconds
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1 );
//Return or echo the execution
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//Set Http referer.
curl_setopt($ch, CURLOPT_REFERER, $login_url);
//Post fields to the login url
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_POST, 1);
//Save the return in a variable
$content = curl_exec($ch);

/*
** if you need to visit another url, you can do it here.
** curl_setopt( $ch, CURLOPT_URL, 'a new url address or a file download url' );
** $content = curl_exec ($ch);
*/

//Close the cURL.
curl_close($ch);

//You can echo or return the page data here.
echo $content;
}

//Username for login
$login_user = "admin";
//Password
$login_pass = "admin";
//Login url address.
$login_url = "http://localhost/wp/wp30/wp-login.php";
//Which page you want to visit after login.
$visit_url = urlencode( 'http://localhost/wp/wp30/wp-admin' );
//Cookie vaiable
$cookie_file = "/cookie.txt";
//Set HTTP user agent.
$http_agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6";

//Test the call
curl_get_wp_login( $login_user, $login_pass, $login_url, $visit_url, $http_agent, $cookie_file );
?>
نویسنده: reza
۱۷:۵۱ ۱۳۹۲/۱۰/۲۳
با سلام
من از کد زیر استفاده کردم
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
ولی خطای زیر را میدهد
CURLOPT_FOLLOWLOCATION cannot be activated when safe_mode is enabled or an open_basedir is set in
با بخش پشتیبانی تماس گرفتم اونا میگن غیر فعال کردن safe-mode به دلایل امنیتی وجود نداره .
آیا کدی جایگزین و شبیه کد بالا وجود نداره؟؟
مرسی
پاسخ: 
سلام
تجربه نشان می دهد هاستی که safe-mode آن قابل خاموش شدن نباشد، کاربران را به زحمت خواهد انداخت!، بیشتر هاست ها این امکان را فراهم می کنند تا کاربران قابلیت safe-mode را خاموش کنند؛ کد جایگزینی در اختیار نداریم.
more لطفا پیش از ارسال یادداشت نکات زیر را مد نظر داشته باشید:
- موارد غیرمرتبط با مباحث آموزش ها را در فرم منوی "تماس با ما" مطرح و پاسخ را از طریق ایمیل دریافت کنید.
- به سوالات کلی، مبهم و مشکلاتی که تلاشی برای رفع آن نکرده باشید پاسخ مختصر داده خواهد شد.
- کدها و اسکریپت های طولانی را ترجیحا در یک صفحه وب آنلاین قرار دهید تا امکان تست و بررسی وجود داشته باشد.
- از درج عناوین تبلیغاتی در فیلدها خودداری کنید، در صورتی که یادداشت تبلیغاتی تشخیص داده شود حذف خواهد شد.
- تمام یادداشت ها بررسی و زمانی جهت پاسخگویی در نظر گرفته می شود، لطفا از طرح سوالات متعدد خودداری کنید.





5 × 3
 refresh

آخرین دیدگاه ها
more برای دسترسی سریع به یادداشت مربوطه می توانید از لینک مطلب در کادر زیر استفاده کنید.
form عبدالمالت ریالی
در:
سلام علیک میشه از چند فونت در یک صفحه html استفاده کرد.؟
۱۳۹۹/۰۸/۰۱

form مبینا
در:
سلام من برنامه ای میخواستم که داخل ارایه 5 رنگ قرار گرفته باشه. و با استفاده از حلقه for این یک متنو به اون پنج...
۱۳۹۹/۰۸/۰۱

form mohadeseh
در:
ممنون از راهنماییتون مشکلم حل شد
۱۳۹۹/۰۷/۲۸

form محمد
در:
سلام. یک کد نوشته ام بدین صورت: وقتی صفحه باز شده یک پنجره پیام خالی با یک ok باز شده هر چه ok را...
۱۳۹۹/۰۷/۲۸

form فایز پور جهانبخشی
در:
سلام اگر بخواهیم برنامه ای که داخل متلب نوشتیم تا یک ثانیه اجرا شود و بعد از ثانیه اول در حالت خطا که...
۱۳۹۹/۰۷/۲۸

form mohadeseh
در:
الان کد من که توی تگ <head> گزاشتم میخواستم بدونم ایا امکانش هست که توی تگ link که ایکون رو باهاش اوردم بتونم...
۱۳۹۹/۰۷/۲۷

form mohadeseh
در:
سلام ببخشید لطفا راهنمایی کنید که چجوری title برای favicon در html بزارم؟ جوری که وقتی موس روی icon قرار بگیره متن...
۱۳۹۹/۰۷/۲۷

form ryomaechizen
در:
سلام. اگه حافظه وب پر بشه و مجبورا عکسا کپی باشن چطور باید مشکل بارگزاریشون حل بشه؟
۱۳۹۹/۰۷/۲۶

form رونا
در:
پرونده فرستاده شده نمی‌تواند به wp-content/uploads/2020/10 برود. سلام این ارور برای چی رخ می ده
۱۳۹۹/۰۷/۲۵

form reza
در:
سلام خوبید انشاالله؟ خواستم بدونم این نوار ابزار رو چطور باید اونایی رو دوست دارم بزارم سمت راست وبلاگم. هر چی کد و ......
۱۳۹۹/۰۷/۲۴

form سینا
در:
چگونه میتوانیم با استفاده از HTML فرمول شیمیایی مواد را بنویسیم؟ با عدد اتمی، جرمی و بار اتمی
۱۳۹۹/۰۷/۲۱

form فاطمه
در:
سلام ممنونم... خیلی ساده و روون توضیح دادین.. اونقدر که تشویق شدم محتوای یه فایل تکس رو با ایجکس درون یه div بیارم ولی...
۱۳۹۹/۰۷/۲۱

form امیرحسین
در:
خب متوجه شدم. که باید خط اول عدد فانکشن رو تغییر بدم. بسته به تعداد آرایه یا هر عدد دیگه تغییر بدم جوابمو...
۱۳۹۹/۰۷/۲۱

form امیرحسین
در:
عالی بود. خیلی ممنونم. ولی هر چند کلمه داخل آرایه داشته باشم به همون میزان خروجی گرفته میشه. من اگه 10 کلمه در آرایه داشته...
۱۳۹۹/۰۷/۲۱

form سعادتی
در:
سلام کاش روش برطرف کردن این بهم ریختگی رو هم توضیح میدادید. ممنون
۱۳۹۹/۰۷/۲۰
form امیرحسین
در:
موفق شدم اینو پیدا کنم. ولی میخوام کلمات تکراری داخلشون نباشه. مثال AAA فقط یک بار در اون خط وجود داشته باشه.
۱۳۹۹/۰۷/۲۰
form امیرحسین
در:
سلام. نه محدودیت زمانی وجود نداره.
۱۳۹۹/۰۷/۲۰
form امیرحسین
در:
سلام خسته نباشید. میخوام از این تابع برای بدست آوردن لیست های متفاوت استفاده کنم. مثلا یه آرایه داشته باشم. امیدوارم کمکم...
۱۳۹۹/۰۷/۲۰
form ابوالفضل
در:
سلام وقتتون بخیر من میخوام یه افزونه برای مرورگر کروم طراحی کنم و میخوام یه متنی رو هر سری از سایت دریافت کنه و...
۱۳۹۹/۰۷/۲۰
form mahdi
در:
سلام چطور می تونم از ip خارجی استفاده کنم؟ برای دریافت لانچر میخام. مرسی
۱۳۹۹/۰۷/۱۹
form احسان عباسی
در:
با سلام و تشکر از سایت خوبتون من یه کد تعریف کردم که در بورس ایران سهم مدنظرمو بیاره .. میخواستم ببینم امکانش هست دستوری...
۱۳۹۹/۰۷/۱۷
form شبنم
در:
سلام وقتتون بخیر، ببخشید از کلمه event یا e دقیقا چه زمانی توی فانکشن استفاده میکنیم؟
۱۳۹۹/۰۷/۱۷
form احمد
در:
با عرض سلام مجدد ساختار کلی دستورم به این صورت هست. بعد از حلقه وایل اون دیو کلاس 1 و 2 و 3 میخواهم...
۱۳۹۹/۰۷/۱۶
form احمد
در:
با عرض سلام ببخشید چطوری میتونم یه قسمت از تگ ها رو داخل حلقه وایل رد کنم دوباره تگ های بعدی داخل حلقه قرار بگیرن...
۱۳۹۹/۰۷/۱۶
form ابوالفضل
در:
سلام واقعا من خیلی گشتم تا بتونم این آموزش رو پیدا کنم چون واقعا نمی دونستم چی بنویسم تا یک رتبه بندی برای نتایج جستجو...
۱۳۹۹/۰۷/۱۵
form mahtab
در:
سلام وقتتون بخیر ببخشید میشه بفرمایید چجوری کلیپ رو بزاریم وبلاگ ؟؟ بی زحمت کامل بفرمایین ممنون و متشکر
۱۳۹۹/۰۷/۱۴
form Saeid Azari
در:
سلام ببخشید اگه امکانش هست سوال منو جواب بدید یکم گیج شدم...من یک کد html دارم که باید یک سایت درست کنم و ان را...
۱۳۹۹/۰۷/۱۳
form ابوالفضل
در:
سلام یک سوال دارم چجوری یک متنی که درون تگ td هست و بعد تگ br هست (تگ br درون تگ td است) رو...
۱۳۹۹/۰۷/۱۳
form parnian
در:
با سلام با توجه به این که این مطلب در سال 91 نوشته شده ایا تغیری هم کرده؟ مثلا استفاده و مهم بودن تگ های...
۱۳۹۹/۰۷/۱۳
form fahimeh
در:
سلام من دارم پروژه واسه دانشگاه مینویسم طراحی سایتو کردم برای کار با پایگاه داده دستور insert و delete کار میکنه ولی...
۱۳۹۹/۰۷/۱۲
form امین
در:
با عرض سلام ببخشید یه فرم دارم اخر فرمم یه دکمه دارم میخواستم بدونم چطوری باید بعد از کلیک کردن دکمه به صفحه دیگه انتقال...
۱۳۹۹/۰۷/۱۱
form محسن
در:
سلام من از فرم ساز گرویتی استفاده میکنم آیا امکان استفاده همچین چیزی رو میتونم داخلش داشته باشم آیا کدی داره که در قسمت...
۱۳۹۹/۰۷/۱۱
form مالکی
در:
چرا وبلاگم بالا نمی یاد
۱۳۹۹/۰۷/۰۹
form احمد
در:
با عرض سلام مجدد و خسته نباشید ببخشید نمونه کد رو اگر امکانش هست نگاه کنید که چطوری این متغییری رو که بدست اوردم در...
۱۳۹۹/۰۷/۰۹
form الناز
در:
سلام وقتتون بخیر. چطور میشه برنامه ای رو در php نوشت که کدملی رو تبدیل به شماره دانشجویی کنه اگه برام بنویسید ممنون میشم.
۱۳۹۹/۰۷/۰۹
form محمد
در:
سلام من میخواستم بدونم چه طوری میشه بدون اینکه از کاربر بپرسی که میخواهد از حساب خروج پیدا کند خود سایت بفهمد که کاربر از...
۱۳۹۹/۰۷/۰۹
form احمد
در:
با سلام ببخشید چطوری باید در جکوری از یک متغییر در صفحات دیگه استفاده کنم مثال دو عدد را باهم جمع کردم و ریختم داخل...
۱۳۹۹/۰۷/۰۹
form مهسا
در:
سلام و خسته نباشید مشکلی برای وبلاگ من پیش اومده موقع ورود بهم پیام میده وبلاگ داره بروز رسانی میشه و بعدا وارد وبلاگ شوید...
۱۳۹۹/۰۷/۰۸
form Moshtagh
در:
سلام و خسته نباشید بنده چند روزه که وقتی اطلاعات ورود به وبلاگم رو وارد تیترها و کلیک میکنم با چنین پاسخی مواجه میشم...
۱۳۹۹/۰۷/۰۸
form mahtab
در:
سلام خسته نباشین ببخشید چرا بلاگفا باز نمیکنه ؟؟؟ میرم مدیریت وبلاگ نه تو بروز شده ها وبی هستم نه هم که...
۱۳۹۹/۰۷/۰۷
form جواد
در:
سلام و عرض ادب. سایت من هک شده و یک کد ریدایرکت تو دیتابیس هاستم بارگزاری شده که آخر همه پست ها تو...
۱۳۹۹/۰۷/۰۷
  در انتظار بررسی: ۰
 پاسخگویی به سوالات ممکن است تا 24 ساعت زمان ببرد.