PDA

View Full Version : سوال: چطوری می تونم مانند WebGozar کد درست کنم که با قرار دادن آن در صفحه اطلاعات نمایش داده بشه



as13851365
یک شنبه 27 بهمن 1387, 07:12 صبح
به کد زیر نگاه کنید :



<!-- Begin WebGozar.com Counter code -->
<script language="javascript" src="http://www.webgozar.ir/c.aspx?Code=729748&amp;t=counter"></script>

<noscript><a href="http://www.webgozar.com/counter/stats.aspx?code=729748">آمار</a></noscript>
<!-- End WebGozar.com Counter code -->


حالا من چطوری می تونم مانند این کد درست کنم که اطلاعات بانک من رو نمایش بده البته تو قسمت خروجی مشکل دارم

قبلا یک آموزشی در این باره دیده بودم ولی هر چی گشتم نتونستم پیداش کنم ( هر چند ذخیره اش هم کرده بودم ولی حالا پیداش نمی کنم ) می شه در این مورد کمکم کنید

smhnaji
یک شنبه 27 بهمن 1387, 09:51 صبح
روش این کار به این صورته که من باید یه صفحه درست کنم. بعد بقیه بیان صفحه ای رو که من درست کردم، تو سایتشون نمایش بدن.

اگه تو همین کد نگا کنی می بینی که وب گذر، صفحه ی c.aspx رو در اختیار کاربراش قرار میده:

c.aspx?Code=729748&amp;t=counter


اما از اونجایی که میخواد برای هر سایت به خصوص، اطلاعات خاصی رو نمایش بده، 2 تا پارامتر رو به صورت $_GET از سایت کاربرش میگیره. به وسیله ی این 2 تا پارامتر، می فهمه که آمار بازدیدهای چه سایتی باید نمایش داده بشه.

این، کلا ایده ای بود که برای سرویس دادن به سایت های دیگه میشه ازش استفاده کرد.

میـلاد
یک شنبه 27 بهمن 1387, 10:47 صبح
به قول یکی از دوستان فکر کنم اگه عنوان تاپیک لیمیت نداشت شما کل متن را توی عنوان میزاشتی. :دی

as13851365
یک شنبه 27 بهمن 1387, 13:01 عصر
به قول یکی از دوستان فکر کنم اگه عنوان تاپیک لیمیت نداشت شما کل متن را توی عنوان میزاشتی. :دی

ممنون از نظر آقا میلاد ولی نمی دونم با این که این همه توضیح دادم ولی باز برداشت فرعی شده در ضمن عنوان تایپیک که زیاد زیاد طولانی نیست هست ؟

به نظر من عنوانی که انتخاب کردم بهتر از عنوانهایی با موضوع ( 'کمکم کنید ' , 'تو را خدا کمک کنید ' ...) می باشد


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

اگه تو همین کد نگا کنی می بینی که وب گذر، صفحه ی c.aspx رو در اختیار کاربراش قرار میده:

c.aspx?Code=729748&amp;t=counter


اما از اونجایی که میخواد برای هر سایت به خصوص، اطلاعات خاصی رو نمایش بده، 2 تا پارامتر رو به صورت $_GET از سایت کاربرش میگیره. به وسیله ی این 2 تا پارامتر، می فهمه که آمار بازدیدهای چه سایتی باید نمایش داده بشه.

این، کلا ایده ای بود که برای سرویس دادن به سایت های دیگه میشه ازش استفاده کرد.

دوست گرامی من نحویه کار رو می دونم فقط نمی دونم چطوری باید این کار رو انجام بدم

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


<?php
echo 'abcdefgh';
?>


حالا می خوام کدم به این صورت کار کنه مثلا :


<script language="javascript" src="http://localhost/a.php"></script>


ولی وقتی که اجراش می کنم به مقدار ارسال پیغام خطا می ده

قبلا یک آموزشی در این مورد بود ها ولی من دو روزه هرچی می گردم پیداش نمی کنم ( بدبختی این است که اون آموزش را هم ذخیره کرده بودم ولی حالا هر چی می گردم اون رو هم پیدا نمی کنم چه شانسی داریم ما )

narsic
یک شنبه 27 بهمن 1387, 18:06 عصر
با سلام
دوست عزیز برای این کار باید از این راه استفاده کنید
ابتدا فراخوانی صفحه به این شکل


<script language="javascript" src="http://mysite.com/show.php"></script>

و سپس در صفحه show.php اینها را بنویسید


Document.Write("test");

البنه در زمان فراخواین میتوانید به صورت معمول از Query String ها هم اسفاده کنید و
موفق باشید

smhnaji
یک شنبه 27 بهمن 1387, 19:46 عصر
به نظر من عنوانی که انتخاب کردم بهتر از عنوانهایی با موضوع ( 'کمکم کنید ' , 'تو را خدا کمک کنید ' ...) می باشد وقتی که آدم عنوان ۳، ۴ کلمه‌ای ِ کاملی دم دستش نیست، با این حرفت کاملا موافقم!
------
خب، خوشحالم که شما روش کار رو می‌دونی.

