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

saalek110

Well-Known Member
حالا بیاییم سایت salam را با سایت hello world ترکیب کنیم.


PHP:
<!DOCTYPE html>
<html>
<head>
<style>
body
{
background-color:rgba(140,240,130,1);
}
  #myname {
      border:7px solid #fff733;
          border-radius:25px;

          font-size:70px;

              margin-right:150px;
                  margin-left:150px;

         padding-top:30px;
         padding-bottom:30px;

          padding-left:30px;

   background-color:rgba(250,130,30,1);
                                         }

 </style>
                                                       </head>
 <body>
   <div id='myname'>
                    <?php
                           echo "Hollo World!";
                          ?>
                                                           
     </div>
 </body>
       </html>




http://saalek110.great-site.net/amozesh/yourweb/d2.php?i=1

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


شرح کد: همون جا که سلام نوشته شده بود ، کد php را قرار دادم ، که hello world را چاپ کرد.
زبان php فقط کارش چاپ نیست ، در این کد خواستم فقط بدونید کدهای php خیلی راحت وسط کدهای html استفاده می شوند.
قبلا گفتیم از php در کارهایی از قبیل ذخیره در دیتابیس استفاده می کنیم.

Html کارش نمایش است و قادر نیست وظایف php را انجام دهد.
جاوا اسکریپت هم در بروسر اجرا میشه ولی قدرت مانورش بیشتری نسبت به html دارد. مثلا میشه باهاش بازیهای جالبی ساخت.
ولی کدهای php در سرور اجرا میشه نه در بروسر.
مثلا فرص کنید کدهای php در یک سایت فروشگاه ، اجناس را از دیتابیس می خونه و با کمک html به کاربر نمایش می دهد. زبان php در سرور اجرا میشه و دیتابیس هم روی سرور است... ولی بروسر در گوشی یا کامپیوتر شماست... برای همین است که وظایف html و جاوا اسکریپت و css که همگی بروسری هستند کلا با وظایف php فرق داره. حالا اگر نفهمیدید اینجا من چی گفتم مهم نیست. بع۱دا می فهمید یا در سایتهافرق html و php را بخوانید.

چیزی که من در این تاپیک می خوام اینه بتونید کدهای php را لابلای کدهای html درج کنید تا هر یک کارشون را به موقع خود انجام بدهد.
 
آخرین ویرایش:

saalek110

Well-Known Member
یک فرم ، به زبان html نوشته میشه ،
مثلا دوست شما روی سایت شما نظرش را در فرم می نویسد و دکمه ثبت را می زند...
وقتی دکمه ثبت زده میشه ، کدهای php فعال می شوند و صحبت های دوست شما را در دیتابیس ذخیره می کنند.

فرم ثبت نام همه دیدند... اون با html نوشته میشه ، با زدن دکمه پایین فرم نوبت کدهای php میشه که اطلاعات را در دیتابیس ذخیره کنند.


تقسیم وظایف من و شما ، html و php:
فرم را شما به زبان html می نویسید و هر بزکی خواستید روی اون انجام می دهید....
و اون قسمت کد php که کارش ثبت در دیتابیس است را من در این تاپیک می گذارم...

و شما دو قسمت را کنار هم در یک فایل یا دو فایل می گذارید تا کارشون را انجام بدهند. بعدا مشروح کد و شرح را خواهم گفت. فعلا خواستم معماری کار را بدانید.

در پست قبل دیدید درج کردن کدهای php میان کدهای html خیلی ساده است.
کدهای ذخیره در دیتابیس را من در سایت خودم دارم و یک ساله داره کار می کنه. بلوک اون را اینجا پست می زنم و میگم چطور کار می کنه تا بتونید ازش استفاده کنید.

به تدریج خودتون php هم یاد می گیرید و کاملا مستقل می شوید. ولی فعلا لازم نیست وارد مباحث php بشوید.
 

saalek110

