PDA

View Full Version : مشکل فرم ارسال ایمیل در هاست ویندوز



hadiranji
پنج شنبه 12 اسفند 1389, 00:30 صبح
من یه فرم ارسال ایمل با php داشتم که روی هاست رایگان لینوکس بود و به خوبی کار می کرد الان روی هاست ویندوز ایمیل رو میزنه ولی یه خطا نمایش می ده این کد فرم ایمیل php :


<?
// Default settings. Change these!
$address = 'herculesebooks@gmail.com'; // Default address you want mail sent to
$subj = 'Operating System'; // Default subject to give to emails
$returnto = 'http://www.operating-system.ir/page/feedback.aspx'; // Default page people should be redirected to after mailing
//////////////
// Override defaults
$address = ($_POST['sendto'])?$_POST['sendto']:$address;
$subj = ($_POST['subject'])?$_POST['subject']:$subj;
$returnto = ($_POST['returnto'])?$_POST['returnto']:$returnto;
// if email address isn't present or is invalid, use TO address as FROM address.
if (eregi('^.+@.+\.[a-z]{2,6}',$_POST['email'])) {
$email = $_POST['email'];
$ip = $_SERVER['REMOTE_ADDR'];
$message = "Auto Mail from ".$email." Sender IP :".$ip."\n\n";
}
else {
$email = $address;
$ip = $_SERVER['REMOTE_ADDR'];
$message = "Auto Mail from ".$ip."\n\n";
}
foreach ($_POST as $key => $val) {
if ($key != 'returnto' && $key != 'email' && $key != 'subject' && $key != 'sendto') {
$message .= $key.': '.$val."\n";
}
}
$message = stripslashes($message);
if (@mail($address, $subj, $message,"From: ".$email)) {
if ($returnto) {
header('Location: '.$returnto);
}
else {
?><html><body><center>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><font color="green"><b>پیام شما با موفقیت ثبت گردید</b></font></p>
<p>با تشکر از پیام شما در اسرع وقت پاسخ شما داده خواهد شد</p>
<p><a href="http://www.operating-system.i">بازگشت به صفحه خانگی </a><a href="www.operating-system.ir"></a></p>
<p><a href="JavaScript:history.back()">بازگشت به فرم نظر خواهی </a>
</center></body></html><?
}
}
else {
?><html><body><center><font color="red"><b>ثبت نظر شما با مشکل مواجه شد لطفا دوباره امتهان نمائید</b></font><p><a href="JavaScript:history.back()">Back</a></center></body></html><?
}
?>


خطا :

Warning: Cannot modify header information - headers already sent by (output started at C:\inetpub\vhosts\heico.ir\httpdocs\other\os.php:1 ) in C:\inetpub\vhosts\heico.ir\httpdocs\other\os.php on line 34

hadiranji
پنج شنبه 12 اسفند 1389, 14:17 عصر
مسیرStart>Run>Edit رو می ریم و برنامه ادیتور داس رو با ز می کنیم بعد فایلمون رو باز کرده و اگه اولش کارکترهای بی معنی مربوط به کدینگ utf-8 بود پاک و سیو می کنیم
این هم مصیبت های استفاده از utf-8 برای پشتیبانی از زبان شیرین فارسی

amir001
یک شنبه 15 اسفند 1389, 00:24 صبح
میتونی روی لوکال با یک ادیتور مثل Notpad++ فایلت را باز کنی و اون را از نوع utf-8 without BOM ذخیره کنی. باز هم مشکلت حل میشه

numberone1
یک شنبه 15 اسفند 1389, 02:16 صبح
از ob_start() ; در اول كد هاتون و ob_flush(); انتهاي كد ها استفاده كنيد درست ميشه

amir001
یک شنبه 15 اسفند 1389, 13:06 عصر
نکته:
اگر مشکل یونی کد بودن فایل باشه با ob_start حل نمیشه. چون قبل از اینکه بافر کردن صفحات بخواد شروع بشه یک رشته اول ارسال شده.