رفتن به مطلب

rezaonline

عضو سایت
  • تعداد ارسال‌ها

    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. باید بگم جز چند سلکتور ساده ، وردپرس به هیچ عنوان شما رو مجبور به استفاده از سلکتورهای از پیش تعیین شده در کامپوننت های جوملا نمیکنه .

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

    بر خلاف جوملا .

    • امتیاز 2
  3. شما میخواید وقتی طول کاراکتر عنوانتون بیشتر بود فونت رو کوچیک کنید درسته ؟

    با پی اچ پی میشه .

    با تابع strlen میشه تعداد کاراکترها رو گرفت .

    یه تابع مینویسم برات


    function _the_title($str)
    {
    if(strlen($str) > 100)
    return "<span style='font-size:8pt'>{$str}</span>";
    return $str;
    }

    اگه طول کاراکتر بیشتر از 100 تا بود ، فونت رو 8pt میکنه در غیر اینصورت هیچ تغییری نمیده .

    • امتیاز 7
  4. اتفاقاً قالبتون خیلی خوشکله .

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

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

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


    div
    {
    border-radius:4px;
    }

    • امتیاز 3
  5. هم بخاطر پشتیبانی از سیستم مدیریت محتوا که خودت داری انجامش میدی.

    شما لطف دارید .

    اما فکر کنم شما بنده رو با آقای رضا شهرخیان برنامه نویس این سیستم اشتباه گرفتید .

    بنده فقط توی اون انجمن یه عضو ساده و ساکت هستم و فقط پیشرفت پروژه رو نگاه میکنم .

    • امتیاز 2
  6. فایل هایی مثل error_log که ممکن است حجم زیادی داشته باشند را حذف کنید

    ارور لاگ یعنی چی؟

    بک آپ حتما باید دانلود شه من حجم اطلاعات خیلی زیاده چکار باید بکنم؟

    ببینید در کل شما دو نوع بک آپ نیاز دارید .

    یکیش فایلهاتون ، و یکی دیگه اش دیتابیس .

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

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

    * اسکریپت اولی رو یه بار نوشتم گذاشتم توی انجمن یه چرخی بزن ببین میتونی پیداش کنی با cornjob بود و smtp

    • امتیاز 5
  7. این الان کژتابی داره .

    نه خدایی این یکی تشکر لازم داشت

    این جمله ات کدوم؟

    نه! خدایی این یکی تشکر لازم داشت؟

    نه خدایی! این یکی تشکر لازم داشت .

    نه ! خدایی این یکی تشکر لازم داشت !

    :blink:

    • امتیاز 1
  8. ایمن سازی داده ها (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 تا برسه :D

    اما گاهی لازمه عددهایی با طول بیشتر رو ایمن کنید من یه تابع نوشتم با 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
  9. فکر نکنم بتونی قبل از ذخیره سازی توی دیتابیس تغییرش بدی ! چون باید دست ببری توی سورس وردپرس !

    البته اگه با جاوااسکریپت در حالیکه کاربر داره تایپ میکنه اون تغییرات رو بدی میشه ، در کل میشه بگی واسه چی میخوای !

    شاید راه حل بهتری هم باشه .

    • امتیاز 2
  10. بعد از ارسال منظورتون اینه که مثلاً توی دیتابیس 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
  11. دوست عزیز ماهیت صفحه رو میخواید ؟

    این آدرس دهی رو میخواید؟

    میخواید چیکار کنید؟

    شما یه فایل 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/

    همونجا یه نیگا مینداختی دو تا چسبان بالا هست نوشته آموزش زبان برنامه نویسی پی اچ پی

    :angry:

    • امتیاز 5
  12. با هزار و یک روش میشه .

    روش اول ، دی ان اسهاشو تغییر بده به دی ان اس های دامین خودت بعد از طریق cpanel دامین رو پارک کن روی دامین خودت.

    روش دوم از طریق php

    یه index.php توی روت اون آدرس بذار اینو توش بنویس


    <?php
    header('Location: http://rezaonline.net');

    روش سوم با html

    روش چهارم با javascript

    روش پنجم با htaccess

    • امتیاز 2
  13. این نوع لینک ها کوئری استرینگ دارند


    [b]http://mihanfile.ir[color=#ff0000]/do.php?id=34[/color][/b]

    اگه یه خورده آموزش آقا مرتضی را میخوندی متوجه میشدی که برای استفاده از متغیرهای پاس شده به این فایل do.php

    فقط کافیه توی خود فایل از آرایه $_GET استفاده کنی .


    echo $_GET['id']

    به چه دری میخوره

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

    مثلاً شناسه یک مطلب رو بگیرید اون مطلب رو نشون بدید .

    البته لازمه بگم استفاده از کوئری استرینگ ، سئو رو میاره پائین ، به همین دلیل با استفاده از mod_rewrite آپاچی و فایل htaccess لینک های استاتیک رو میسازن که در عمل پارامتر ها رو بصورت گوئری استرینگ میفرسته ! (گیج میشی زیاد توجه نکن ^_^ )

    خلاصه اینکه اگه یک کاربر وردپرسی هستی بدون نیاز به دانستن این گونه موارد میتونی از وردپرس استفاده کنی !

    اگرم میخوای یاد بگیری برنامه نویسی پی اچ پی رو آقا مرتضی مفصل توضیح دادند و انصافاً خوب توضیح دادند .

    (بخش آموزش پی اچ پی برید)

    موفق باشید

    • امتیاز 4
  14. الان شما افزونه میخواید یا خودتون مینویسید؟

    اگه میخواید خودتون بنویسید یه جدول باید به دیتابیس اضافه کنید ، و اطلاعات رو فاکتور کنی توش ، پرداخت انجام شده و انجام نشده رو هم توی دیتابیس درج کنی !

    (مشکلی که اکثراً رعایت نمیکنن در صورت پرداخت و جه و بازگشت به سایت دوباره مروگر رو رفرش کنید تا پارامتر ها دوباره ارسال بشه ، چند بار اینکارو انجام بدید با اعتبار سنجی که از بانک انجام میشه هر بار این مبلغ تاثیر داده میشه ! یعنی 1000 تومن پرداخت کنید 10 بار بزنید 10000 تومن حساب میشه :P راه حلشم استفاده حتمی از دیتابیس هست . و وجود یک فیلد برای تعیین وضعیت پرداخت!)

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

    نکته ی دیگه یه مدت زمان در نظر بگیرید ، اگر از زمان درخواست 1 ساعت بیشتر گذشته باشه درخواست رو پوچ کنید .

    آی پی و آیجنت یوزر هم جهت اطمینان ذخیره کنید .

    امیدوارم پرداختی امن رو تجربه کنید .

    • امتیاز 1
×
×
  • اضافه کردن...