فرض کنیم اسکریپتی که به کاربرامون برای گذاشتن تو سایتاشون می‌دیم، این باشه:

<script language="javascript" src="http://localhost/process.php?id=1234"></script>
نمونه‌ای از process.php می‌تونه این باشه:


<?php
include 'db_connect.php';
$result = send_query("SELECT * FROM `tblSite` WHERE `id`='{$_GET["id"]}'");
$site_info = mysql_fetch_array($result);
$site_name = $site_info["name"];
?>
document.write("شما در حال بازدید از سایت <?php echo $site_info["name"]; ?> هستید!");

از دیتابیس اطلاعاتی رو که درباره‌ی اون سایت هست رو می‌گیریم، (توی اون کوئری از $_GET["id" استفاده کردیم) و بعد توی کد جاوااسکریپت ازش استفاده می‌کنیم :)

as13851365
دوشنبه 28 بهمن 1387, 10:15 صبح
از جناب نارسیک خیلی ممنون هستم کد ایشون برای مثال قبلی من کار می کنه ولی راستش رو بخواهید اون یک مثال بود ولی هر کاری کردم نتونستم از اون کد برای کار خودم استفاده کنم .

ببینید این کد مربوط به فایل a.php هستش :



<?php
include('mysql_login.php');
if($db)
{
if(mysql_select_db($bank,$db))
{
$query='select * from codebank limit 1';
$r=mysql_query($query);
if($r)
{
if(mysql_num_rows($r)>0)
{
while($a=mysql_fetch_array($r))
{
echo '
<div style="border:groove thin #FF9900;width:200px">
<div style="border:groove thin #FF9900;background-color:#EAFFFF;">'.$a['title'].'</div>
<div style="border:groove thin #FF9900;background-color:#EAFFFF;">'.$a['memo'].'<hr />
<fieldset>
<legend>search <input type="button" value="type" onclick="alert('.$a['type'].') " />&nbsp;</legend>
<form action="search_all.php" method="post">
<input type="text" name="serch_n" size="10"/>
<input type="submit" value="search"/>
</form>
</fieldset>
&nbsp;
</div>
</div>

';
}
}
else echo 'بانک خالی است';
}
else echo 'دستور وارد شده اشتباه است';
}
else echo 'بانک انتخاب نمی شود';
}
else echo 'به بانک وصل نمی شود';
?>



و این هم صفحه اصلی index.php


<html>
<head>
<title>codebank</title>
</head>

<body>
<script language="javascript" src="http://localhost/a.php"></script>
<noscript><a href="http://localhost/a.php" target="_blank">برای دیدن متن کلیک کنید</a></noscript>
</body>
</html>


وقتی که صفحه a.php را به صورت مستقیم اجرا می کنم هیچ مشکلی نداره و اطلاعات نمایش داده می شه همان گونه که می خواستم

ولی وقتی که صفحه Index.html را اجرا می کنم پیغام خطای زیر رو می ده:


Line : 3
char : 6
Error : syntax error
Code : 0
URL : http://localhost/


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

as13851365
دوشنبه 28 بهمن 1387, 13:02 عصر
با Iframe یه جورایی به نتیجه رسیدم گفتم در این قسمت قرار بدم شاید به درد یکی بخوره

محتوای فایل a.php همان محتوای قبلی است ( محتوایش در پست 7 موجود است )

محتوای فایل index.php :


<html>
<head>
<title>codebank</title>
</head>

<body>
<script language="javascript" src="http://localhost/b.php"></script>
<noscript><a href="http://localhost/a.php" target="_blank">برای دیدن متن کلیک کنید</a></noscript><br>
</body>
</html>


حالا محتوای فایل b.php :


<?php
echo 'document.write("<iframe width=\"300\" height=\"300\" frameborder=\"0\" scrolling=\"no\" src=\"a.php\" ></iframe>");';
?>


این کد به درستی کار می کنه . ( هر چند می شد این سه فایل را یکپارچه کرد و با دوتا فایل قاعله ختم شه اون قسمتش با خود دوستانی که می خوان از این روش استفاده کنند {توضیح : برای این کار هم بهتر است از متغیر GET_$ استفاده کنید } )



حالا یه سوال : آیا می شه بدون این که از Iframe استفاده کنیم به نتیجه برسیم ؟ ( کار پست 7 رو می گم )

narsic
دوشنبه 28 بهمن 1387, 13:23 عصر
ببینید این کد مربوط به فایل a.php هستش :