Well-Known Member
کارهای باقی مانده:
کد فارسی سایت، یعنی کدهای مناسب سایتهای فارسی.


ساختن فایل کانکشن ، در پست بعدی گفته شده.


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

یک قضیه هم حذف سطرهایی از جداول است... بهرحال نمیشه که مرتب جدول ها را دیلت یا خالی کرد ، گاهی لازم میشه یک یا چند سطر را دیلت کرد.

یکی هم ستون یونیکیو هر جدول است که توضیح می دهم.

یک موضوع هم نوع یونیکد ستون هاست.
 
آخرین ویرایش:

saalek110

Well-Known Member
result.png

ساختن فایل کانکشن: نام دیتابیس و یوزر وپسورد دیتابیس می خواهد و نام سرور.
فایل کانکشن برای هر نوع کار با دیتابیس لازم است. پس حتما باید بسازیم. باید بهتون بگم این اطلاعات را از کجای هاست پیدا کنید. اسم دیتابیس که چون خودتون دیتابیس را ساختید داریدش.
برای پیدا کردن پسورد ، بعد لوگین ۳ دکمه بزرگ رنگی داشتید ، همون دکمه های کنترل پنل و فایل منیجر و سایت ساز اتوماتیک. کمی که بروید پایین تر پسورد پوشیده است دکمه کنارش را بزنی آشکار میشه.شکل زیر:

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

برای یوزر ، در کنترل پنل بروید به mysql databases
در انتهای صفحه که لیست دیتابیس های شماست ، جلوی هر دیتابیس یوزر دیتابیس نوشته شده.

در همین لیست ، ستون mysql host name را ببینید.شکل زیر:

Screenshot_۲۰۲۴-۰۱-۱۸_۱۱۲۳۲۴.jpg
در همین شکل بالا ، نام دیتابیس هم که در ستون اول سمت چپی هست.
فقط از ۴ مورد ، پسورد اینجا نیست که اون را هم گفتم زیر سه دکمه بزرگ صفحه اول هاست با عکس اول این پست که در خطوط بالا شرح داده شد.

PHP:
<?php
$db_name = "epiz_9999999_name";
$mysql_username = "epiz_999909";
$mysql_password ="pppppppppp";
$server_name = "sql313.epizy.com";
$ccoonn = mysqli_connect($server_name, $mysql_username, $mysql_password,$db_name);
if (!$ccoonn)
  {
  die("Connection error: " . mysqli_connect_error());
  }
 
?>

کد بالا را با یک اسم مثلا ccoonn.php جایی ذخیره کنید.
این فایل حکم کلید دیتابیس است و هر فایلی بخواهد به دیتابیس وصل بشه به این فایل نیاز داره.
اگر اطلاعات بالا غلط باشه نمی تواند وصل بشود و اون پیام die چاپ می شود، die یعنی مردن، یعنی همون جا اجرا می میرد و اون پیام مردن را می دهد. پس اگر اون متن را دیدید باید ببینید کدوم اطلاعات را غلط وارد کردید.

در کد بالا نام سرور را من نوشتم sql313 ، این مال من است .. شما در mysql databases ببینید مال شما چیه.

اون اسم ccoonn دلخواه است. هر اسمی دوست دارید بزارید... دقت کنید این اسم دو بار اومده در کد بالا...
و اگر عوضش کنید در کدهایی که می خواهید از کانکشن استفاده کنید باید اسم جدیدی که خودتون گذاشتید را بزارید...
در خط:
PHP:
     $result = mysqli_query($ccoonn ,$sql);
بعدا هر جا این خط بود باید بجای اون ccoonn اسم جدید را بزارید چون این خط از کانکشن استفاده می کنه... در صفحات بعدی این تاپیک این خط هست.

شاید بهتر باشه برای امنیت اسم فایل کانکشن و این متغیر کانکشن که دو بار در فایل کانکشن اسمش اومده را یک جور دیگه بزارید ، ولی فعلا در تست های اولیه تغییر ندهید تا کمی ماهرتر بشید.چون ممکنه باعث اشتباه و سردرگمی بشود.
 
