نمایش نتایج 1 تا 4 از 4

نام تاپیک: ارسال کاراکتر فارسی با استفاده از تابع mail

  1. #1
    کاربر دائمی آواتار abbas3zaar
    تاریخ عضویت
    تیر 1388
    محل زندگی
    گیلان
    سن
    34
    پست
    312

    ارسال کاراکتر فارسی با استفاده از تابع mail

    من یه فرم تماس با ما دارم چند تا مشکل دارم:
    1 - اول اینکه حروف فارسی مینویسم و ارسال میزنم خطا میده
    2 - توی contact.php اون خط های اولش که senderName رو preg_replace کرده فکر کنم نمیزاره فارسی نوشته بشه درسته؟ اون خط رو چجوری باید بنویسم؟
    3- توی همون خط وقتی preg_replace رو پاک میکنم فارسی ارسال میشه ولی توی ایمیلم به این شکل(عکس زیر) علامت سوال نشون میده:
    photo_2019-11-05_22-06-37.jpg

    از دوستان دو تا خواهش دارم:

    4 - اولی اینکه در خصوص مورد 2 که بالا گفتم برای ایمن کردن اون input از چه تابعی باید استفاده کنم؟ htmlspecialchars یا stripslashes ؟؟؟ کدش چجوری نوشته میشه؟
    5 - در خصوص نمایش علامت سوال چیکار باید بکنم؟ منظورم کدشه. میدونم که باید utf8 ارسال بشه اما توی کد قرار دادم ولی نمیدونم درست نوشتم یا نه.

    کدهای فرم: index.php

    کد HTML:
    <div class="contact-form">
                                        <h4>فرم تماس با من</h4>
                                        <form id="contactForm" action="php/contact.php" method="post">
                                            <div class="row">
                                                <div class="col-md-8">
                                                        <textarea name="message" id="message" rows="6" placeholder="متن پیام"></textarea>
                                                </div>
                                                <div class="col-md-4">
                                                    <input type="text" name="senderName" id="senderName" placeholder="نام شما">
                                                    <input type="email" name="senderEmail" id="senderEmail" placeholder="ایمیل شما">
                                                    <input type="text" name="subject" id="subject" placeholder="موضوع پیام">
                                                    <button type="submit">ارسال پیام</button>
                                                </div>
                                                
                                            </div>
                                        </form>
                                        <div id="successMessage" class="successmessage">
                                            <p><span class="success-ico"></span> باتشکر، پیام شما با موفقیت ارسال شد.</p>
                                        </div>
                                        <div id="failureMessage" class="errormessage">
                                            <p><span class="error-ico"></span> هنگام ارسال پیام مشکلی پیش آمد. لطفا دوباره تلاش کنید.</p>
                                        </div>
                                        <div id="incompleteMessage" class="statusMessage">
                                            <p>لطفاً قبل از ارسال ، کلیه قسمتها را در فرم تکمیل کنید.</p>
                                        </div>
                                    </div>


    این هم کدهای contact.php



    <?php

    // Define some constants
    define( "RECIPIENT_NAME", "abbas" );
    define( "RECIPIENT_EMAIL", "info@domainname.ir" );
    define( "EMAIL_SUBJECT", "$subject" );

    // Read the form values
    $success = false;
    $senderName = isset( $_POST['senderName'] ) ? preg_replace( "/[^\.\-\' a-zA-Z0-9]/", "", $_POST['senderName'] ) : "";
    $senderEmail = isset( $_POST['senderEmail'] ) ? preg_replace( "/[^\.\-\_\@a-zA-Z0-9]/", "", $_POST['senderEmail'] ) : "";
    $subject = isset( $_POST['subject'] ) ? preg_replace( "/(From:|To:|BCC:|CC:|Subject:|Content-Type:)/", "", $_POST['subject'] ) : "";
    $message = isset( $_POST['message'] ) ? preg_replace( "/(From:|To:|BCC:|CC:|Subject:|Content-Type:)/", "", $_POST['message'] ) : "";

    // If all values exist, send the email
    if ( $senderName && $senderEmail && $message ) {
    $recipient = RECIPIENT_NAME . " <" . RECIPIENT_EMAIL . ">";
    $headers = "Content-type: text/html; charset=UTF-8" . "\r\n" . "MIME-Version: 1.0" . "\r\n" . "From: " . $senderName . " <" . $senderEmail . ">";


    $success = mail( $recipient, $subject , $message, $headers );
    }

    // Return an appropriate response to the browser
    if ( isset($_GET["ajax"]) ) {
    echo $success ? "success" : "error";
    } else {
    ?>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ارسال پیام</title>
    <link rel="stylesheet" href="css/pfonts.css" >
    </head>
    <body style="margin: 0; padding: 0;">
    <table border="0" cellpadding="0" cellspacing="0" width="100%" style="direction:rtl;">
    <tr>
    <td style="padding: 10px 0 30px 0;">
    <table align="center" border="0" cellpadding="0" cellspacing="0" width="400" style="border: 1px solid #cccccc; border-collapse: collapse;">
    <tr>
    <td align="center" bgcolor="#131313" style="padding: 40px 0 30px 0; color: #153643; font-size: 28px; font-weight: bold; font-family: iransans;">
    <img src="https://sitename.ir/images/amlogo.png" alt="Abbas Masrour Logo" width="300" style="display: block;" />
    </td>
    </tr>
    <tr>
    <td bgcolor="#ffffff" style="padding: 40px 30px 40px 30px;">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
    <?php if ( $success ) { echo'
    <tr>
    <td style="text-align:center; color: #153643; font-family: iransans; font-size: 24px;">
    <span style="color:#53d219;"><b>پیام شما با موفقیت ارسال شد</b></span>
    </td>
    </tr>
    <tr>
    <td style="text-align:justify; padding: 20px 0 30px 0; color: #153643; font-family: iransans; font-size: 16px; line-height: 20px;">
    با تشکر از شما کاربر عزیز، پیام شما برای من ارسال شد و در اسرع وقت پاسخگو خواهم بود. در صورت وجود هرگونه مشکل با شماره تماس داخل سایت در ارتباط باشید. موفق باشید.
    </td>
    </tr>

    '; } ?>
    <?php if ( !$success ) echo '<tr>
    <td style="text-align:center; font-family: iransans; font-size: 24px;">
    <span style="color:#f70a0a;"><b>خطایی در ارسال رخ داد!</b></span>
    </td>
    </tr>
    <tr>
    <td style="text-align:justify; padding: 20px 0 30px 0; color: #153643; font-family: iransans; font-size: 16px; line-height: 20px;">
    متاسفانه در فرایند ارسال پیام خطایی رخ داده است، لطفا مجددا تلاش کنید و در صورت وجود مشکل با شماره تلفن موجود در سایت تماس بگیرید. موفق باشید.
    </td>
    </tr>' ?>
    <tr>
    <td style="text-align:center; padding: 20px 0 30px 0; color: #153643; font-family: iransans; font-size: 16px; line-height: 20px;">
    <a href="https://sitename.ir/" style="padding: 15px 20px; background-color: #44b710; border-radius: 30px; color:#fff; text-decoration: none;">بازگشت به سایت</a>
    </td>
    </tr>

    </table>
    </td>
    </tr>

    </table>
    </td>
    </tr>
    </table>
    </body>
    </html>


    <?php
    }
    ?>



  2. #2
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: ارسال کاراکتر فارسی با استفاده از تابع mail

    متن پیام رو تغییر بده توش کارکاتر عای انگلیسی بزار ببین چی میشه
    بعضی وقتا مشکل از ایمیل نیست ... متنی که ارسال میکنی مشکل داره

  3. #3
    کاربر دائمی آواتار abbas3zaar
    تاریخ عضویت
    تیر 1388
    محل زندگی
    گیلان
    سن
    34
    پست
    312

    نقل قول: ارسال کاراکتر فارسی با استفاده از تابع mail

    نقل قول نوشته شده توسط plague مشاهده تاپیک
    متن پیام رو تغییر بده توش کارکاتر عای انگلیسی بزار ببین چی میشه
    بعضی وقتا مشکل از ایمیل نیست ... متنی که ارسال میکنی مشکل داره


    وقتی این کد رو به متغییر header اضافه کردم متن پیام فارسی شده ولی نام فرستنده و موضوع پیام علامت سواله:

    $headers = "Content-type: text/html; charset=UTF-8" . "\r\n" . "MIME-Version: 1.0" . "\r\n" . "From: " . $senderName . " <" . $senderEmail . ">";


    و اینکه همین پیامی که علامت سواله توی اپ gmail گوشیم توی webmail سایتم میرم درست نشون میده فارسی رو همون پیام رو !
    انگلیسی هم گذاشتم لای حروف فارسی.
    عکس:
    photo_2019-11-07_11-25-52.jpg
    آخرین ویرایش به وسیله abbas3zaar : پنج شنبه 16 آبان 1398 در 11:16 صبح

  4. #4

    نقل قول: ارسال کاراکتر فارسی با استفاده از تابع mail

    سلام

    کاری که شما کردید فقط برای زمانی است که email client قابلیت نمایش html خود را فعال کرده باشد در غیر اینصورت در حالت text ایمیل به درستی نمایش پیدا نمی کند.
    شما باید از utf-8 boundry استفاده کنید و متن خود را کد کنید. بجای این کار توصیه می کنم از کلاس phpmailer استفاده کنید داخل مثلاها توضیح داده چیکار کنید.

    اگر خودتان میخواهید کد کنید مثلا متن سابجکت را بصورت زیر ارسال کنید:

    $s= "=?utf-8?b?".base64_encode($s)."?=";

تاپیک های مشابه

  1. سوال: استــــفاده از تـــابع Mail()
    نوشته شده توسط KeyvanTabaei22 در بخش PHP
    پاسخ: 4
    آخرین پست: یک شنبه 11 بهمن 1394, 18:45 عصر
  2. سوال: استفاده از css در تابع mail
    نوشته شده توسط arminr2000 در بخش PHP
    پاسخ: 3
    آخرین پست: یک شنبه 20 دی 1394, 17:01 عصر
  3. پاسخ: 0
    آخرین پست: سه شنبه 08 شهریور 1390, 04:52 صبح
  4. پاسخ: 12
    آخرین پست: چهارشنبه 29 دی 1389, 11:27 صبح
  5. کمک : نحوه استفاده از تابع ()mail در php
    نوشته شده توسط blaze_px در بخش PHP
    پاسخ: 4
    آخرین پست: سه شنبه 25 بهمن 1384, 06:32 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •