PDA

View Full Version : اسکریپت php



alimooghashang
شنبه 02 خرداد 1388, 20:51 عصر
سلام
چطوری میشه یه فایل php را در یک صفحه Html لود کرد
مثل فایل های جاوا اسکریپت
مثلا اینطوری میشه؟
چطوری باید این کار رو بکنم

<script src="http://mysite.com/index.php" type="text/javascript"></script>

rasoolgh1
شنبه 02 خرداد 1388, 21:11 عصر
شرمنده منظورتون رو نفهمیدم.:ناراحت:

alimooghashang
شنبه 02 خرداد 1388, 21:21 عصر
اینجا را بیبنید
میخوام یه همچین کاری بکنم
این چطوری این کار رو کرده؟
یعنی منم همین کار را میکنم اما کار نمیده
http://www.phpjunkyard.com/rantex/readme.htm

alimooghashang
شنبه 02 خرداد 1388, 21:54 عصر
من یه صفحه دارم
که توش یه echo نوشتم
میخوام از این صفحه استفاده کنم
و این اکو را مثل کد های جاوا فراخوانی کنم
چطوری این کار رو بکنم
مرسی

alvanweb
یک شنبه 03 خرداد 1388, 00:51 صبح
کافیه نوع خروجی رو با header به جاوا اسکریپت تبدیل کنید:

header('content-type: application/x-javascript');

alimooghashang
یک شنبه 03 خرداد 1388, 01:44 صبح
مرسی
این کار را هم کردم جواب نمیده
ولی کد های جاوا را بخروجی میده
ولی اجرا نمیکنه
<script type="text/javascript" src="index.php"></script> با این کد هم اجرا کردم
مرسی

alvanweb
یک شنبه 03 خرداد 1388, 10:37 صبح
من تصورم این بود باقی کار رو یاد دارید. فرض کنید یه فایل به نام test.php به صورت زیر داریم که قراره خروجیش به صورت js باشه:

<?
header('content-type: application/x-javascript');
$serverIP = $_SERVER['REMOTE_ADDR'];
echo "document.write(\"Your IP address is: <b>" . $serverIP . "</b>\")";
?>کد بالا آدرس آی پی رو بر می‌گردونه. حالا قصد داریم این کد رو به یه فایل html‌ الحاق کنیم، دقیقا همانطور که گفتید عمل میکنیم:

<html>
<head>
<title>Test</title>
</head>
<body>
<script type="text/javascript" src="test.php">
</script>
</body>
</html>امیدوارم متوجه شده باشید اشکال کار شما از کجا بوده! بله در استفاده از document.write در فایل اولی که قراره خروجی js بده! چرا که وقتی متن خالی برگشت بشه بصورت script تفسیر نمیشه.

alimooghashang
یک شنبه 03 خرداد 1388, 13:49 عصر
مرسی

یعنی همراه با متنی که write میشه متغیر باید write کرد؟

منظورتون همینه؟ چون تنها چیزی که نسبت به من اضافه تر دارین همین متغیره
بقیه اش مثل همینه
مرسی

