فرض کنید که صفحه ای به آدرس زیر داریم :
http://www.kelidestan.com/index.php
و قصد داریم که صفحه، یک آدرس اینترنتی (آدرس URL) را به روش GET دریافت نموده و آنگاه، آن صفحه اینترنتی را به کاربر نمایش بدهد، اما آدرس بالای مرورگر، همین عبارت باشد (یعنی از انتقال به آدرس URL اجتناب کند) :
http://www.kelidestan.com/index.php?link=http://yjc.ir
برای این منظور، کدهای صفحه را به صورت زیر می نویسیم :
<?php
if(isset($_GET['link'])){
$link=$_GET['link'];
?>
<object data="<?php echo $link; ?>" width="100%" height="100%" type="text/html">
</object>
<?php
}
?>
همان طور که مشاهده می کنید، ابتدا با تابع isset چک کرده ایم که آیا متغیری با نام link ، از طریق روش GET ، ارسال شده است یا نه (چک کردن وجود آن در متغیر فوق سراسری $_GET). سپس اگر مقدار متغیر، ارسال شده است، آن را دریافت کرده و در متغیری با نام link ذخیره می کنیم. عنصر object در HTML ، برای نمایش یک صفحه اینترنتی، درون صفحه فعلی، به کار می رود، بنابراین آدرس URL دریافت شده را به عنوان مشخصه data برای عنصر object ، ذکر کرده ایم.
کپی برداری از محتوای سایت کلیدستان، ممنوع بوده و پیگرد قانونی دارد. (تنها استفاده شخصی کاربر، مجاز است) (کپی برداری توسط سایر وب سایت ها = حرام) (بیشتر بدانید)
به اشتراک گذاری (Share) در شبکه های اجتماعی
نظرات 4 4 0
Farhadelyasi
با سلام و خسته نباشید
این مطلب دقیق همون چیزیه که من میخوام
یعنی کاربر با زدن یک دکمه از link1 بره به link2 بدون اینکه آدرس تغییر کنه
اما متوجه نشدم چطور میتونم از این کد استفاده کنم و کجا باید قرار بدم. لطفا راهنمایی کامل کنید یک هفته بیشتر وقت ندارم
خیلی ممنون
admin
سلام.
بر اساس این کلید آموزشی، آدرس URL ، از آدرس زیر :
کد پیاچپی:
http://www.kelidestan.com/index.php
به آدرس زیر تغییر می کند :
کد پیاچپی:
http://www.kelidestan.com/index.php?link=http://yjc.ir
بنابراین آدرس URL تغییر می کند و فقط ما به آن وب سایت دیگر نمی رویم (صفحه آن وب سایت، توسط عنصر object ، در بخشی از صفحه وب سایت ما نمایش داده می شود).
-------------------------------------------------------------------------------
اگر قصد دارید که آدرس URL هیچ تغییری نکند، باید آدرس صفحه آن وب سایت را با استفاده از ساخت یک فرم (Form) و بر اساس روش POST ، به این صفحه خودمان ارسال نماییم (قبلا از روش GET استفاده می شد که باعث می گردید آدرس آن صفحه را در آدرس URL داشته باشیم، اما با روش POST ، دیگر آدرس URL تغییری نمی کند).
بنابراین باید کدهای صفحه
http://www.kelidestan.com/index.php
از وب سایت خود را به صورت زیر بنویسیم (
) :
کد پیاچپی:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
</head>
<
body>
<form method="post" action="#">
<input type="text" name="link" value="http://yjc.ir">
<input type="submit" value="Submit">
</form>
<br /><br />
<?php
if(isset($_POST['link'])){
$link=$_POST['link'];
?>
<object data="<?php echo $link; ?>" width="100%" height="100%" type="text/html">
</object>
<?php
}
?>
</body>
</html>
اگر قصد دارید که از فرم، تنها یک دکمه (Button) نمایش داده شود (تا اصلا کاربر متوجه فرم (Form) بودن آن نشود)، می توانید فیلد (Field) مربوط به آدرس صفحه را پنهان نمایید (
). یعنی کد زیر را :
کد پیاچپی:
<input type="text" name="link" value="http://yjc.ir">
به کد زیر تغییر دهید :
کد پیاچپی:
<input type="hidden" name="link" value="http://yjc.ir">
نکته :
با توجه به اینکه با آدرس URL سر و کار داریم، بد نیست که در مورد تابع urlencode نیز در
بخوانید و در صورت نیاز، آن را به کار ببرید تا برای برخی آدرس های URL ، به مشکل برنخورید (کاری به روش GET استفاده شده در آن کلید آموزشی نداشته باشید و صرفا کاربرد تابع urlencode را بررسی نمایید).
نکته :
امکان تعریف قواعدی برای نمایش آدرس های URL ، توسط کدنویسی در فایل htaccess. از وب سایت، وجود دارد (به عنوان روشی دیگر که البته معمولا برای قواعد کلی به کار می رود).
نکته :
بنده صرفا کدها را در ویرایشگر متن نوشتم و فرصت نکردم آنها را اجرا نمایم، اگر دارای خطا بودند، تذکر دهید تا سایر کاربران نیز مطلع شوند.
Farhadelyasi
کد ها مشکلی ندارند.
اما این کد ها کجا باید قرار بگیرند؟ از سی پنل باید فایل خاصی رو ویرایش کنم؟
admin
سلام.
شما باید یک فایل php (با نام دلخواه) بسازید و کدهای ارائه شده را در آن کپی کنید.
به عنوان مثال، ما نام فایل php را برابر index.php در نظر گرفته بودیم.
توصیه می شود مباحث اولیه مربوط به PHP را بخوانید :
دسته کلید شماره 139