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

مشکل رفتن به سر خط

Azemati

کاربر فعال
کاربر قدیمی پرشین تولز
تاریخ عضویت
18 فوریه 2003
نوشته‌ها
3,366
لایک‌ها
4
محل سکونت
wp-config.php
سلام.

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

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

اینم کد:

PHP:
<?PHP
//Input Data

$Email_Addresse = "[email protected]";
$Redirect_Page = "thanks.html";
$Subject = "Comments";
$From = "Contact Form <[email protected]>";

//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");
    }
}
?>

ممنونم
 

hosseintdk775

کاربر تازه وارد
تاریخ عضویت
8 ژوئن 2007
نوشته‌ها
461
لایک‌ها
3
محل سکونت
http://www.rastgo.com htp://www.rastgo.net ww
بسم الله الرحمن الرحیم
سلام
اینو امتحان کنید ببینید جواب می گیرید:

PHP:
<?PHP
//Input Data

$Email_Addresse = "[email protected]";
$Redirect_Page = "thanks.html";
$Subject = "Comments";
$From = "Contact Form <[email protected]>";

//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'>" . wordwrap($value, 60, "\n") ."</font>" . "<br>";
    }
    $Body .= "</pre></body></html>";
    if (mail($Email_Addresse,$Subject,$Body,$headers) ) {
    header("Location:$Redirect_Page");
    }
}
?>
 

Azemati

کاربر فعال
کاربر قدیمی پرشین تولز
تاریخ عضویت
18 فوریه 2003
نوشته‌ها
3,366
لایک‌ها
4
محل سکونت
wp-config.php
سلام. ممنونم. تست کردم، منتهی به این صورت شد که خودش هر چند کلمه به چند کلمه به خط پایین می رفت. این طور نبود که هر جایی که بیننده اینتر زده باشه و به خط بعد رفته باشه، بره به خط بعد. خودش چند کلمه به چند کلمه می رفت خط بعد. چاره چیه؟
 

ODE112

کاربر قدیمی پرشین تولز
تاریخ عضویت
24 مارس 2006
نوشته‌ها
1,400
لایک‌ها
1,288
محل سکونت
aquarium
سلام. ممنونم. تست کردم، منتهی به این صورت شد که خودش هر چند کلمه به چند کلمه به خط پایین می رفت. این طور نبود که هر جایی که بیننده اینتر زده باشه و به خط بعد رفته باشه، بره به خط بعد. خودش چند کلمه به چند کلمه می رفت خط بعد. چاره چیه؟
این چی؟

PHP:
<?PHP
//Input Data

$Email_Addresse = "[email protected]";
$Redirect_Page = "thanks.html";
$Subject = "Comments";
$From = "Contact Form <[email protected]>";

//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'> ".nl2br($value)."</font>" . "<br>";
    }
    $Body .= "</pre></body></html>";
    if (mail($Email_Addresse,$Subject,$Body,$headers) ) {
    header("Location:$Redirect_Page");
    }
}
?>
 

میلاد

کاربر فعال
کاربر فعال
تاریخ عضویت
7 ژوئن 2005
نوشته‌ها
1,810
لایک‌ها
4
سن
38
محل سکونت
Esfahan
سلام
یه نمونه از متن امیل خروجی را بزار.
 

hosseintdk775

کاربر تازه وارد
تاریخ عضویت
8 ژوئن 2007
نوشته‌ها
461
لایک‌ها
3
محل سکونت
http://www.rastgo.com htp://www.rastgo.net ww
بسم الله الرحمن الرحیم
سلام
با nl2br نباید مشکلی باشه / با nl2br و حتی بدون nl2br کد بدون مشکل اجرا می شود ( نمایش Enter های کاربر )

خوب شما از <pre> هم استفاده بکنید / ببینید چه نتیجه ای می گیرید.

به جای :

PHP:
        $Body .= "<font style='font:bold 12px tahoma,sans-serif' color='#000080'>$name:</font><font style='font:normal 12px tahoma,sans-serif' color='#000000'> ".nl2br($value)."</font>" . "<br>";

از این استفاده کنید:
PHP:
       $Body .= "<font style='font:bold 12px tahoma,sans-serif' color='#000080'>$name:</font><font style='font:normal 12px tahoma,sans-serif' color='#000000'> <pre>". wordwrap($value, 90) ."</pre></font>" . "<br>";
 

