-
تعداد ارسالها
926 -
تاریخ عضویت
-
آخرین بازدید
-
روز های برد
1
نوشتهها ارسال شده توسط rezaonline
-
-
کنترل پنلتون چیه؟
- 1
-
<?php get_header(); ?>
<div class="inner">
<div class="container">
<div class="main">
<?php the_breadcrumb(); ?>
<?php
$counter = 0;
if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
<?php
$counter++;
if($counter ==1):
?>
<div class="author_box">
<?php echo get_avatar( get_the_author_meta( 'user_email' ), '67' ); ?>
<div class="author_details">
<h5 class="author_name"><?php the_author_posts_link(); ?></h5>
<h5 class="author_title">
<?php
if(function_exists(icl_register_string)) {
icl_register_string('author', 'title', the_author_meta('title'));
echo icl_t('author', 'title', the_author_meta('title'));
} else {
echo get_the_author_meta('title');
}
?>
</h5>
<p>
<?php
if(function_exists(icl_register_string)) {
icl_register_string('author', 'description', the_author_meta('description'));
echo icl_t('author', 'description', the_author_meta('description'));
} else {
echo the_author_meta('description');
}
?>
</p>
</div> <!--Author Details-->
<div class="author_info">
<span class="num_of_entry"><?php _e('Number of Entries', 'theme'); ?> :
<?php
global $post;
$author_id=$post->post_author;
$post_author = $author_id; //author id
$count = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->posts WHERE post_author = $post_author AND post_type IN ('post') and post_status = 'publish'" );
echo $count;
?>
</span>
<div class="author_connect">
<?php if ( get_the_author_meta('linkedin')) { ?>
<a href="<?php echo get_the_author_meta('linkedin'); ?>"><img src="<?php echo MOM_IMG; ?>/icons/linkedin.png" alt=""></a>
<?php } ?>
<?php if ( get_the_author_meta('facebook')) { ?>
<a href="<?php echo get_the_author_meta('facebook'); ?>"><img src="<?php echo MOM_IMG; ?>/icons/facebook.png" alt=""></a>
<?php } ?>
<?php if ( get_the_author_meta('twitter')) { ?>
<a href="http://twitter.com/<?php echo get_the_author_meta('twitter'); ?>"><img src="<?php echo MOM_IMG; ?>/icons/twitter.png" alt=""></a>
<?php } ?>
<?php if ( get_the_author_meta('gplus')) { ?>
<a href="<?php echo get_the_author_meta('gplus'); ?>"><img src="<?php echo MOM_IMG; ?>/icons/gplus.png" alt=""></a>
<?php } ?>
</div>
</div> <!--Author Info-->
</div> <!--Author Box-->
<?php endif;?>
<?php cat_article(); ?>
<?php endwhile; ?>
<?php else: ?>
<!-- Else in here -->
<?php endif; ?>
<?php mom_pagination(); ?>
<?php wp_reset_query(); ?>
</div> <!--End Main-->
<?php get_sidebar(); ?>
</div> <!--End Container-->
<?php get_footer(); ?>- 3
-
باید بگم جز چند سلکتور ساده ، وردپرس به هیچ عنوان شما رو مجبور به استفاده از سلکتورهای از پیش تعیین شده در کامپوننت های جوملا نمیکنه .
شما به راحتی میتونی هر جوری قالبت رو بنویسی و با وردپرس ستش کنی .
بر خلاف جوملا .
- 2
-
شما میخواید وقتی طول کاراکتر عنوانتون بیشتر بود فونت رو کوچیک کنید درسته ؟
با پی اچ پی میشه .
با تابع strlen میشه تعداد کاراکترها رو گرفت .
یه تابع مینویسم برات
function _the_title($str)
{
if(strlen($str) > 100)
return "<span style='font-size:8pt'>{$str}</span>";
return $str;
}اگه طول کاراکتر بیشتر از 100 تا بود ، فونت رو 8pt میکنه در غیر اینصورت هیچ تغییری نمیده .
- 7
-
اتفاقاً قالبتون خیلی خوشکله .
اکنون متد جدید طراحی ، سادگی و یویزفرندلی بودن هست .
نیاز نیست ، یک قالب شلوغ داشته باشید و کاربران رو سر در گم کنید .
برای یه سری تغییر میتونید از گرد کردن گوشه ها استفاده کنید .
div
{
border-radius:4px;
}- 3
-
-
فایل هایی مثل error_log که ممکن است حجم زیادی داشته باشند را حذف کنید
ارور لاگ یعنی چی؟
بک آپ حتما باید دانلود شه من حجم اطلاعات خیلی زیاده چکار باید بکنم؟ببینید در کل شما دو نوع بک آپ نیاز دارید .
یکیش فایلهاتون ، و یکی دیگه اش دیتابیس .
واسه دیتابیس که حجمش معمولاً زیر 10 مگ هست میتونید بصورت خودکار به ایمیلتون در یک بازه زمانی ارسال بشه ، مثلاً من هفته ای دو بار .
برای فایلها هم میتونید از سرویس های رایگان توی اینترنت استفاده کنید .
* اسکریپت اولی رو یه بار نوشتم گذاشتم توی انجمن یه چرخی بزن ببین میتونی پیداش کنی با cornjob بود و smtp
- 5
-
-
ایمن سازی داده ها (escape)
بعد از مبحث اعتبار سنجی که آقا مرتضی زحمتش رو کشیدن ، میرسیم به بحث ایمن سازی داده ها .
در واقع در قسمت هایی از برنامه ما نیاز داریم یک سری اطلاعات از کاربر بگیرید ، و برای ذخیره سازی در دیتابیس اون رو ایمن کنیم .
1 . داده های عددی .
فرض کنید شما یک فیلد قیمت دارید که کاربر باید یه مبلغ رو به عدد وارد کنه ، شاید کاربر بازیگشون ، به جای عدد اسم خودش رو بنویسه یا شaاید بخواید با توجه به شناسه یک پست اونو از دیتابیس واکشی کنید .
داده های عددی رو به راحتی میشه با تابع intval ایمن کرد .
$str = 'reza1';
echo intval($str); // out : 1
$str = '1.reza';
echo intval($str); // out : 1
$str = '12366554deed';
echo intval($str); // out : 12366554
$str = '-091.reza';
echo intval($str); // out : -91
$str = '-1.reza';
echo intval($str); // out : -1
$str = '1.5669885.55';
echo intval($str); // out : 1.5669885تنها مشکلی که این تابع داره نمیتونه داده هایی با طول بیشتر از 10 رو ایمن کنه و به جاش NULL برمیگردونه .
البته فکر نکنم حالا حالا ها تعداد مطالب شما به 9999999999 تا برسه
اما گاهی لازمه عددهایی با طول بیشتر رو ایمن کنید من یه تابع نوشتم با preg_replace این کارو میکنه
function big_intval($str ='')
{
$str = preg_replace('@([^0-9])@','',$str);
$str = ltrim($str,0);
if(empty($str))
$str = 0;
return $str;
}
# example
$str = 'reza1';
echo big_intval($str); // out : 1
$str = '1.reza';
echo big_intval($str); // out : 1
$str = '12366554deed';
echo big_intval($str); // out : 12366554
$str = '-091.reza';
echo big_intval($str); // out : 91
$str = '-1.reza';
echo big_intval($str); // out : 1
$str = '1.5669885.55';
echo big_intval($str); // out : 1566988555
$str = '123_ss__.._456__ss_589s145s98ss.485698s4r55f';
echo big_intval($str); // out : 12345658914598485698455این تابع با تابع بالایی اندکی تفاوت داره .
این تابع اعداد اعشاری رو برنمیگردونه ، اعداد منفی رو برنمیگردونه ، یعنی در حقیقت تمام خروجی این تابع تمام عددهایی است که در رشته استفاده شده بصورت مثبت .
این تابع رو میتونید برای مثلاً مبالغ استفاده کنید .
2. داده های رشته ای
داده های رشته ای به عباراتی غیر از عدد گفته میشوند .
داده های رشته ای میتونن دستورات html باشن و ...
گاهی وقتها نیاز هست که اسپیس اضافی جلو و عقب رشته رو حذف کنیم ، مثلاً یک فید دیتابیس از نوع varchar 20 هست اینجوری کاربری که اسپیس میزنه باعث میشه سر این فیلد خطا بده .
خب راه حل استفاده از تابع trim هست .
$str = ' reza ';
echo trim($str) ; //out : reza
echo ltrim($str) ; //out: reza |
echo rtrim($str) ; //out : rezaگاهی اوقات نیاز هست تمام تگ های جاوا اسکریپت و html رو حذف کنید جهت جلوگیری از هک XSS راه حل استفاده از تابع strip_tags هست .
$str = '<a href="">salam</a>';
echo strip_tags($str); // out:salam
$str = '<script>alert("XSS !")</script>';
echo strip_tags($str); // out: XSS
$str = '<span class="test">reza';
echo strip_tags($str); // out: reza
$str = '<style>.test{display:block}</style><div class=test>reza</div>';
echo strip_tags($str); // out: rezaگاهی اوقات نیاز هست تمامی آنچه در رشته هست در دیتابیس دخیره شود ، چه html , css , ... اما بصورتی که بعد از فراخوانی ، نمایشی باشد .
مثلاً به جای <strong>salam</strong> بنویسد <strong>salam</strong> یعنی یک رشته امن از نظر html و css و javascript
راه حل استفاده از تابع htmlspecialchars است .
$str = '<script>alert("XSS!");</script>';
echo htmlspecialchars($html, ENT_QUOTES); //out : <script>alert("XSS!");</script>
$str = '<style>*{display:none}</style>';
echo htmlspecialchars($html, ENT_QUOTES); //out : <style>*{display:none}</style>
$str = "<div style='font-size:40px'>BIG</div>";
echo htmlspecialchars($html, ENT_QUOTES); //out : <div style='font-size:40px'>BIG</div>البته شما میتوانید از توابع کاملتری استفاده کنید مثلاً str_replace , preg_replace که یک پترن عبارت باقاعده ایجاد میکنید ، رشته هایی که شامل شدند عبور داده میشوند و رشته های غیره حذف میشوند .
مثلاً یک پترن ساده برای گرفتن فقط حروف کوچک لاتین a تا z
$str = 'reza رضا';
echo preg_replace('/[^a-z]+/','',$str); //out : reza* لازم به ذکر است برای ذخیره سازی این رشته ها در دیتابیس باید از توابع escape مخصوص آن درایور دیتابیس استفاده کرد که در مبحث دیتابیس MySQL به آن اشاره شده/میشود .
- 9
-
- Morteza, Parsa, Saeed Fard و 2 فرد دیگر تشکر کرده اند
من بیام اینجا عطسه کنم ، شما تشکر میزنید
آبروم رفت
- Morteza, Parsa, Saeed Fard و 2 فرد دیگر تشکر کرده اند
-
-
خب چه عیبی داره بذار توی دیتابیس ذخیره بشه .
وقتی که نشون داده میشه خودت تغییرش بده . (با استفاده از اون دستور)
برادران محترم قیلترچی که به دیتابیس دسترسی ندارن ! (حتی بعید میدونم اسکنری چیزی داشته باشن )
- 2
-
وردپرس این روزا خوب تا نمیکنه !
# تو یه فکرایی ام .
- 1
-
فکر نکنم بتونی قبل از ذخیره سازی توی دیتابیس تغییرش بدی ! چون باید دست ببری توی سورس وردپرس !
البته اگه با جاوااسکریپت در حالیکه کاربر داره تایپ میکنه اون تغییرات رو بدی میشه ، در کل میشه بگی واسه چی میخوای !
شاید راه حل بهتری هم باشه .
- 2
-
بعد از ارسال منظورتون اینه که مثلاً توی دیتابیس reza ذخیره بشه اما شما "رضا" نشون بدید؟
اگه اینجوره با یه فیلتر جیگولی میشه
اینو الان نوشتم توی فانکشن قالب بذار ببین کار میکنه
add_filter('the_content','reza_replacer');
function reza_replacer($str)
{
$str = str_replace('reza','رضا',$str);
//$str = str_replace('reza2','رضا2',$str);
return $str;
}- 3
-
دوستان خیلی توضیح دادن و راه حل صحیح رو گفتن اما شما گوش نمیدی .
بهرحال کل محتوای این فایل رو حذف کن و اون دستورات رو توش بنویس .
- 3
-
نه!
مگه راه دیگه ای هم داره؟
-
خب چرا در اختیار عموم قرار نمیدین که دیگران هم بهره ببرند؟
بعضی وقتها آدم باید یه چیزی رو فقط واسه خودش داشته باشه
اما چون واسه کسی نوشتم ، نمیتونم جزئیاتش رو بگمبا pop3 میگیری درسته؟
- 1
-
توضیحاتتون رو کامل بگید .
- 1
-
فرض آدرس سایت دوستتون example.ir هست .
اینو توی یک فایل .htaccess بذارید که توی public_html اون سایت هست .
- 5
-
دوست عزیز ماهیت صفحه رو میخواید ؟
این آدرس دهی رو میخواید؟
میخواید چیکار کنید؟
شما یه فایل do.php توی هاستت بساز و توش اینو بنویس
<?php
echo $_GET['id'] ;حالا به آدرس mysite.ir/do.php?id=123 برو!
میبینی که مینویسه 123
برای حالت دوم هم یه تابع بود اولین کلید آرایه رو برمیگردوند یادم نیست ولی اینجوریهم میشه
یه صفحه بساز page.php
این دستورات رو توش بذار
<?php
function _GET()
{
if(empty($_GET))
return NULL;
foreach($_GET as $get_key=>$get_val)
{
return $get_key;
break;
}
}
// show get
echo _GET();بعد به آدرس mysite.ir/page.php?123456
برو میبینی که نوشته 123456
تا اینجاشو بهت گفتم .
بقیه شو برو زحمت بکش یه چند روز اون تاپیک ها رو بخون .
اگه میشه آدرس صفحه ی یاد بگیری برنامه نویسی پی اچ پی رو آقا مرتضی رو قرار دهیدمیدونی چیه؟ شما خودت کجا تاپیک دادی؟
http://forum.wp-parsi.com/forum/37-php/
همونجا یه نیگا مینداختی دو تا چسبان بالا هست نوشته آموزش زبان برنامه نویسی پی اچ پی
- 5
-
با هزار و یک روش میشه .
روش اول ، دی ان اسهاشو تغییر بده به دی ان اس های دامین خودت بعد از طریق cpanel دامین رو پارک کن روی دامین خودت.
روش دوم از طریق php
یه index.php توی روت اون آدرس بذار اینو توش بنویس
<?php
header('Location: http://rezaonline.net');روش سوم با html
روش چهارم با javascript
روش پنجم با htaccess
- 2
-
این نوع لینک ها کوئری استرینگ دارند
[b]http://mihanfile.ir[color=#ff0000]/do.php?id=34[/color][/b]اگه یه خورده آموزش آقا مرتضی را میخوندی متوجه میشدی که برای استفاده از متغیرهای پاس شده به این فایل do.php
فقط کافیه توی خود فایل از آرایه $_GET استفاده کنی .
echo $_GET['id']به چه دری میخورهدردش اینه که شما یک ورودی از کاربر میگیرید و میتونید با استفاده از این ورودی یه سری عملیات انجام بدید .
مثلاً شناسه یک مطلب رو بگیرید اون مطلب رو نشون بدید .
البته لازمه بگم استفاده از کوئری استرینگ ، سئو رو میاره پائین ، به همین دلیل با استفاده از mod_rewrite آپاچی و فایل htaccess لینک های استاتیک رو میسازن که در عمل پارامتر ها رو بصورت گوئری استرینگ میفرسته ! (گیج میشی زیاد توجه نکن )
خلاصه اینکه اگه یک کاربر وردپرسی هستی بدون نیاز به دانستن این گونه موارد میتونی از وردپرس استفاده کنی !
اگرم میخوای یاد بگیری برنامه نویسی پی اچ پی رو آقا مرتضی مفصل توضیح دادند و انصافاً خوب توضیح دادند .
(بخش آموزش پی اچ پی برید)
موفق باشید
- 4
-
الان شما افزونه میخواید یا خودتون مینویسید؟
اگه میخواید خودتون بنویسید یه جدول باید به دیتابیس اضافه کنید ، و اطلاعات رو فاکتور کنی توش ، پرداخت انجام شده و انجام نشده رو هم توی دیتابیس درج کنی !
(مشکلی که اکثراً رعایت نمیکنن در صورت پرداخت و جه و بازگشت به سایت دوباره مروگر رو رفرش کنید تا پارامتر ها دوباره ارسال بشه ، چند بار اینکارو انجام بدید با اعتبار سنجی که از بانک انجام میشه هر بار این مبلغ تاثیر داده میشه ! یعنی 1000 تومن پرداخت کنید 10 بار بزنید 10000 تومن حساب میشه راه حلشم استفاده حتمی از دیتابیس هست . و وجود یک فیلد برای تعیین وضعیت پرداخت!)
یه رشته رندم غیر تکرار هم به بانک پاس بدید و از برگشنش رو بگیرید و چک کنید برای امنیت بیشتر ، با استفاده از این کد ، select رو انجام بدید بعد بقیه پارامترها رو بسنجید .
نکته ی دیگه یه مدت زمان در نظر بگیرید ، اگر از زمان درخواست 1 ساعت بیشتر گذشته باشه درخواست رو پوچ کنید .
آی پی و آیجنت یوزر هم جهت اطمینان ذخیره کنید .
امیدوارم پرداختی امن رو تجربه کنید .
- 1
مشکل آپلود بعد از رفتن روی سرور مجازی
در مشکلات دیگر
ارسال شده در
اگر سیستمتون centos باشه احتمال داره از همون باشه .
کلاً kloxo با centos مشکل داره .
یک باگ هم داره که هنوز رفع نکردن روی centos .
حالا سیستموتون چیه؟