آخرین ویرایش:

saalek110

Well-Known Member
اول هر فایل php باید بگیم از چه فایلهای php استفاده می کند.
مثلا:
PHP:
    require "folder_name/ccoonn.php";
در کد بالا ، مثل این می مونه که یک بار کدهای فایل ccoonn.php اجرا میشه.
folder_name نام پوشه ای است که فایل ccoonn.php داخلش است.

ما یک سری فایل php داریم که توابع مورد نیاز ما داخلش است. مثلا:
PHP:
     include "folder_name/functions.php";
در کد بالا فایل ما اومده میگه من به فایل functions.php نیاز دارم. وقتی اینکلول کنیم ، یعنی از جای اون توابع خبر داره حالا و داخل فایل می تواند اون توابع را صدا بزند.

بعدا کدتوابع را بهتون می دهم تا در فایل functions.php بریزید.

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

saalek110

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

بعد هر فایل ، اولش این دو تا فایل را require و اینکلود می کند.

مثلا اسم پوشه cat است و اسم فایل کانکشن kelid است و اسم فایل توابع lavazem است.
در اول هر فایل می نویسیم:

PHP:
require "cat/kelid.php";
include "cat/lavazem.php";

اینها لوازم کار کدهای php است و ربطی به کدهای html ندارد.
همون اوایل body از html میشه یک قسمت php ایجاد کرد و اینها را نوشت. این طوری:

PHP:
<body>

<?php


require "cat/kelid.php";
include "cat/lavazem.php";
?>

در گد بالا می بیند که اول body , تگهای php باز و بسته شده و داخلش گفته به دو تا فایل نیاز داره.
شما هر جا می توانید علامت شروع و پایان php بزارید و داخلش کد php بنویسید
 
آخرین ویرایش:

saalek110

Well-Known Member
حالا برای تست ، یک دیتابیس بسازید ،
و فایل کانکشن بسازید. آدرس فایل کانکشن را در بروسر باز کنید.
مثلا


من این کارو کردم ، هیچی چاپ نشد، یعنی درسته ، ولی خوبه اول فایل یک hello چاپ کنیم تا بفهمیم فایل اجرا شده.

PHP:
<?php


echo"hello con";


$db_name = "epiz_9999999_name";
$mysql_username = "epiz_999909";
$mysql_password ="pppppppppp";
$server_name = "sql313.epizy.com";
$ccoonn = mysqli_connect($server_name, $mysql_username, $mysql_password,$db_name);
if (!$ccoonn)
  {
  die("Connection error: " . mysqli_connect_error());
  }
 
?>

وقتی مطمئن شدید فایل کانکشن شما درست کار می کنه و اون پیام die چاپ نمیشه ، اون چاپ hello con را پاک کنید.
یادتون باشه نمی نویسه die بلکه پیام جلوی die را می نویسه یعنی Connection error:

من اومدم عمدا اطلاعات را غلط دادم این اومد:

Screenshot_۲۰۲۴-۰۱-۱۸_۱۲۰۴۳۸.jpg
در php هر اشتباهی باشه ، همین صفحه بالا می آید.....
 
آخرین ویرایش:

saalek110

Well-Known Member
لوکال کار کنید:


اگر شما لوکال کار کنید ، توضیح خطا را می دهد.

لوکال یعنی کامپیوتر خود را تبدیل به سرور کنید مثلا با نرم افزار xampp

درستش اینه اول سایت خود را در لوکال تست کنیدو بعد روی هاست ببرید.

اگر سرچ کنید طرز کار با xampp در سایتهای فارسی هست.

اون جوری لازم نیست مرحله آپلود را انجام دهید.. و خطا و شماره خطی که خطا رخ داده را هم میگه

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

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