alvanweb
یک شنبه 03 خرداد 1388, 17:30 عصر
فکر می‌کنم راجه به document.write باید بیشتر توضیح بدم
document.write یه متد مشتق شده از document در جاوا اسکریپت هست که استفاده ازش تقریباً دمده و منسوخ شده و در عوض استفاده از رویکردهای جایگزین (http://www.sitepoint.com/blogs/2007/07/11/insert-in-place-without-documentwrite/) پیشنهاد می‌شه.

این متد پارامتر(ها) رو به عنوان ورودی می‌گیره و در خروجی چاپ می‌کنه. این پارامتر میتونه تگ‌های HTML هم داشته باشه یا یه رشته ساده باشه.

در واقع وقتی ما با استفاده از تگ <script> یه فایل جاوا اسکریپت رو به صفحه الحاق می‌کنیم دو حالت داریم یا این تگ قبل از تگ body و در داخل head قرار داره که فقط قصد داریم توابعی که در فایل الحاقی نوشتیم رو فراخوانی و ازشون استفاده کنیم یا اینکه این تگ در داخل body قرار داره که در اینجا قصد داریم خروجی نمایش بدیم.

حالا اگر در حالت دوم فایلی که میخواد خروجی بده فقط محتوی یه متن خام باشه در داخل تگ script این متن برای داکیومنت تفسیر نمیشه. ما با متد document.write اون متن یا هر چیز دیگری رو که قراره به عنوان خروجی باشه قابل نمایش در این تگ می‌کنیم.

فرضا یه فایل js دارید که فقط محتوی یه متن هست Hello World اگر بیاد در یه تگ body یه فایل html اونو فراخوانی کنید هیچی نمی‌بینید! راه حل اینه که در فایل js بنویسید:

document.write(' Hello World);

این قضیه تا این جا هیچ ربطی به php‌ نداشت. حالا ما می‌خواهیم اون فایل با پسوند js رو بکنیم php چرا که می‌خواهیم محتوای پویا باهاش بسازیم. پس باید خروجی که پس از کامپایل بهمون داده میشه سرآیندی نظیر فایل جاوااسکریپت داشته باشه اینجاست که با header این سرآیند رو می‌سازیم چون پسوندش رو عوض کردیم و دیگه بصورت فایل js قابل تشخیص نیست.

فکر می‌کنم بیش از این نیازی به باز کردن این قضیه نباشه.

alimooghashang
یک شنبه 03 خرداد 1388, 17:40 عصر
مرسی
ولی میشه اینا بگین
ایا write محدودیت کاراکتر داره؟
یعنی ماکسیموم براش تعریف شده؟
چون write من خیلی طولانیه

alimooghashang
یک شنبه 03 خرداد 1388, 17:42 عصر
میشه بگین اینا را چطوری write کنم

ali's book
ali"s book

مرسی

alimooghashang
یک شنبه 03 خرداد 1388, 19:02 عصر
مرسی آقا
درست شد
فقط یه مشکلیه
فایل code.php که خروجی js داره را نمیشه مخفی کرد
کسی نبینه که کد هاش چیه؟
یعنی فقط اجرا بشه از طریق اسکریپت
مرسی

alimooghashang
جمعه 08 خرداد 1388, 21:05 عصر
نمیشه کاریش کرد که فقط اجرا بشه؟
کسی نتونه خروجیش را ببینه؟
مثلا کسی که این ادرس را میزنه


www.mysite.com/1.php

نتونه ببینه چیه کدش
ولی اگه با اسکریپت استفاده کرد اجرا بشه

sama01
جمعه 08 خرداد 1388, 21:29 عصر
مشکل شما هیچ ارتباطی با php نداره.
از دید کاربر، شما فقط اسم فایل مثلا script.js را به script.php تغییر داده‌اید. و این یعنی صفحه‌ی شما هیچ فرقی با جاوااسکریپت معمولی نداره.
قبلا زیاد بحث شده. از آن‌جا که Js زبان سمت کاربر است، باید در سمت کاربر در دسترس باشد. همان‌طور که شما نمی‌توانید کدهای html را پنهان کنید، کدهای js نیز غیر قابل پنهان‌سازی هستند.

تکرار می‌کنم مشکل شما ربطی به php‌ نداره.

alimooghashang
جمعه 08 خرداد 1388, 21:34 عصر
خوب پس چطوری یه سری از این اسکریپت ها که مثل من با php خروجی دادن به جاوا
چطوری پنهانن

narsic
جمعه 08 خرداد 1388, 22:52 عصر
با سلام
لینک بدید تا بررسی بشه .
با سلام

sama01
جمعه 08 خرداد 1388, 22:55 عصر
خوب پس چطوری یه سری از این اسکریپت ها که مثل من با php خروجی دادن به جاوا
چطوری پنهانن
لطف می‌کنید مثال بزنید؟

aysan_gh
شنبه 09 خرداد 1388, 15:25 عصر
سلام

من می خوام ماشین حساب رو با java تو phpبنویسم و طراحیش هم html هست
لطفا کمک کنید چطوری این کار رو بکنم(پروژه ی phpمونه).

aysan_gh
شنبه 09 خرداد 1388, 15:28 عصر
کمک فوری
لطفا کمکم کنید

alimooghashang
چهارشنبه 13 خرداد 1388, 20:46 عصر
لطف می‌کنید مثال بزنید؟
http://www.oxinads.com/showbanneri.php

اینم مثال

sama01
پنج شنبه 14 خرداد 1388, 04:57 صبح
از صفحه در چه صفحه‌ای فراخوانی می‌شه؟ آدرس آن صفحه را هم بگذارید.

alimooghashang
پنج شنبه 14 خرداد 1388, 12:01 عصر
از هر صفحه ای که دلتون بخواد، فراخوانی میشه

میخوام بدونم این چطوری نوشته که کدش را نشون نمیده ولی خروجیش جاواست؟
اصلا خروجیش جاواست؟
اگه جاوا نیست چطوری با <script> اجرا میشه

sama01
پنج شنبه 14 خرداد 1388, 16:43 عصر
دوست عزیز.
ممکنه این صفحه طوری طراحی شده که اگر شما آدرس آن را مستقیم وارد کنید، چیزی نمایش ندهد.
شما صفحه‌ای را که از این صفحه استفاده می‌کند را نام ببرید. این صفحه را در سیستم خود ذخیره کنید. شک نداشته باشید که کدهای آن در سیستم‌تان ذخیره می‌شود.
این تکنیک دلایل خاصی دارد که مهم‌ترین آن، صرفه جویی در پهنای باند است.
من در یک سایت گالری عکس، ترتیبی دادم که عکس‌ها فقط در صفحات خود سایت نمایش یابند و کسی نتواند آن‌ها را در سایت‌های دیگر نمایش دهد. همچنین نتواند.
احتمال خیلی خیلی خیلی زیاد، این صفحه‌ی مورد نظر شما هم همین‌طور است.

وقتی از شما می‌خواهیم که صفحه را معرفی کنید، لطفا با سوالات بی‌جا بحث را کش ندهید. حتما دلیلی دارد که چنین درخواستی از شما کردیم.

alimooghashang
پنج شنبه 14 خرداد 1388, 18:18 عصر
ببینید صفحه خاصی نیست
این کد را ببینید


<script type="text/javascript" src="http://www.oxinads.com/showbanneri.php?a=MQ==&bs=Nw==&s=NDY4eDYw&c=5f615f&u=5614&row=1&col=1"></script>


روی frontpage استفاده میکنم کار نمیده
یعنی خروجی نمیده
میخواستم بدونم چطوری جلوی این کار رو گرفتن

ولی روی هاستی که من امتحان کردم نشون میده

http://web-kadeh.freehostia.com/

مرسی

sama01
جمعه 15 خرداد 1388, 14:05 عصر
مسلما همان چیزی است که گفتم.
قبل از اینکه بخواهد خروجی دهد، درخواست دهنده را چک می کند (می‌تواند با ip این کار را بکند یا با دامنه‌ای که این درخواست را فرستاده.) اگر معتبر بود، کد‌ها را نمایش می‌دهد و در غیر این‌صورت چیزی نمایش نمی‌دهد.
این‌که معتبر است یا خیر، بستگی به هدف داره. و این‌که چه چیزی معتبر باشه هم بستگی به هدف داره.

alimooghashang
جمعه 15 خرداد 1388, 17:56 عصر
با ip چطوری این کار را میکنه؟
یعنی از کجا میشه فهمید که این آدرس مستقیم وارد شده یا از صفحه ای درخواست شده
استفاده از referer را میدونم
اما تو این مورد زیاد جالب نیست
روش قوی تری میخوام

sama01
جمعه 15 خرداد 1388, 19:20 عصر
روشی که من هم انجام می‌دم، استفاده از referer هست.
مشکلش چیه؟

alimooghashang
جمعه 15 خرداد 1388, 19:27 عصر
ببینید
مثلا شما اون کد را در این صفحه فراخوانی کردید

http://web-kadeh.freehostia.com

وقتی که وارد این صفحه شدید بعنوان referer میشناسه و درست هم هست
و نشون میده

ولی اگه آدرس کد جاوا را در همین صفحه بردارید و داخل ادرس بار بنویسید بعنوان رفرر حسابتون میکنه و کد را اجرا میکنه که نباید اینطوری باشه

غیر از اینه؟
حالا، این کدی که من دادم بتون ما سایت prepay هست
ببینید


<script type="text/javascript" src="http://prepay.ir/prepyin/callimgscript.php?size=Vkd0U1drNUZkSEZYV0dNOQ==&uid=VkZaU2JrMXJPVUpRVkRBOQ=="></script>

این کد چطوری نمیزاره کدش را ببینیم؟ وقتی که به این آدرس میریم؟

http://prepay.ir/prepyin/callimgscript.php?size=Vkd0U1drNUZkSEZYV0dNOQ==&uid=VkZaU2JrMXJPVUpRVkRBOQ==

as13851365
شنبه 16 خرداد 1388, 15:45 عصر
فکر کنم با استفاده از کد ['SERVER['SERVER_NAME_$ بررسی می کنه اگر شما مستقیما از طریق آدرس بار وارد شوید هیچی چاپ و یا نمایش نمی ده در غیره این صورت خروجی رو نشون می ده.


ولی من منظور شما رو از این کد چطوری نمیزاره کدش را ببینیم؟ وقتی که به این آدرس میریم؟ نفهمیدم می شه بگید شما می خواهید کد چی رو ببینید.

alimooghashang
شنبه 16 خرداد 1388, 16:49 عصر
مرسی
میشه بگین چطوری چک کنم؟
یعنی میگین اینطوری بنویسم دیگه کار نمیکنه؟



<?php
if ( strcmp( $_SERVER['SERVER_NAME'] , "www.mydomain.com" )==0 )
{
do something;
}
else
{
die ("error in use");
}
?>

as13851365
شنبه 16 خرداد 1388, 20:08 عصر
شرط مربوطه اشتباه است

شما اول باید مقداری رو که برای جستجو می خواهید ازش استفاده کنید رو به دست بیارید که برای این کار می تونید از کد زیر استفاده کنید :


echo $_SERVER['SERVER_NAME'];

حالا مقداری رو که برای شرط لازم دارید رو به دست آوردید و در کد زیر جایگزین می کنید :


if(strtoupper($_SERVER['SERVER_NAME'])==strtoupper('localhost'))
{
}
else
{
}


دقت کنید که در این جا من از نام localhost استفاده کردم شما باید نامی رو که قبلا گفتم با دستور
echo $_SERVER['SERVER_NAME'];به دست بیارید رو جایگزین کنید

alimooghashang
شنبه 16 خرداد 1388, 20:29 عصر
ببخشید خنگ بازی در میارما
اما گه بجای localhost اینو بزارم که شرط درست میشه و همیشه این کارو میکنه!!!

echo $_SERVER['SERVER_NAME'];

میشه واضح کد را بدین، من نمیفهمم، خنگم شرمنده

sama01
شنبه 16 خرداد 1388, 21:28 عصر
دل‌انگیز؛ نگفت اون کد رو بنویس. گفت مقداری رو که قبلا با استفاده از اون به‌دست آوردی رو بنویس. مثلا یه چیزی مثل name.com می‌شه.

alimooghashang
شنبه 16 خرداد 1388, 21:33 عصر
خوب عزیزم
این $_SERVER['SERVER_NAME']; که قبل از if عوض نمیشه که شرط اشتباه بشه
همیشه درست میشه

sama01
یک شنبه 17 خرداد 1388, 02:29 صبح
جدی جدی گرفتی ما رو؟
عزیز. خوب متنی که برای شما نوشتند رو بخون.
گفته اول توی یک صفحه بنویس:

echo $_SERVER['SERVER_NAME'];
تا متوجه بشی که مقدارش برای سایتت چیه. مثلا می‌شه felan.com
بعد مقدار اون رو (یعنی felan.com) رو در شرط وارد کن.

ok

alimooghashang
یک شنبه 17 خرداد 1388, 02:54 صبح
خوب همینا میگم
این همیشه یه مقدار ثابتیه
چه مستقیم فراخوانی بشه ، چه غیر مستقیم
همیشه دامین منا felan.com برمیگردونه
خوب این که همیشه نشون داده میشه

sama01
یک شنبه 17 خرداد 1388, 17:45 عصر
بله.
این کدی که دوستمون نوشته بودند، یه اشتباه کوچک داره.

if(strtoupper($_SERVER['HTTP_REFERER'])==strtoupper('localhost'))
{
//valid
}
else
{
//not valid
}
یعنی شما با HTTP_REFERER باید کار کنید نه با SERVER_NAME. SERVER_NAME برای به دست آوردن دامنه‌ی خودمان است.

alimooghashang
یک شنبه 17 خرداد 1388, 21:56 عصر
مرسی
ولی منم با referer تست میکردم و جواب میداد

فقط یه مشکل کوچیک داره!
اونم این که ، اگر شما با بروزر اون صفجه ای که فراخوانی شده را باز کنید
مثلا :

www.mydomai.com
بعد کد را نشون میده درست
ولی اگر ادرس کد را دقیقا در همین بروزر توی ادرس بار اضافه کنید، کد را اجرا میکنه و دسترسی بهش میده

و من میخوام اگه این حالت هم پیش اومد، کد را نشون نده
درست مثل کد این prepay که دادم
ولی کد oxinad همین مشکل منو داره، یعنی با referer کار کرده

یه سوال
ایا میشه فهمید چطوری کد رفر شده؟؟

sama01
دوشنبه 18 خرداد 1388, 02:06 صبح
شما این referer رو کجا استفاده می‌کنید؟ باید در خود صفحه‌ی کد این‌کار را بکنید.
یعنی وقتی این کد درخواست شد، تنها در صورتی که درخواست دهنده، سایت خودتان باشد باید کدها نمایش یابد.

ولی در کل برای امنیت قابل استفاده نیست. اساسا هیچ روشی برای امنیت کد‌های جاوااسکریپت وجود نداره. در به‌ترین حالت، باز هم کاربر با ذخیره صفحه به آن دسترسی خواهد داشت.

alimooghashang
دوشنبه 18 خرداد 1388, 02:27 صبح
بله در صفحه ای که کد جاواست

روش دیگه ای وجود نداره مثل همین کد جاوا بشه این کد ها را اجرا کرد توسط تگ script ؟

اخه میخوام یه سری سرویس ها رو به کاربرا به این صورت بدم
مثل تبلیغ بنر سایت

arlabbafi
سه شنبه 19 خرداد 1388, 10:52 صبح
سلام
چطوری میشه یه فایل php را در یک صفحه Html لود کرد
مثل فایل های جاوا اسکریپت
مثلا اینطوری میشه؟
چطوری باید این کار رو بکنم

<script src=&quot;http://mysite.com/index.php&quot; type=&quot;text/javascript&quot;></script>

اين چيزي كه شما ميخواي غير ممكنه كه در يك صفحه html بياي از كد هاي php استفاده كني جاوا اسكريپت كه ميشه به خاطر اينه كه زباني سمت كاربر هست براي اين كار چرا حالا ميخواي توي html كار كني اون سايتي هم كه لينك دادي صفحش php بوده و توي اون اومده include كرده.

alimooghashang
دوشنبه 25 خرداد 1388, 07:16 صبح
اين چيزي كه شما ميخواي غير ممكنه كه در يك صفحه html بياي از كد هاي php استفاده كني جاوا اسكريپت كه ميشه به خاطر اينه كه زباني سمت كاربر هست براي اين كار چرا حالا ميخواي توي html كار كني اون سايتي هم كه لينك دادي صفحش php بوده و توي اون اومده include كرده.
میشه بیشتر توضیح بدین چطوری include کرده؟؟