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

saalek110

Well-Known Member
کد فایل add_text ;

PHP:
<!DOCTYPE html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html dir="rtl">
<meta charset="UTF-8">
<head>
<title>add text</title>
</head>
<body>
<?php
 
   require "../base/ccoonn.php";
     mysqli_set_charset($ccoonn, "utf8");


$sql = "SELECT * FROM texts";
$result = mysqli_query($ccoonn ,$sql);
echo"<center>";       
echo"<table border=1>";
   while($info = mysqli_fetch_array( $result))
   {
   echo"<tr>";
echo"<td>";   echo $info['number'];   echo"</td>";
echo"<td>";   echo $info['comment'];  echo"</td>";
echo"<td>";   echo $info['my_text'];  echo"</td>";
   echo"</tr>";

    }
    echo"</table>";
    echo"</center>";       

    echo"<br>";
    echo"<br>";
?>


<center>
 <form id='myform' action="<?php echo $_SERVER['PHP_SELF']; ?>"  method = 'POST'>
  number: <input type="text" name="number" ><br><br>
 comment: <input type="text" name="comment" ><br><br>
  text: <input type="text" name="text" ><br><br>

  <input type="submit"  name='action1' value="Submit">
</form>
</center>

<?php

 if(isset($_POST['action1']))   // add one text at end
 {// if action
echo"action";

 
     $number=$_POST["number"];
     $comment=$_POST["comment"];
     $text=$_POST["text"];
    mysqli_set_charset($ccoonn, "utf8");

 $sql = "INSERT INTO `texts` (`number`,`comment`,`my_text`) VALUES ('$number','$comment','$text')";
 $result = mysqli_query($ccoonn ,$sql);


 }// if action
 
?>
</body>
</html>

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

شرح کلی کد:
اول جدول texts از دیتابیس را چاپ می کند تا بدونید داخل جدول چیه و سپس یک فرم داره که شما سطر جدید را به جدول اضافه کنید. به جدول نگاه کنید ببینید اخرین شماره چی است ، یکی بهش اضافه کنید و در سط بعدی استفاده کنید. در قسمت comment یک شرح انگلیسی بنویسید ، و در قسمت my_text عبارات فارسی که در سایت قراره استفاده بشود را بنویسید.

شرح جزئی کد: قبلا مشابه این برنامه را کار کردیم و شرح مجدد نمی دهم.
 
آخرین ویرایش:

saalek110

Well-Known Member
شرح ادرس دهی:
PHP:
require "../base/ccoonn.php";

اون دو نقطه در ادرس میگه ، چون کد ما داخل پوشه tools است ، اول باید خروج کند ، اون دو نقطه خروج کردن از پوشه فعلی است ....خوب ، با خروج کردن می رسیم به پوشه htdocs شما ، حالا باد وارد پوشه base بشود ، چون فایل کانکشن شما داخل این پوشه است... و در نهاین اسم فایل را نوشتیم.
 

saalek110

Well-Known Member
آموزش خطا یابی در سایت:

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

من الان صفحه سفیل برام اومد ، پس می روم یک echo اوایل فایل اضافه می کنم... مخصوصا قبل require چون شاید درست آدرس فایل کانکشن را نداده باشید.

کد زیر را نگاه کنید:
PHP:
echo"111";
   require "../base/ccoonn.php";
  echo"222";
و در اجرا دارم:
111222
این یعنی اشکال از خط require نبوده.
 

saalek110

Well-Known Member

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

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

اون به نام خدا را دستی در phpmyadmin اضافه کردم تا موقع چاپ یک چیزی باشه.
تست کردم کار می کنه...نتیجه:

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

saalek110

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

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

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

saalek110

Well-Known Member
نسخه ای که تابع test_input برای امنیت بیشتر بهش اضافه شده:
حالا اگر کسی بیاد شعری یا داستانی به جدول دیتابیس شما اضافه کند اشکالی ندارد. ولی دیگه کارکترهای html نمیشه اضافه کرد.

PHP:
<!DOCTYPE html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html dir="rtl">
<meta charset="UTF-8">
<head>
<title>add text</title>
</head>
<body>
<?php
 
   require "../base/ccoonn.php";
 
    mysqli_set_charset($ccoonn, "utf8");

$sql = "SELECT * FROM texts";
$result = mysqli_query($ccoonn ,$sql);
echo"<center>";         
echo"<table border=1>"; 
   while($info = mysqli_fetch_array( $result))
   {
   echo"<tr>";
echo"<td>";   echo $info['number'];   echo"</td>";
echo"<td>";   echo $info['comment'];  echo"</td>";
echo"<td>";   echo $info['my_text'];  echo"</td>";
   echo"</tr>";

    }
    echo"</table>";
    echo"</center>";         

    echo"<br>";
    echo"<br>";
?>


<center>
 <form id='myform' action="<?php echo $_SERVER['PHP_SELF']; ?>"  method = 'POST'>
  number: <input type="text" name="number" ><br><br>
 comment: <input type="text" name="comment" ><br><br>
  text: <input type="text" name="text" ><br><br>

  <input type="submit"  name='action1' value="Submit">
</form>
</center>

<?php

 if(isset($_POST['action1']))   // add one text at end
 {// if action
echo"action";

      $number=test_input($_POST["number"]);
    $comment=test_input($_POST["comment"]);
    $text=test_input($_POST["text"]);
     mysqli_set_charset($ccoonn, "utf8");

    $sql="INSERT INTO `texts` (`number`,`comment`,`my_text`) VALUES ('$number','$comment','$text')";
 $result = mysqli_query($ccoonn ,$sql);


 }// if action
 function test_input($data) {
                    $data = trim($data);
                     $data = stripslashes($data);
                          $data = htmlspecialchars($data);
                           return $data;
                           }
?>
</body>
</html>
زبان php به جلو و عقب رفتن کد کاری ندارد. من کمی کج و کوله نوشتم ، می توانید ببرید سر جایش . با زدن دیلت یا بک اسپیس. کل خط را میگم ، نه اینکه از وسط خط دو شقه اش کنید.
 
آخرین ویرایش:

saalek110

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

باز اگر من نرسیدم ، ابزار بعدی حذف یک سطر از یک جدول است... خودتون بنویسید، کوئری حذف را قبلا در تاپیک نوشتم.
یا تغییر یک سطر جدول ، کوئری update را هم قبلا نوشتم.‌

مثل فایل add text بسازید و کوئری اش را عوص کنید.

نکات فارسی نویسی هم دو تا بود گفته شد. یکی کد اول فایل قبل head بود که گفتم و یکی هم نوع collation ستون های فارسی که موقع ساخت جدول text در دیتابیس گفتم.
 
آخرین ویرایش:

saalek110

Well-Known Member
در سایت خود پست بزنید:

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

من کد textarea را در تاپیک گذاشتم ، یک محیط گسترده تر ایجاد می کنه برای تایپ یا paste ، میشه تعداد سطر و ستون بهش داد و رنگ پس زمینه اش را عوص گرد و شاید تنظیمات دیگر...
مثل فایل add text یک فایل بسازید به نام add post و به جدول دیتابیس به نام posts اضافه کند....
در صفحه اول سایت می توانید همراه با تزیینات زیبا ، پس های شما را نشان بدهد.
طرز خواندن و نمایش یک جدول دیتابیس را هم گفتیم قبلا.
 

saalek110

Well-Known Member
result.png

ادیتور مجهز:

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

توضیح کلی:
یک سری دکنه بالای ادیتور هست. ادیتور یک textarea است.
با زدن دکمه های بالای ادیتور ، متنی داخل ادیتور می افتد ،
موقع نمایش پست های شما در سایت ، یک کدهایی اون نوشته ها را تبدیل به علائم html می کنند.
مثلا دکمه red متن زیر را می اندازد داخل ادیتور:
HTML:
[red][/red]
شما کلیک می کنید وسط دو تا تگ و مثلا می نویسید سلام. کلمه سلام در پست شما در سایت قرمز نمایش داده میشه.

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

در عکس بالا معلوم شد من تابحال ۵۱۸ تا پست در سایت خودم زدم.در عکس بالا دکمه blue را هم می بیند و یک دکمه کنارش است که هم رنگ پشت را تعیین می کند و هم رنگ نوشته را. ترکیبی.

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

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

saalek110

Well-Known Member
jdf.php
تقویم فارسی است.
اگر نرسیدم کاربردش را بگم در گوگل سرچ کنید.
 

پیوست ها

  • jdf.zip
    4.6 کیلوبایت · بازدیدها: 0