بهتر اینه در لوکال کار کنید.

زیاد کاری نداره ، xampp را پیدا کنید و دانلود کنید و نصب کنید. وقتی xampp را اجرا کنید ، در یک پوشه اون مثل هاست میشه بزای شما.. و فایلهای سایتتون را اونجا قرار می دهید و در بروسر آدرسی که xampp میگه را می دهید بعلاوه اسم پوشه و نام فایل php خودتون. من الان پای کامپیوتر نیستم و در تبلت دارم کار می کنم.

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

saalek110

Well-Known Member
خطا دادن را می توانید روشن کنید:
الان که سایتی هنوز شکل نگرفته خطا دادن را روشن کنید تا سریعتر خطاها را پیدا کنید.....سایت که تکمیل شد خاموش کنید تا امنیت پایین نباشد.

در کنترل پنل ، برود به Alter php config
طبق عکس زیر:

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

در اونجا ، مکان را می توانید آسیا/تهران انتخاب کنید
و خطا دادن را روشن کنید....
اگر خطا دریافت کنید مثل عبارت زیر:
کد:
Parse error: syntax error, unexpected token "echo" in /home/vol17_2/epizy.com/epiz_xxxxxxxx/htdocs/base/index.php on line 52

پیدا کردن خطا خیلی راحت تر میشه...اون xxxxxxx شماره اکانت من بود که x گذاشتم جایش.

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

در متن بالا می بینید گفته خط ۵۲ مشکل سینتکس داره.
خوب می رویم سراغ خط ۵۲ ، یک راست. و نوع خطا هم از نوع سینتکس است. من عمدا سمی کلون انتهای خط را برداشتم تا خطا بدهد.

Screenshot_۲۰۲۴-۰۱-۲۸_۱۷۴۵۴۸.jpg
فکر کنم چون خط ۵۱ سمی کلون نداره ، خط ۵۲ را ادامه خط ۵۱ می داند و درش خطا می بیند.


-----------------
در ادامه چند نرم افزار اندرویدی را با هم نگاه می کنیم.
 
آخرین ویرایش:

saalek110

Well-Known Member
تا اینجا به کجا رسیدیم؟
پس شما ساختن دیتابیس یاد گرفتی
فایل کانکشن را ساختی
آدرس اون را در بروسر نوشتی تا ببینی فایل اتصالت درست کار می کنه یا نه.

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

درگام بعدی می توانیم یک جدول بسازیم
و کد افزودن سطر به جدول را بنویسیم
و با این کار با کدمون به یک جدول دیتابیس سطر اضافه کنیم.

تگهای html خیلی کم گفتیم.... بعدا تعدادی را می گوییم.
 

saalek110

Well-Known Member
HTML:
   <a href="myphpfile.php">boro be file php man</a>

کد لینک است..
مثلا از صفحه اول سایت خود به صفحه دوم سایت خود یا یک سایت دیگر لینک می دهید.
جزو html است.
کل لینک و عکس از مهم ترین کدهای html است.
 

saalek110

Well-Known Member
تا اینجا ، طرز ساختن دیتابیس در هاست infinityfree را گفتم.
و طرز ساختن فایل کانکشن.

اگر حالا php و mysql کسی بلد باشه ، می تواند سایت خود را در این هاست بنا کند.
 

saalek110

Well-Known Member

حالا که به اینجا رسیدیم.... تاپیک بالا ، می تونه یک گام باشه... در تاپیک بالا ، من فرم کار کردم...
یعنی ارتباط html و php
فرم راهی است برای ارسال اطلاعات از html به php ، و وقتی php اطلاعات را دریافت کرد مثلا می تواند در دیتابیس ذخیره کند.
 

saalek110

Well-Known Member
یک بحث دیگر در html تیبل است:

HTML:
<!DOCTYPE html>
<html>
<style>
table, th, td {
  border:1px solid black;
}
</style>
<body>

<h2>A basic HTML table</h2>

