رفتن به مطلب

یک سوال مهم در مورد ajax


پست های پیشنهاد شده

سلام دوستان.

ببینید من یک فرم دارم که فقط دو input داره.یک اینپوت متن و یک اینپوت سابمیت.توی اینپوت متن ، کاربر کد imdb یک فیلم رو میده.بعد فرم من با ajax ارسال میشه.فرض بگیریم مقادیر برای صفحه check.php ارسال بشه.حالا من توی صفحه check.php همچین کدی رو دارم:

<?php
if(isset($_POST["btn"]))
{
echo file_get_contents("http://mydiba.club/".$_POST["link"]."/");

?>

<script src="jquery-3.4.1.js"></script>
<script>
$(document).ready(function(){
	$(".-dl .Block_dl").each(function(){
		var href=$(this).find(".dublboxa:first-of-type").attr("href");
		$.ajax({
			url:"check2.php",
			method:"POST",
			data:"link="+href
		});
	});
});

</script>
<?php }
?>

اگه به کد دقت کنید ، وقتی کاربر کد imdb یک فیلم رو وارد کرد ، در صفحه check کل محتویات اون فیلم که در یکی از سایت های دانلود فیلم هست echo میشه.بعد در این قسمت یک ajax دیگه هم داریم که خودش توی یک صفحه check هست.کار این قطعه کد ajax که در جی کوئری نوشته شده اینه که تمامی لینک های دانلود اون فیلم رو از سایت دانلود فیلم بگیره و ببره به یک صفحه check دیگر که در اینجا اسمش check2.php هست.خودتون میتونید کد رو ببینید.حالا اینکه توی صفحه check2.php چی هست دیگه مهم نیست.خلاصشو بگم : من اینکارو کردم ولی همونطور که فکرشو میکردم انجام نشد:D.شما چه راه حلی برای این کار دارید؟در واقع الان با دو تا ajax تو در تو روبرو هستیم.

یک قسمت از کد من اشکال داره یا در کل غیر استاندارد نوشتم؟اگه میشه یه راه حل بگید که اینکار رو بتونم انجام بدم.دقت کنید که اون قسمت از کد جی کوئری که از متد each استفاده کردم ، برای اینه که به ازای هر لینکی که در صفحه اون فیلم در سایت دانلود وجود دارد ، یک بار این ajax که خودش توی صفحه check یک ajax دیگست رو انجام بده.

خیلییی خیلییی ممنون میشم اگه کمکم کنید.

ضمنا از curl هم نمیخوام استفاده کنم:D

لینک به ارسال
  • 2 هفته بعد...

کدهای jquery در مرورگر اجرا میشن نه در سرور به همین خاطر کد jquery شما در صفحه check2 اجرا نمیشه

شما باید از یک parser html مثل domdocument و xpath یا کتابخانه های جانبی مثل simple_dom_html استفاده کنید تا بتونید لینکها رو از صفحه مورد نظر بگیرین و با استفاده از curl اونها رو به صفحه check2 بفرستین

اگه به دلیلی اصرار دارین از curl استفاده نکنین میتونین از کد زیر استفاده کنین

$postdata = http_build_query(
    array(
        'var1' => 'some content',
        'var2' => 'doh'
    )
);

$opts = array('http' =>
    array(
        'method'  => 'POST',
        'header'  => 'Content-Type: application/x-www-form-urlencoded',
        'content' => $postdata
    )
);

$context  = stream_context_create($opts);

$result = file_get_contents('http://example.com/submit.php', false, $context);

 

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...