saalek110

Well-Known Member
ساخت ادیتور:

JavaScript:
 <script type='text/javascript'>
 
function test(str){
       var tc = document.getElementById("mytextarea");
    var tclen = tc.value.length;
    tc.focus();
    if(typeof document.selection != "undefined")
    {
      document.selection.createRange().text = str; 
    }
    else
    {
      tc.value =
      tc.value.substr(0, tc.selectionStart) +
      str +
      tc.value.substring(tc.selectionStart, tclen);
    }
}

</script>

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

تابع بالا که به زبان جاوا اسکریپت است کارش پرتاب متن داخل textarea با id به نام mytextarea است.
فکر کنم قبلا کد یک textarea را گذاشتم که هم name داشت و هم id .
پس مواد لازم شما یک textarea با id به نام mytextarea است.

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

saalek110

Well-Known Member
ادامه ساخت ادیتور:
HTML:
<button type="button" style=" font-size:35px; height:55px; width:120px" onclick="test('[left][/left]')">left</button>

کد بالا داخل همون فایلی باشه که کل پست قبل بود.. کد بالا به زبان html است و یک دکمه است که دکمه را بزنی تابع جاوا اسکریپت ما به نام test را صدا می زنه و بهش اون تگهای left را پاس می دهد تا بیاندازد داخل ادیتور یا همون textarea.

شما خودتون هر قدر از این تگ ها لازم دارید از کد بالا کپی بگیرید و برای اون تگ بسازید. مثلا یک کپی از کد بالا بگیرید و به جای left داخلش right بزارید یا center

و برای رنگ red و blue و دیگر چیزها ...
 

saalek110

Well-Known Member
ادامه ساخت ادیتور:

حالا در یک فایل دیگر داریم:

PHP:
     $info['news']=str_replace("[left]","<div style='text-align: left;'>",$info['news']);
     $info['news']=str_replace("[/left]","</div>",$info['news']);

این کد به زبان php است ، با تابع str_replace که از توابع php است می آید در پست شما که رفته در دیتابیس ذخیره شده و حالا برگشته برای نمایش در سایت شما ، به جای
می ذاره :
HTML:
<div style='text-align: left;'>
و شما می دونید که عبارت بالا در html باعث ایجاد یک قسمت میشه که چپ چین است..
و به همین شکل خط دوم کد بالا ، باعث نوشتن /div میشه البته با آکلادهای دورش . که باعث میشه اون قسمت یا devision بسته بشه.... و شما در ادیتور نوشته خود را بین دو تا تگ left نوشته بودید پس می افتد در این division​
 

saalek110

Well-Known Member
ادامه ساخت ادیتور:

حالا در یک فایل دیگر داریم:

PHP:
     $info['news']=str_replace("[left]","<div style='text-align: left;'>",$info['news']);
     $info['news']=str_replace("[/left]","</div>",$info['news']);

این کد به زبان php است ، با تابع str_replace که از توابع php است می آید در پست شما که رفته در دیتابیس ذخیره شده و حالا برگشته برای نمایش در سایت شما ، به جای
می ذاره :
HTML:
<div style='text-align: left;'>
و شما می دونید که عبارت بالا در html باعث ایجاد یک قسمت میشه که چپ چین است..
و به همین شکل خط دوم کد بالا ، باعث نوشتن /div میشه البته با علامت کوچکتر و بزرگتر دورش . که باعث میشه اون قسمت یا devision بسته بشه.... و شما در ادیتور نوشته خود را بین دو تا تگ left نوشته بودید پس می افتد در این division


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

اون فایل حاوی دکمه ها و تابع پرتاب کننده جاوا اسکریپت هم فکر کنم incluspde میش قبل فرم شما. این هم کد textarea​
HTML:
    <textarea id="mytextarea""    style="font-size: 16pt" name="news" rows="25" cols="70">     </textarea>

البته textarea جزو فرم بود ، دیگه بلدید فرم html بسازید ، فقط فرقش این textarea بود... حالا بعدا فرم کاملش را میذارم ،الان در یک گوشی کوچک هستم زیاد جای مانور ندارم.
دقت کنید که textarea هم id داره و هم name ، هر کدوم برای کار خاصی است ، اون تابع جاوا اسکریپت از طریق id این textarea را می شناسد ولی وقتی فرم می خواهد پاس بدهد به php برای ذخیره در دیتابیس از صفت name استفاده میشه.
 
