/
  • رفتن به سر خط

  • صفحه‌ها (2):
  • ارسال پاسخ   امتیاز موضوع:
    • 2 رأی - میانگین امیتازات: 2.5
    • 1
    • 2
    • 3
    • 4
    • 5

    حالت موضوعی | حالت خطی رفتن به سر خط
    نویسنده پیام
    Azemati آفلاین
    عضو جدید
    **

    ارسال‌ها: 6
    تاریخ عضویت: ۱۳۸۷ اسفند ۳۰
    اعتبار: 0
    تشکرها : 3
    ( 2 تشکر در 2 ارسال )
    ارسال: #1
    رفتن به سر خط
    سلام.

    یک مشکل داشتم که امیدوارم بتونم به درستی بیانش کنم. من یک کد PHP دارم برای فرم تماس با ما ( ارسال ایمیل ) تنها مشکلم اینه که وقتی ایمیل دریافت میشه، در ایمیل دریافتی در بخشی که طرف پیامش رو نوشته (آنچه که در textarea ) نوشته همه پشت سر هم می آد. به عنوان مثال من نامه رو با اوت لوک می گیرم. در اوتلوک یک اسکرول افقی می خوره که اگه متن طرف طولانی باشه این اسکرول افقی خیلی خواهد بود. ( البته اگه طرف اینتر زده باشه می ره ابتدای خط بعد )

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

    اینم کد:

    کد PHP:
    <?PHP
    //Input Data

    $Email_Addresse "test@test.com";
    $Redirect_Page "thanks.html";
    $Subject "Comments";
    $From "Contact Form <contact@test.com>";

    //Setting /Please don't change, if you don't know PHP & HTML 
    $headers 'MIME-Version: 1.0' "\r\n";
    $headers .= 'Content-type: text/html; charset=utf-8' "\r\n";
    $headers .= "From: $From"\r\n";
    $Body "<html><head><title>Html Mail</title></head><pre>";
    //
    if (count($_POST) > 0) { $pog $_POST$method "POST"; }
    else if (
    count($_GET) > 0) { $pog $_GET$method "GET"; }
    else print 
    "Error";
    if (isset(
    $pog))
    {
        
    reset($pog);
        foreach (
    $pog as $name => $value)
        {
            
    $Body .= "<font style='font:bold 12px tahoma,sans-serif' color='#000080'>$name:</font><font style='font:normal 12px tahoma,sans-serif' color='#000000'> $value</font>" "<br>";
        }
        
    $Body .= "</pre></body></html>";
        if (
    mail($Email_Addresse,$Subject,$Body,$headers) ) {
        
    header("Location:$Redirect_Page");
        }
    }
    ?>



    عید هم پیشاپیش مبارکSmile
    (آخرین ویرایش در این ارسال: ۱۳۸۷ اسفند ۳۰ ۱۲:۲۰ عصر، توسط Azemati.)
    ۱۳۸۷ اسفند ۳۰ ۱۲:۱۹ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : Y.P.Y
    میلاد آفلاین
    برنامه نویس
    ***

    ارسال‌ها: 182
    تاریخ عضویت: ۱۳۸۷ بهمن ۲۵
    اعتبار: 2
    تشکرها : 66
    ( 136 تشکر در 74 ارسال )
    ارسال: #2
    RE: رفتن به سر خط
    سلام
    شما ایمیلتو با فرمت HTML میفرستی پس باید متنی که از Textarea میگیری قبل از ارسال به اچ تی ام ال تبدیل کنی یا در واقع کارکتر های نیو لاین را به فرمت قابل پردازش در HTML تبدیل کنی.
    شما باید از تابع nl2br برای تبدیل نیو لاین ها استفاده کنی یا ایمیلتو با فرمت تکست بفرستی.
    __________________________________________________________________________
    Two hands working can do more than a thousand clasped in prayer
    ۱۳۸۷ اسفند ۳۰ ۰۱:۲۱ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : Y.P.Y Azemati
    Azemati آفلاین
    عضو جدید
    **

    ارسال‌ها: 6
    تاریخ عضویت: ۱۳۸۷ اسفند ۳۰
    اعتبار: 0
    تشکرها : 3
    ( 2 تشکر در 2 ارسال )
    ارسال: #3
    RE: رفتن به سر خط
    (۱۳۸۷ اسفند ۳۰ ۰۱:۲۱ عصر)میلاد نوشته شده توسط:  سلام
    شما ایمیلتو با فرمت HTML میفرستی پس باید متنی که از Textarea میگیری قبل از ارسال به اچ تی ام ال تبدیل کنی یا در واقع کارکتر های نیو لاین را به فرمت قابل پردازش در HTML تبدیل کنی.
    شما باید از تابع nl2br برای تبدیل نیو لاین ها استفاده کنی یا ایمیلتو با فرمت تکست بفرستی.
    ممنونم. نه نمیخوام به صورت تکست بفرستم.

    خب میشه بگی باید چه جوری از این تابع استفاده کنم؟ اگه وقتت رو زیاد نمی گیره ممنون میشم بنویسیش.
    ۱۳۸۷ اسفند ۳۰ ۰۱:۳۵ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : Y.P.Y
    میلاد آفلاین
    برنامه نویس
    ***

    ارسال‌ها: 182
    تاریخ عضویت: ۱۳۸۷ بهمن ۲۵
    اعتبار: 2
    تشکرها : 66
    ( 136 تشکر در 74 ارسال )
    ارسال: #4
    RE: رفتن به سر خط
    به عنووان مثال فرض میکنیم اسم textarea باشه body شما کد بالا را اینجوری بنویس:
    کد PHP:
    ...
    ...
        foreach (
    $pog as $name => $value)
        {
            if(
    $name == 'body'$value nl2br($value);
            
    $Body .= "<font style='font:bold 12px tahoma,sans-serif' color='#000080'>$name:</font><font style='font:normal 12px tahoma,sans-serif' color='#000000'> $value</font>" "<br>";
        }
    ...
    ... 
    __________________________________________________________________________
    Two hands working can do more than a thousand clasped in prayer
    ۱۳۸۷ اسفند ۳۰ ۰۲:۱۸ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط : Y.P.Y Azemati
    parsig آفلاین
    عضو مهم
    ****

    ارسال‌ها: 280
    تاریخ عضویت: ۱۳۸۷ دي ۳۰
    اعتبار: 5
    تشکرها : 146
    ( 259 تشکر در 144 ارسال )
    ارسال: #5
    RE: رفتن به سر خط
    یه راه خوشگل تر هم فکر کنم باشه
    اینکه در textarea از TinyMCE استفاده کنی
    هم فرم ارسال شیک تر و زیبا تر می شه هم این مشکل حل می شه !
    __________________________________________________________________________
    [تصویر:  logo-small.jpg]
    ۱۳۸۷ اسفند ۳۰ ۱۰:۳۴ عصر
    یافتن ارسال‌ها WWW پاسخ با نقل قول
     تشکر شده توسط :
    Azemati آفلاین
    عضو جدید
    **

    ارسال‌ها: 6
    تاریخ عضویت: ۱۳۸۷ اسفند ۳۰
    اعتبار: 0
    تشکرها : 3
    ( 2 تشکر در 2 ارسال )
    ارسال: #6
    RE: رفتن به سر خط
    (۱۳۸۷ اسفند ۳۰ ۰۲:۱۸ عصر)میلاد نوشته شده توسط:  به عنووان مثال فرض میکنیم اسم textarea باشه body شما کد بالا را اینجوری بنویس:
    کد PHP:
    ...
    ...
        foreach (
    $pog as $name => $value)
        {
            if(
    $name == 'body'$value nl2br($value);
            
    $Body .= "<font style='font:bold 12px tahoma,sans-serif' color='#000080'>$name:</font><font style='font:normal 12px tahoma,sans-serif' color='#000000'> $value</font>" "<br>";
        }
    ...
    ... 
    ممنونم از پاسخ.

    انجام دادم ولی هیچ تغییری نکرد. در واقع فقط این خط کد رو اضافه کردم و اسم textarea رو به body تغییر دادم ولی اثر نکرد.

    کد PHP:
    if($name == 'body'$value nl2br($value); 

    چرا؟
    ۱۳۸۸ فروردين ۵ ۱۱:۴۱ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    Azemati آفلاین
    عضو جدید
    **

    ارسال‌ها: 6
    تاریخ عضویت: ۱۳۸۷ اسفند ۳۰
    اعتبار: 0
    تشکرها : 3
    ( 2 تشکر در 2 ارسال )
    ارسال: #7
    RE: رفتن به سر خط
    ممنون میشم دوستان راهنمایی کنند.
    ۱۳۸۸ فروردين ۱۰ ۰۴:۰۱ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    admin آفلاین
    وحید سهرابلو
    **********

    ارسال‌ها: 5,734
    تاریخ عضویت: ۱۳۸۷ آذر ۲۴
    اعتبار: 100
    تشکرها : 1362
    ( 6197 تشکر در 3438 ارسال )
    ارسال: #8
    RE: رفتن به سر خط
    if رو بردار و فقط این رو اضافه کن
    کد PHP:
    $value nl2br($value); 
    ۱۳۸۸ فروردين ۱۰ ۰۴:۰۸ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط : Azemati
    Azemati آفلاین
    عضو جدید
    **

    ارسال‌ها: 6
    تاریخ عضویت: ۱۳۸۷ اسفند ۳۰
    اعتبار: 0
    تشکرها : 3
    ( 2 تشکر در 2 ارسال )
    ارسال: #9
    RE: رفتن به سر خط
    به این صورت عمل کردم ولی فرقی نکرد و مشکل همچنان باقی است:

    کد PHP:
        {
        
    $value nl2br($value);
            
    $Body .= "<font style='font:bold 12px tahoma,sans-serif' color='#004A00'>$name:</font><font style='font:normal 12px tahoma,sans-serif' color='#000000'> $value</font>" "<br>";
        } 
    ۱۳۸۸ فروردين ۱۰ ۰۴:۲۱ عصر
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    Azemati آفلاین
    عضو جدید
    **

    ارسال‌ها: 6
    تاریخ عضویت: ۱۳۸۷ اسفند ۳۰
    اعتبار: 0
    تشکرها : 3
    ( 2 تشکر در 2 ارسال )
    ارسال: #10
    RE: رفتن به سر خط
    شرمنده ... خبری نیست از جواب؟
    ۱۳۸۸ فروردين ۳۰ ۰۸:۵۹ صبح
    یافتن ارسال‌ها پاسخ با نقل قول
     تشکر شده توسط :
    « قدیمی تر | تازه‌ تر »

  • صفحه‌ها (2):
  • ارسال پاسخ
    پرش به انجمن:


    کاربرانِ درحال بازدید از این موضوع: 1 مهمان
    IranPHP.org | تماس با ما | بازگشت به بالا | بازگشت به محتوا | بایگانی | پیوند سایتی RSS