<?php
include('mysql_login.php');
if($db)
{
if(mysql_select_db($bank,$db))
{
$query='select * from codebank limit 1';
$r=mysql_query($query);
if($r)
{
if(mysql_num_rows($r)>0)
{
while($a=mysql_fetch_array($r))
{
echo '
<div style="border:groove thin #FF9900;width:200px">
<div style="border:groove thin #FF9900;background-color:#EAFFFF;">'.$a['title'].'</div>
<div style="border:groove thin #FF9900;background-color:#EAFFFF;">'.$a['memo'].'<hr />
<fieldset>
<legend>search <input type="button" value="type" onclick="alert('.$a['type'].') " />&nbsp;</legend>
<form action="search_all.php" method="post">
<input type="text" name="serch_n" size="10"/>
<input type="submit" value="search"/>
</form>
</fieldset>
&nbsp;
</div>
</div>

';
}
}
else echo 'بانک خالی است';
}
else echo 'دستور وارد شده اشتباه است';
}
else echo 'بانک انتخاب نمی شود';
}
else echo 'به بانک وصل نمی شود';
?>


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


<?php
include('mysql_login.php');
if($db)
{
if(mysql_select_db($bank,$db))
{
$query='select * from codebank limit 1';
$r=mysql_query($query);
if($r)
{
if(mysql_num_rows($r)>0)
{
while($a=mysql_fetch_array($r))
{
echo 'document.write("
<div style="border:groove thin #FF9900;width:200px">
<div style="border:groove thin #FF9900;background-color:#EAFFFF;">'.$a['title'].'</div>
<div style="border:groove thin #FF9900;background-color:#EAFFFF;">'.$a['memo'].'<hr />
<fieldset>
<legend>search <input type="button" value="type" onclick="alert('.$a['type'].') " />&nbsp;</legend>
<form action="search_all.php" method="post">
<input type="text" name="serch_n" size="10"/>
<input type="submit" value="search"/>
</form>
</fieldset>
&nbsp;
</div>
</div>");

';
}
}
else echo 'document.write("بانک خالي است");';
}
else echo 'document.write("دستور وارد شده اشتباه است");';
}
else echo 'document.write("بانک انتخاب نمي شود");';
}
else echo 'document.write("به بانک وصل نمي شود");';
?>

البته استفاده از iframe هم راه حل خوبی اما من بشخصه خوشم نمیاد من از همین روش استفاده میکنم همیشه .
موفق باشید

as13851365
دوشنبه 28 بهمن 1387, 13:42 عصر
ممنون از لطف جناب نارسیک .

من گفته های شما رو مو به مو اجرا کردم ولی با پیغام خطای زیر مواجه شدم :


Line : 2
Char : 17
Error : Unterminated string constant
Code : 0



ببینید اگه می شه این کد رو اصلاح کنید :

محتوای فایل a.php :


<?php
$a['title']='title';
$a['memo']='memo';
echo 'document.write("
<div style="border:groove thin #FF9900;width:200px">
<div style="border:groove thin #FF9900;background-color:#EAFFFF;">'.$a['title'].'</div>
<div style="border:groove thin #FF9900;background-color:#EAFFFF;">'.$a['memo'].'<hr />
<fieldset>
<legend>search <input type="button" value="type" onclick="alert('.$a['type'].') " />&nbsp;</legend>
<form action="search_all.php" method="post">
<input type="text" name="serch_n" size="10"/>
<input type="submit" value="search"/>
</form>
</fieldset>
&nbsp;
</div>
</div>");';
?>



و محتوای فایل index.php :


<html>
<head>
<title>codebank</title>
</head>

<body>
<script language="javascript" src="http://localhost/a.php"></script>
<noscript><a href="http://localhost/a.php" target="_blank">برای دیدن متن کلیک کنید</a></noscript><br>
</body>
</html>


کاراکتر " را به صورت "\ رو هم امتحان کردم نشد کاراکتر '\ را هم امتحان کردم نشد مخلوتشون رو هم امتحان کردم نشد جاهاشون رو عوض کردم نشد خلاصه نشد که نشد

as13851365
دوشنبه 28 بهمن 1387, 14:08 عصر
دوستان مشکل حل شد .

خیلی خنده داره یکی از اصل های برنامه نویسی رو رعایت نکرده بودم

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

مشکل من هم همین بود و بعد از کلی کلنجار رفتن تازه فهمیدم که مشکل چی بود

از جناب نارسیک خیلی ممنون هستم که راهنمایی کردن و از دیگر دوستان هم ممنون هستم

امیدوارم این تایپیک برای دیگران مفید باشه .

اگر مثال پست 10 را به صورت زیر بنویسید هیچ مشکلی نخواهید داشت :
محتوای فایل a.php :


<?php
$a['title']='title';
$a['memo']='memo';
echo 'document.write("<div style=\"border:groove thin #FF9900;width:200px\"> <div style=\"border:groove thin #FF9900;background-color:#EAFFFF;\">'.$a['title'].'</div> <div style=\"border:groove thin #FF9900;background-color:#EAFFFF;\">'.$a['memo'].'<hr /> <fieldset> <legend>search <input type=\"button\" value=\"type\" onclick=\"alert('.$a['type'].') \" />&nbsp;</legend> <form action=\"search_all.php\" method=\"post\"> <input type=\"text\" name=\"serch_n\" size=\"10\"/> <input type=\"submit\" value=\"search\"/> </form> </fieldset> &nbsp; </div> </div>");';
?>