آخرین ویرایش:

saalek110

Well-Known Member
ادامه ساخت ادیتور:

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

PHP:
include"../tools2/my_buttons.php";
قبل ازچاپ پست هم ، فایل حاوی جایگزینی ها inclde می شوند. مثل کد بالا ، فقط اسم پوشه و اسم فایل عوض میشه.

اینکه چرا این شکلی است کد زیر:
PHP:
     $info['news']=str_replace("[/left]","</div>",$info['news']);
یعنی اون info چیه ، چون در حال حوندن پست از دیتابیس بودم info داشته


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

saalek110

Well-Known Member
فایل functions.php

PHP:
<?php



function writeMsg( $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'];
    }
return $str;

}//func


?>

فعلا یک تابع داخلش است و کارش اینه که عدد یک سطر را می دهی ، از جدول text متن اون سطر را بهت می دهد.

این فایل را در پوشه functions قرار دهید.
 
آخرین ویرایش:

saalek110

Well-Known Member
PHP:
<?php
session_start();
?>
<!DOCTYPE html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html dir="rtl">
<head>
<title>saalek110</title>

<style>
</style>


</head>
<body>
       <?php
    require "../base/ccoonn.php";
     include "../functions/functions.php";




   $str=writeMsg(2) ;
   echo $str;
 
     echo"<br>";
          echo"<br>";

       function test_input($data) {
                                                             $data = trim($data);
 $data = stripslashes($data);
     $data = htmlspecialchars($data);
 return $data;
}                                  

?>

</body>
</html>

. منظور من تست تابع writemsg بود. نتیجه اجرا نوشت خوش آمدید و همون متن ردیف دوم جدول texts دیتابیس بود.

خودتان نتیجه اجرا را در لینک زیر ببینید:


حالا یک سایت فارسی داریم

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

saalek110

Well-Known Member
PHP:
<!DOCTYPE html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html dir="rtl">
<head>
<title>saalek110</title>

<style>
</style>


</head>
<body>
       <?php
    require "base/ccoonn.php";
     include "functions/functions.php";




   $str=writeMsg(2) ;
   echo $str;
 
 

       function test_input($data) {
       $data = trim($data);
 $data = stripslashes($data);
     $data = htmlspecialchars($data);
 return $data;
}                                

?>

</body>
</html>
کد بالا را می توانید به عنوان index.php فعلا علی الحساب استفاده کنید. متن سطر دوم جدول texts دیتابیس شما را نمایش می دهد.
البته قبلش باید جدول texts را در دیتابیس بسازید و ردیف شماره ۲ درش داشته باشید.
و فایل functions.php را در پوشه functions گذاشته باشید...
و فایل کانکشن را در پوشه base گذاشته باشید.

چون این فایل از اینها استفاده می کند.
به جای saalek110 در تایتل اسم سایت خود را بنویسید.

اینکه چرا کد پست قبل را نگفتم ، چون اون فایل داخل پوشه test بود و آدرس دهی اش به پوشه های base و function با فایل index.php فرق داره ، چون اول باید از پوشه خودش بیاید بیرون بعد برود داخل پوشه های base و functions.

چرا گفتم این را به عنوان index.php قرار بدهید. چون حالا می توانید عبارات فارسی در سایت داشته باشید.
قبلا css را گفتیم ، خودتان باید css را اضافه کنید.. چون کدهای من آموزشی است و نمی خوام شلوغ بشه.
و همچنین از اون pdf آموزش html یا آموزشهای دیگر هر چی دوست دارید به سایت خود اضافه کنید.
 
آخرین ویرایش:

saalek110

Well-Known Member
این روش که عبارات فارسی را از دیتابیس بیاوریم برای نمایش روی سایت شاید اشتباه باشد...

دوستان صاحب نظر می توانند روشهای بهتر را بفرمایید.

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

------------------------------


خطا دادن را می توانید روشن کنید:



در کنترل پنل ، برود به Alter php config

طبق عکس زیر:

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

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


فکر کنم چون خط ۵۱ سمی کلون نداره ، خط ۵۲ را ادامه خط ۵۱ می دونه و خطا درش می بینه.
 
آخرین ویرایش:

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

بالا