PDA

View Full Version : سوال: من امروز برنامه نویسی رو شروع کردم . یه سوال آماتور



ehsan640
شنبه 11 خرداد 1387, 22:51 عصر
سلام به همه عزیزان
من امروز شروع کردم به یادگیری php
دو تا کتاب خریدم و دارم یواش یواش میخونم .
ولی همین اول کاری یه مشکلی پیش اومد که حال گیری شد .
-------------------------------------------
من واسه یه سایت فروشگاه میخواستم یه کد بنویسم که از بین چند تا بنر تبلیغاتی هر بار یکیشو انتخاب کنه و نمایش بده .
اینا رو نوشتم

<?php
$banner[1]="468601.gif";
$link[1]="_0_1_3.htm";
$banner[2]="468602.gif";
$link[2]="_0_1_3.htm";
$banner[3]="468603.gif";
$link[3]="_0_1_3.htm";
$banner[4]="468604.gif";
$link[4]="_0_1_3.htm";
$banner[5]="468605.gif";
$link[5]="_0_1_3.htm";

$ehsan=rand(1,5);
?>
<p align=center><a href="http://www.rooz.ir/pas/<?php echo $id; ?><?php echo $link[$ehsan]; ?>.htm"><img src="http://rooz.ir/banners/<?php echo $banner[$ehsan]; ?>" border="0"></a></p>همه چیز خوبه و هر بار یکی از عکسها به صورت رندوم نشون داده میشه ولی لینکشون مشکل داره . آخه من lمیخوام متغیر $id رو که یه قسمتی از لینک رو میسازه به صورت get به آخر url این فایل php اضافه کنم تا توی لینکها نمایش داده بشه .
یعنی میخوام آدرس صفحه رو که میدم به این صورت باشه :
http://www.rooz.ir/1.php?id=750 (http://www.roozshop.ir/1.php?id=750)
تا متغیر id مقدار دهی بشه
ولی انجام نمیشه و جای متغیر id خالی میمونه
یه لینک نمونه باید به صورت :
http://www.rooz.ir/pas/7503.htm (http://www.roozshop.ir/pages/750_0_1_3.htm)
باشه ولی به صورت
http://www.rooz.ir/pas/1.htm (http://www.roozshop.ir/pages/_0_3_1.htm)
هست .
لطفا کمکم کنید چون حتما خودتون میدونین که وقتی شروع یه کار جواب نده دیگه آدم دلسرد میشه .
با تشکر

امید امرایی
شنبه 11 خرداد 1387, 23:32 عصر
کدتو باید به این شکل تغییر بدید

<p align=center><a href="http://www.roozshop.ir/pages/<?php echo $_GET['id']; ?><?php echo $link[$ehsan]; ?>.htm"><img src="http://roozshop.ir/components/com_idevaffiliate/banners/<?php echo $banner[$ehsan]; ?>" border="0"></a></p>در ضمن لازم نیست مرتب تگ PHP رو باز بسته کنید


<p align=center><a href="http://www.roozshop.ir/pages/<?php echo $_GET['id']; echo $link[$ehsan]; ?>.htm"><img src="http://roozshop.ir/components/com_idevaffiliate/banners/<?php echo $banner[$ehsan]; ?>" border="0"></a></p>

ehsan640
شنبه 11 خرداد 1387, 23:51 عصر
آقا خیلی ممنون از شما .
فقط تعجب میکنم که چرا توی این کتاب هیچ چیزی از این مساله نگفته
آخه یه نکته به این مهمی ...
حتی چند بار هم مثالای مختلف زده ولی ....
به نظرتون من چه کتابی رو بخونم ؟


حالا این کدی که من و شما نوشتیم رو باید به صورت یه inline frame بذارنش تو صفحاتشون تا تبلیغات نمایش داده بشه . مثلا یه همچین کدی :
<iframe name="I1" src="http://www.rooz.ir/ad.php?id=750" marginwidth="1" marginheight="1" height="60" width="468" border="0" frameborder="0" scrolling="no" align="middle">
Your browser does not support inline frames or is currently configured not to display inline frames.
</iframe>

حالا نمیشه یه جوری اون کد رو تغییر داد که با تگ <img> یا یه چیز دیگه اون عکس رندوم به همراه لینکش نمایش داده بشه ؟ منظورم بدون استفاده از inline frame هستش
البته قبلا توی سیستمهای تبلیغاتی دیگه دیدم که با جاوا اسکریپت اینکار رو میکنن
یعنی کدی که میدن واسه نمایش تبلیغات بصورت یه آدرس فایل javascript هستش .

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

امید امرایی
یک شنبه 12 خرداد 1387, 15:23 عصر
تو این موارد می تونید از آزایه استفاه کنید
مقادیر ، آدرس ها ، عکس ها و هر چیز دیگه ای که بخواید رو می تونید به صورت داینامیک مقدار دهی و بصورت تصادفی هم استفاده کنید.

فرض کنیم ارایه قبلا مقدار دهی شده


$images_array;
shuffle($images_array);
echo $images_array[0];
تابع shuffle باعث می شه اندیس های آرایه به صورت تصادفی تغییر کنند در ضمن نیازی به استفاده از <iframe> هم نیست.می تونید ارایه ها رو با تگ <img> مقدار دهی کنید.



$images_array[0] = '<img src="images/img0.gif" border="0">';
کتاب هم : مرجع کامل PHP4 یا PHP5 ، مهندس مهرداد توانا برای شروع مناسب و خوبه

ehsan640
یک شنبه 12 خرداد 1387, 16:12 عصر
واقعا ممنون از راهنمایی های شما. خیلی بهم کمک کردین
یه سوال دیگه هم اینکه :
همونطوری که در جریان بودید ، متغیر id توی کد بالای صفحه ، از توی url آدرس دهی میشه که با راهنمایی شما اشکال در مقدار دهیش برطرف شد . حالا با چه کدی میتونم کاری کنم که اگه این متغیر توی url مقدار دهی نشده باشه ، یه مقدار پیش فرض به خودش بگیره ؟
مثلا اگه که هیچ مقداری توی url بهش داده نشده بود مقدارش بشه 100 ؟

امید امرایی
یک شنبه 12 خرداد 1387, 22:00 عصر
تابع isset وجود یک متغیر رو بررسی می کنه


$id;

if(isset($_GET['id']))
$id = $_GET['id'];
else
$id = 100;


و یا همین کار رو با عملگر سه گانی انجام بدید که باعث کاهش حجم کد هم میشه



$id = isset($_GET['id'])?$_GET['id']:100;

ehsan640
یک شنبه 12 خرداد 1387, 22:10 عصر
مرسی . ایشالا که یه روزی بتونم جبران کنم . یا خودم برنامه نویس بشم و به تازه کارا کمک کنم .
واقعا ممنون

امید امرایی
یک شنبه 12 خرداد 1387, 22:13 عصر
ایشالا که همین طور باشه :چشمک: