سایت خود را بسازید ، به روش saalek110

saalek110

Well-Known Member
برای اینکه آموزش در تاپیک مختل نشود ، بحث تهیه بسته دانلودی سایت ساز را در تاپیک زیر دنبال کنیم:

 
آخرین ویرایش:

saalek110

Well-Known Member
صفحه خصوصی برای خودتان:

یک صفحه با نام دلخواه بسازید ، مثلا kingdom.php ، همون کنار index.php
یا اگر دوست دارید در پوشه groups....
این فایل برای مطالب خصوصی شماست. در این صفحه مطالبی می نویسید که فقط خودتان می توانید بخوانید.
اولش کد زیر را می گذارید ، بعد از include ها:
PHP:
if ( $_SESSION["username"]== "Admin")
{

و کروشه بسته اون را قبل علامت php بسته بزارید:
PHP:
}   // ghesmate khososi


?>
یک جدول به نام posts2 در دیتابیس بسازید.
و در صفحه kingdom.php اون جدول را نمایش دهید. یک عکس جالب هم بالای صفحه بگذارید.

بعدا می توانید صفحات میانی بسازید...یعنی صفحاتی که بعضی دوستان شما قادر به خوانون اونها باشند، بالای اون زیر include ها بنویسید:
PHP:
 if ( $_SESSION["username"]== "Admin" || $_SESSION["username"]=="farhad"   || $_SESSION["username"]=="hamid" || $_SESSION["username"]=="saman")
{
علامت دو خط موازی معنی ((یا )) می دهد.


و کروشه بسته اش قبل بسته شدن قسمت php:
PHP:
}   // ghesmate khososi


?>
 
آخرین ویرایش:

saalek110

Well-Known Member
دومین تابع writeMsg:

با نام writeMsg2
PHP:
function writeMsg2( $number) {


global $ccoonn;

    echo"<br>";
    mysqli_set_charset($ccoonn, "utf8");
 
$sql = "SELECT my_text FROM texts WHERE number=$number ";
$result = mysqli_query($ccoonn ,$sql);

   while($info = mysqli_fetch_array( $result ))
    {
  $str=$info['my_text'];
    }

echo $str;

}//func

طرز استفاده:
PHP:
$writeMsg2(12);
تابع خروجی نداره و خودش عبارت را چاپ می کند. دیگه نیازی نیست رشته را دریافت کنید و د. خط دیگری رشته را با echo چاپ کنید.صرفه جویی در تعداد خطوط برنامه می شود.
در انتهای اسمش یک ۲ داره نسبت به تابع writeMsg قبلی. من هر دو را در فایل functions.php قرار دادم.
 
آخرین ویرایش:

saalek110

Well-Known Member
تابع سوم writeMsg:
writeMsg3
PHP:
function writeMsg3( $text) {


global $ccoonn;

    echo"<br>";
    mysqli_set_charset($ccoonn, "utf8");
 
$sql = "SELECT my_text FROM texts where  comment='$text' ";
$result = mysqli_query($ccoonn ,$sql);

   while($info = mysqli_fetch_array( $result ))
    {
 $str=$info['my_text'];
    }
echo $str;

}//func

طرز استفاده:
PHP:
writeMsg3("welcome");
در کد بالا ، ستون comment را نوشتیم و به جای اون خوش آمدید چاپ میشه، login و logout و این کلمات ستون comment را میشه استفاده کرد. دیگه نیاز نیست شماره اون ردیف یادت باشه.
 

saalek110

Well-Known Member

20 دستور پرکاربرد SQL​



برای مطالعه علاقه مندان. اجباری نیست.
 

saalek110

Well-Known Member

معرفی سایتهای دانلود فونت فارسی و عکس png

سالک: من سایتها را چک نکردم...فقط لینک بالا را گذاشتم بعدا سایتها را ببینم.
 

saalek110

Well-Known Member

saalek110

Well-Known Member
حالا که لوگین و ثبت و نام و سسیون و کوکی گفته شد...
و آپلود فایل هم گفته شد....

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

saalek110

Well-Known Member
من پستها را نشان دادم ولی پست زننده را نشان ندادم.
پس باید پست زننده را هم نشان بدهم.
یک poster_id در جدول پست های فروم phpbb است. باید اون را بخوانیم.

PHP:
                     $poster_id=$info['poster_id'];
Screenshot_۲۰۲۴-۰۱-۲۸_۱۰۰۲۵۹.jpg

ولی این فقط شماره پست زن است... باید اسم او را پیدا کنیم.
از جدول users.
ستون user_id از جدول users باید خوانده شود. ولی ما دو تا جدول یوزرز داریم و باید دو نوع کوئری بنویسیم.
وقتی تودرتو دارید جدول می خوانید متعیر result و info دومی را شماره ۲ بدهید ، این طوری $result2 و $info2 تا با کوئری بالادستی اشتباه نشود.

PHP:
      if ( $h==1)   $sql2 = "SELECT * FROM f1_users WHERE user_id=$poster_id";

در کوئری بالا ، ما با داشتن user_id که برابر poster_id جدول پست ها است ، دنبال username هستیم. بعدش می نویسیم:
PHP:
          $username=$info2['username'];

در عکس زیر می بیند که نام پست زن حالا درست نشان داده می شود.

Screenshot_۲۰۲۴-۰۱-۲۸_۱۰۱۸۵۱.jpg
 
آخرین ویرایش:

saalek110

Well-Known Member
حالا می رسیم به ستون post_time از جدول پست های فروم phpbb :
یک عدد ده رقمی در این ستون است. چاپ این عدد ده رقمی در فروم که بی فایده است...
چون چیزی را نشان نمی دهد.



PHP:
echo date("Y-m-d H:i:s", $post_time);

کد بالا را از اینجا پیدا کردم:


با سرچ کلمات زیر در گوگل:
کد:
php convert number to date
عبارت بالا را از خودم ساختم..
خواستم بدانید چطور کدهای لازم خود را پیدا کنید.


پس اون عدد ۱۰ رقمی با کد بالا تبدیل به تاریخ و زمان شد...
گویا اون عدد زمان را از یک سال مشخصی در خود نگه می دارد ، گویا ۱۹۷۰

Screenshot_۲۰۲۴-۰۱-۲۸_۱۰۴۳۳۶.jpg


پس تاریخ پست ها هم به فروم اضافه شد.
می بینید تاریخ پستها مربوط به ۲۰۲۲ است ، برج ۸

ولی اون فروم ۵۰۰ پستی ، اولین پستهایش ۲۰۱۹ است.برج ۹
من اول اون فروم ۵۰۰ پستی را زدم.

پس حالا فهمیدم این دو فروم ۳ سال فاصله زمانی دارند.

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

اون حالت به هم ریختگی ستون ها را هم درست کردم، شکل زیر:
Screenshot_۲۰۲۴-۰۱-۲۸_۱۱۱۰۴۲.jpg
 
آخرین ویرایش:

saalek110

Well-Known Member
علت به هم ریختگی پستها در پست قبل این بود که table را داخل while گذاشته بودم.
ترتیب باید این طوری باشه:
PHP:
<table>
while
{
<tr>


<td></td>
<td></td>
<td></td>



</tr>
}
</tabe>
حلقه while به اندازه ردیف های جدول دیتابیس اجرا میشه.
پس هر اجرایش یک سطر را چاپ می کنه ، پس tr درون whike اول و آخرش می گذاریم.

کل ردیف هایی که while چاپ می کنه ، با خود while داخل تگهای table از html قرار می گیرد.

کوئری و result می تونه قبل تگ table قرار بگیره... خط کوئری و result هیچ چاپی ندارد.
در کد بالا یک جدول ۳ ستونه ایجاد میشه با اون td ها.
 
آخرین ویرایش:

saalek110

Well-Known Member
آیا باید درون while فقط یک tr قرار بگیرد ، یعنی یک ردیفه همه چی چاپ شود؟
جواب: خیر.
میشه هر ردیف جدول دیتابیس را در دو ردیف جدول html چاپ کرد ، یا تعداد ردیف های بیشتر. هر جقدر دلتان بخواهد.
 

saalek110

Well-Known Member
به شکل زیر نگاه کنید:

Screenshot_۲۰۲۴-۰۱-۲۸_۱۲۲۰۴۷.jpg

چاپ یک پست توسط phpbb است. مثل من هر پست را در یک ردیف چاپ نکرده.
هر پست ردیف های بیشتری دارد.
من نام مست زننده را در یک ستون قرار دادم.. ولی در شکل بالا می بینید یک ردیف جدا است خودش.

در شکل زیر من هم ۳ ردیفه یک پست را چاپ کردم:

Screenshot_۲۰۲۴-۰۱-۲۸_۱۲۴۸۲۲.jpg
یعنی ۳ تا tr باز و بسته داخل while گذاشتم.

ولی ۳ ردیفه جالب نبود ، تاریخ را هم داخل پست گذاشتم:

Screenshot_۲۰۲۴-۰۱-۲۸_۱۲۵۷۱۲.jpg
این حالت ۲ ردیفه بهتره.
ولی هنوز تاریخ وضعیت خوبی ندارد. بعدا درستش می کنم.

ادیت بعدا:
برای بهتر کردن وضعیت تاریخ ، من یک div برایش درست کردم. این طوری شد:

Screenshot_۲۰۲۴-۰۲-۰۲_۰۱۱۵۱۱.jpg

در صفحه ۲ تاپیک ، طرز درست کردن یک div را گفتم.
صفات div تقویم من این است:
CSS:
 #date {
          border:1px solid #eeff22;
          border-radius:5px;
          font-size:8px;
          width:150px;
          padding:2px;
          margin-left:20px;
            background-color:rgba(250,130,30,1);
                 }
کد بالا ، در بین تگهای style در بین تگهای head قرار می گیرد.


و این هم کد استفاده از این css:
PHP:
echo'<div id="date">';
     date_default_timezone_set("Asia/Tehran");
     echo date("Y-m-d H:i:s", $post_time);
  echo'</div>';

که در کد بالا ، $post_time از دیتابیس خونده شده. اون کد تایم زون برای اینه که ساعت برای تهران تنظیم شود. فکر کنم برای کل ایران همین کد را باید استفاده کرد چون فکر کنم ایران فقط یک تایم زون زمانی دارد چون عرضش کم است. یا به شکل قراردادی فقط یک تایم زون بهش داده اند.

چند خط بالاتر داریم:
PHP:
          $post_time=$info['post_time'];//post time

کد بالا داخل حلقه while بعد اجرای کوئری خواندن دیتابیس است. که دیگه بحث این پست نیست. و جای دیگه بحث کردیم.
 
آخرین ویرایش:

saalek110

Well-Known Member
من زیرتالار ها را در فایل froms لیست کردم..
ولی زیرتالارها هم خود زیرتالار دارند و باید اونها هم لیست بشوند.
پس شاید باید یک فایل froms2.php بسازم.
و در فایل frums پاس بدهم به فایل frums2
 

saalek110

Well-Known Member
قسمت نمایش فروم من ، تقریبا تکمیل است.
البته قسمتهایی هنوز باید اضافه شود ، مثل تعداد بازدید تاپیکها. و تعداد پستهایش.

نمی دونم قسمت پست جدید را الان اضافه کنم یا نه.
همچنین قسمت ثبت نام و لوگین را.

فکر کنم اول باید قسمت ثبت نام اضافه بشه بعدش پست جدید اضافه بشود.
 
آخرین ویرایش:

جدیدترین ارسال ها

بالا