Azemati

کاربر فعال
کاربر قدیمی پرشین تولز
تاریخ عضویت
18 فوریه 2003
نوشته‌ها
3,366
لایک‌ها
4
محل سکونت
wp-config.php
سلام
یه نمونه از متن امیل خروجی را بزار.
سلام. متن ایمیل خروجی که معمولیه. منتهی همه در یک خط هستند. یعنی اسکرول افقی می خوره. اگه نیاز هست اسکرین شات بگیرم بذارم، چون خود متنش که معمولیه.
 

Azemati

کاربر فعال
کاربر قدیمی پرشین تولز
تاریخ عضویت
18 فوریه 2003
نوشته‌ها
3,366
لایک‌ها
4
محل سکونت
wp-config.php
بسم الله الرحمن الرحیم
سلام
با nl2br نباید مشکلی باشه / با nl2br و حتی بدون nl2br کد بدون مشکل اجرا می شود ( نمایش Enter های کاربر )

خوب شما از <pre> هم استفاده بکنید / ببینید چه نتیجه ای می گیرید.

به جای :

PHP:
        $Body .= "<font style='font:bold 12px tahoma,sans-serif' color='#000080'>$name:</font><font style='font:normal 12px tahoma,sans-serif' color='#000000'> ".nl2br($value)."</font>" . "<br>";

از این استفاده کنید:
PHP:
       $Body .= "<font style='font:bold 12px tahoma,sans-serif' color='#000080'>$name:</font><font style='font:normal 12px tahoma,sans-serif' color='#000000'> <pre>". wordwrap($value, 90) ."</pre></font>" . "<br>";
ممنون. من در کدی که شما در پست اول گذاشته بودید، این تغییر را اعمال کردم. ولی نتیجه فرقی نکرد. اگه دقت کنید من در خط 13 خودم از <pre> استفاده کرده بودم. این هم نتیجه اش:



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

hosseintdk775

کاربر تازه وارد
تاریخ عضویت
8 ژوئن 2007
نوشته‌ها
461
لایک‌ها
3
محل سکونت
http://www.rastgo.com htp://www.rastgo.net ww
بسم الله الرحمن الرحیم
سلام
خوب شما یکاری بکنید:
تمام این pre ها رو حذف بکنید و از nl2br ( که دوستان هم فرمودند ) استفاده بکنید. / ببینید نتیجه چه می شود.

===

یک مشکل هم در کدتون دیدم:
در خط زیر:
PHP:
$Body = "<html><head><title>Html Mail</title></head><pre>";

شما قبل از <pre> باید <body> رو قرار بدید که در اینجا قرار ندادید /
 

Azemati

کاربر فعال
کاربر قدیمی پرشین تولز
تاریخ عضویت
18 فوریه 2003
نوشته‌ها
3,366
لایک‌ها
4
محل سکونت
wp-config.php
امکانش هست کد اصلاح شده رو ( با حذف pre ) و استفاده از nl2br قرار بدین؟ چون نمیدونم از nl2br چطور باید استفاده کرد.
 

hosseintdk775

کاربر تازه وارد
تاریخ عضویت
8 ژوئن 2007
نوشته‌ها
461
لایک‌ها
3
محل سکونت
http://www.rastgo.com htp://www.rastgo.net ww
بسم الله الرحمن الرحیم
سلام
بله، بفرمایید:

PHP:
<?PHP
//Input Data

$Email_Addresse = "[email protected]";
$Redirect_Page = "thanks.html";
$Subject = "Comments";
$From = "Contact Form <[email protected]>";

//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></body>";
//
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'>". nl2br($value). "</font>" . "<br>";
    }
    $Body .= "</body></html>";
    if (mail($Email_Addresse,$Subject,$Body,$headers) ) {
    header("Location:$Redirect_Page");
    }
}
?>
 

Azemati

کاربر فعال
کاربر قدیمی پرشین تولز
تاریخ عضویت
18 فوریه 2003
نوشته‌ها
3,366
لایک‌ها
4
محل سکونت
wp-config.php
بسیار ممنون. دست شما درد نکنه. درست شد :)
 
بالا