<table style="width:100%">
  <tr>
    <th>Company</th>
    <th>Contact</th>
    <th>Country</th>
  </tr>
  <tr>
    <td>Alfreds Futterkiste</td>
    <td>Maria Anders</td>
    <td>Germany</td>
  </tr>
  <tr>
    <td>Centro comercial Moctezuma</td>
    <td>Francisco Chang</td>
    <td>Mexico</td>
  </tr>
</table>

<p>To understand the example better, we have added borders to the table.</p>

</body>
</html>

کد از :


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

ساختار کد:
اولا یک table باز و یک table بسته داریم
و بعدش ردیف را داریم که همون tr است
هر ردیف یک یا چند ستون می تواند داشته باشد که با td ساخته میشه.
اون th مشابه td عمل می کنه ، فقط فرقش اینه عنوان ستون را با اون می نویسند.
 
آخرین ویرایش:

saalek110

Well-Known Member
دیدن سورس صفحه:

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


شما در سورس صفحه html و css و جاوا اسکریپت را می توانید ببینید ولی کدهای php را نمی توانید ببینید.



خوب این طوری ، اگر از ظاهر یک سایت یا رفتارش(جاوا اسکریپت) خوشتان اومد می توانید سورس صفحه را ببینید و از کدهایش کپی بگیرید و در سایت خود استفاده کنید، مثلا همین div که من در پست های قبل گفتم ، در سایتها زیاد استفاده میشه ، می توانید سورس سایتها را ببینید و css اون div ها را نگاه کنید و الگو بگیرید.



ولی برای php ، چون کدهایش در سورس صفحه نیست چنین کاری ممکن نیست.



در ویندوز برای دیدن سورس صفحه ، روی صفحه کلیک راست کنید و پیج سورس را بزنید.

در گوشی جلوی اسم سایت view-source و دو نقطه را بنویسید و بعد ادرس سایت را بنویسید.
 

saalek110

Well-Known Member
جزایر کدهای php

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

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

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

saalek110

Well-Known Member
پس در پست قبل ، گفتیم روی اجرای جزایر کد php خود باید مدیریت کنید.
شرح جزیره: منظور از جزایر php تکه کدهایی است که با یک فرم html اجرا میشه. هر فرم html یک تکه کد php را وادار به اجرا می کند ...من اسم اون تکه کد را جزیره گذاشتم.

Html هم قسمت نمایشی همان کدهای php است ، ،مثلا یک جزیره php , قسمتی از دیتابیس را می خواند و با تیبل html در صفحه نمایش می دهد.
شرح جمله بالا: زبان php برای نمایش نیست ، برای کارهای خاص دیگر است ، مثل ارتباط با دیتابیس ، پس php برای نمایش دادن از همان html استفاده می کند. یعنی شاید بشه گفت html ابزار نمایشی در دست php است.
 
آخرین ویرایش:

saalek110

Well-Known Member
PHP:
include"folder/name.php";

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

مثلا برای خلوت شدن فایل فعلی خوبه.

اگر توابعی داخل اون فایل خارجی باشه ، اجرا نمیشه ، ولی با اینکلود کردن اون فایل ، حالا می توانید در کد خود اون توابع را صدا بزنید.

در پستهای قبلا گفتم ما دو چیز را اول فایلها ، require و اینکلود می کنیم... یکی اون فایل کانکشن به دیتابیس و یکی هم فایل یا فایلهای حاوی توابع ساخته خومون یا ساخته دیگران مثل تقویم فارسی.

من خودم دو سری تابع ساختم
یک سری تواع عادی
دوم توابع کار با دیتابیس

یادتون باشه ، تابع به جایی دسترسی ندارد و در توابع کار با دیتابیس باید کانکشن را هم به عنوان وروی تابع بهش ارسال کنیم. بعدا که کد گذاشتیم ، این کار را خواهید دید.
 
آخرین ویرایش:

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

بالا