묻고답하기
php파일을 외부페이지를 통해 xe에 넣고자
2008.06.19 16:40
네, 제목에서와 같이
php 웹메일을 xe 내에 있는 외부페이지와 연동하려 합니다.
php파일을 이미 제 서버에 업로드한 상태구요.
혹시나 해서 redutf8으로 변환작업해서 업로드를 해도 그냥 백지상태만 나타납니다. 혹시 변환 작업을 제가 실수하고 있는거라면 여러분께서 아래 코드를 utf-8으로 변환해 올려주세요.
다른 php파일은 잘 표현되는 걸로 보아 제가 사용하려는 이 php파일에 문제가 있는듯 한데 초보라 파악하지 못하고 있습니다.
아래는 제가 사용하려는 웹메일 php입니다.
잘 부탁드립니다.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
<?
$it_uses = "yes";
$to_mail_set = "abcde@yahoo.com";
$to_name_set = "admin";
$after_url="$_SERVER[PHP_SELF]";
if($_POST['f_mailsend'+ '+ ']){
send_mail_action($to_mail_set,$to_name_set);
alert_msg("메일발송 완료되었습니다.",$after_url);
}
?>
<html>
<head>
<title> 웹메일 신청 </title>
<meta http-equiv='Content-Type' content='text/html; charset=euc-kr'>
<style type='text/css'>
BODY,TD,TR,input,DIV,form,pre,select,textarea{font-size:9pt; font-family:Tahoma, 굴림; word-break:break-all;}
form{margin:0; padding:0; display:inline;}
</style>
<script language=JavaScript>
function form_mail_submit(){
if(no_value('mail_subject'+
')) return error_msg('mail_subject','주소를 입력하세요.');
if(no_value('mail_to_name')) return error_msg('mail_to_name','받는사람 이름을 입력하세요.');
if(no_value('mail_from_name')) return error_msg('mail_from_name','보내는사람 이름을 입력하세요.');
if(no_value('mail_body')) return error_msg('mail_body','본문내용을 입력하세요.');
if(no_value('add_value_1')) return error_msg('add_value_1','기타1 를 입력하세요.');
if(no_value('add_value_2'+
')) return error_msg('add_value_2',기타2 를 입력하세요.');
if(no_value('add_value_3')) return error_msg('add_value_3','기타3 를 입력하세요.');
if(!document.MailWriteForm.mail_to_email.value.match(/\S+@\S+\.\S+/)) return error_msg('mail_to_email','받는사람 이메일을 확인하세요.');
if(!document.MailWriteForm.mail_from_email.value.match(/\S+@\S+\.\S+/)) return error_msg('mail_from_email','보내는 사람 이메일을 확인하세요');
document.MailWriteForm.submit();
}
function no_value(inputName){
value=eval('document.MailWriteForm.'+inputName).value.replace(/\s/g,"");
if(!value) return 1;
}
function error_msg(inputName,msg){
alert(msg);
eval('document.MailWriteForm.'+inputName).focus();
return false;
}
</script>
</head>
<body bgcolor=#ffffff>
<!--------- 테투리 라운딩-------------------------------------------------------------->
<table border=0 cellpadding=0 cellspacing=0 align=left>
<tr>
<td width=12 height=11 background='r1.gif'></td>
<td height=11 background='r2.gif'></td>
<td width=13 height=11 background='r3.gif'></td>
</tr>
<tr>
<td width=12 background='r4.gif'></td>
<td align=center style='padding:2;'>
<!--------- 테두리 라운딩-------------------------------------------------------------->
<FORM method='post' name="MailWriteForm" action="<?=$_SERVER['PHP_SELF']?>">
<input type=hidden name='f_mailsend' value='1'>
<table width=400 border=0 cellpadding=1 cellspacing=1>
<tr>
<td colspan=2 bgcolor=#f5f5f5> <img src='write_hand.gif' align=absmiddle> <b>웹폼메일</b></td>
</tr>
<tr><td colspan=2 height=5 style='padding:0;'></td></tr>
<?
if($to_mail_set and $to_name_set){
echo "<input type=hidden name='mail_to_email' value='$to_mail_set'>";
echo "<input type=hidden name='mail_to_name' value='$to_name_set'>";
}else{
?>
<tr>
<td bgcolor=#f7f7f7><img src='arow.gif' align=absmiddle> 받는 사람 이름</td>
<td><input type=text name='mail_to_name' style='border:1px solid #aaaaaa; width:150px;'></td>
</tr>
<tr>
<td bgcolor=#f7f7f7><img src='arow.gif' align=absmiddle> 받는 사람 이메일</td>
<td><input type=text name='mail_to_email' style='border:1px solid #aaaaaa; width:150px;'></td>
</tr>
<tr><td colspan=2 height=5 style='padding:0;'></td></tr>
<?}?>
<tr>
<td bgcolor=#f7f7f7><img src='arow.gif' align=absmiddle> 보내는 사람 이름</td>
<td><input type=text name='mail_from_name' style='border:1px solid #aaaaaa; width:150px;'></td>
</tr>
<tr>
<td bgcolor=#f7f7f7><img src='arow.gif' align=absmiddle> 보내는 사람 이메일</td>
<td><input type=text name='mail_from_email' style='border:1px solid #aaaaaa; width:150px;'+
'></td>
</tr>
<tr><td colspan=2 height=5 style='padding:0;'></td></tr>
<tr>
<td bgcolor=#f7f7f7><img src='arow.gif' align=absmiddle> 제목</td>
<td><input type=text name='mail_subject' style='border:1px solid #aaaaaa; width:250px;'></td>
</tr>
<tr>
<td bgcolor=#f7f7f7>
<img src='arow.gif' align=absmiddle> 기타1
</td>
<td>
<input type=hidden name='add_title_1' value="beds">
<input type=text name='add_value_1' style='border:1px solid #aaaaaa; width:250px;'>
</td>
</tr>
<tr>
<td bgcolor=#f7f7f7>
<img src='arow.gif' align=absmiddle> 기타2
</td>
<td>
<input type=hidden name='add_title_2' value="baths">
<input type=text name='add_value_2' style='border:1px solid #aaaaaa; width:250px;'>
</td>
</tr>
<tr>
<td bgcolor=#f7f7f7>
<img src='arow.gif' align=absmiddle> 기타3
</td>
<td>
<input type=hidden name='add_title_3' value="sqft">
<input type=text name='add_value_3' style='border:1px solid #aaaaaa; width:250px;'>
</td>
</tr>
<tr>
<td bgcolor=#f7f7f7>
<img src='arow.gif' align=absmiddle> 기타4
</td>
<td>
<input type=hidden name='+
'add_title_4' value="lot">
<input type=text name='add_value_4' style='border:1px solid #aaaaaa; width:250px;'>
</td>
</tr>
<tr>
<td bgcolor=#f7f7f7>
<img src='arow.gif' align=absmiddle> 기타5
<td>
<input type=hidden name='add_title_5' value="built">
<input type=text name='+
'add_value_5' style='border:1px solid #aaaaaa; width:250px;'>
</td>
</tr>
<tr><td colspan=2 height=5 style='padding:0;'></td></tr>
<!--- 본문 입력란 --->
<tr>
<td colspan=2 align=center>
<textarea name='mail_body'
style="border:1px solid #aaaaaa; width:100%; height:150px; overflow:auto; background-image:url('wrback.gif'); line-height:150%;"></textarea>
</td>
</tr>
</table>
<br>
<!--- 전송버튼 --->
<a onclick="javascript:form_mail_submit()" style='cursor:pointer;'><img src="button_write_ok.gif" border=0></a>
</FORM>
<!--------- 테두리 라운딩-------------------------------------------------------------->
</td>
<td width=13 background='r5.gif'></td>
</tr>
<tr>
<td width=12 height=11 background='r6.gif'></td>
<td height=11 background='r7.gif'></td>
<td width=13 height=11 background='r8.gif'></td>
</tr>
</table>
<!--------- 테두리 라운딩-------------------------------------------------------------->
<pre style="line-height:150%;">
<img src='arow.gif' align=absmiddle> <b>form_mail.php</b>
.아
.아
.아
.아
</pre>
</body>
</html>
<?
function mail_body_html($body){
$join_html= <<<EOF_LINE
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=euc-kr'>
<style type=text/css>
body,td,input,div,select,textarea{font-size:9pt; font-family:굴림,Tahoma; line-height:140%; word-break:break-all;}
</style>
</head>
<body bgcolor='#ffffff' topmargin=5>
<table width=90% border=1 cellspacing=0 cellpadding=1 frame=void bordercolordark='#ffffff'+
' bordercolorlight='#eeeeee' style='margin-bottom:8px;'>
<tr><td width=120><b>ㆍ</b>보낸사람</td><td> $_POST[mail_from_name] <$_POST[mail_from_email]></td></tr>
<tr><td width=120><b>ㆍ</b>받은사람</td><td> $_POST[mail_to_name] <$_POST[mail_to_email]></td></tr>
EOF_LINE;
for($i=1; $i<50; $i++){
if(!$_POST['add_title_'.$i]) continue;
$title=$_POST['+
'add_title_'.$i]; $value=$_POST['add_value_'.$i];
$join_html.="
<tr>
<td width=120><b>ㆍ</b>$title</td><td> $value</td>
</tr>
";
}
$join_html.= <<<EOF_LINE
</table>
<table width=98% cellpadding=0 cellspacing=0 border=0 bgcolor='#ffffff' style='border:1px solid #1578FF;'>
<tr><td height=1 bgcolor='#A9CDFF'></td></tr>
<tr><td height=1 bgcolor='#67A7FF'></td></tr>
<tr>
<td bgcolor='#1578FF' style='padding:2px; padding-left:6px; color:#ffffff; font-weight:bold;'>
$_POST[mail_subject]
</td>
</tr>
<tr><td height=1 bgcolor='#67A7FF'></td></tr>
<tr><td height=1 bgcolor='#A9CDFF'></td></tr>
<tr><td height=1 bgcolor='#1578FF'></td></tr>
<tr>
<td style='padding:5px'>
<!--메일 본문 내용-->
$body
</td>
</tr>
</table>
</body>
</html>
EOF_LINE;
return $join_html;
}
function send_mail_action($snd_mail,$snd_name){
if($GLOBALS['it_uses'] != 'yes'+
') alert_msg("메일발송 실패 했습니다. 소스내의 '설정항목1' 을 우선 확인하십시오.");
if($snd_mail) $_POST['mail_to_email'] = $snd_mail;
if($snd_name) $_POST['mail_to_name'] = $snd_name;
if(!org_mail($_POST['mail_to_email'])) alert_msg('받는 사람 메일주소가 잘못 되었습니다.');
if(!org_mail($_POST['mail_from_email'])) alert_msg('보내는 사람 메일주소가 잘못 되었습니다.');
if(!$_POST['mail_subject']) alert_msg('제목을 입력하십시오.');
if(!$_POST['mail_to_name']) alert_msg('받는사람 이름을 입력하십시오.');
if(!$_POST['mail_from_name']) alert_msg('보내는사람 이름을 입력하십시오.');
if(!$_POST['mail_body']) alert_msg('본문 내용을 입력하십시오.');
$mail_to = "\"$_POST[mail_to_name]\" <$_POST[mail_to_email]>";
$mail_from = "\"$_POST[mail_from_name]\" <$_POST[mail_from_email]>";
$head = "From:$_POST[mail_from_email]\n";
$head .="Content-Type: text/html\n";
$head .="Reply-To:$_POST[mail_from_email]\n";
$head .="X-Mailer:PHP/".phpversion();
$body=nl2br($_POST['mail_body']);
$body=stripslashes($body);
$body=mail_body_html($body);
return @mail($mail_to,$_POST['mail_subject'],$body,$head);
}
function org_mail($mail){
if(!preg_match("/\S+@(\S+\.\S+)/",$mail,$Tmp)) return ;
// if(!checkdnsrr($Tmp[1], "MX") and !checkdnsrr($Tmp[1], "A")) return ;
return 1;
}
function alert_msg($msg,$after_url=""){
$msg=preg_replace("/\"/","'",$msg);
echo " <script language='JavaScript'> alert(\"$msg\"); ";
if($after_url) echo " location.href='$after_url'; ";
else echo " history.go(-1); ";
echo "</script>";
exit;
}
?>
댓글 6
-
덱스터
2008.06.19 19:56
일단은 euc 건 utf 건 간에 외부페이지를 제대로 설정햇다면 뭔가가 나와야죠? -
라운
2008.06.20 09:06
utf-8이 아니면 백지화면이 나온다고 주의사항에 씌여 있어서요.
-
라운
2008.06.20 11:17
제가 워낙 서툴러서 다시 한번 부탁드립니다.
php파일 한번만 손봐 주세요. ^^ -
라운
2008.06.21 07:23
부탁드려요. 위에 php파일을 외부페이지로 불러들일 수 있게 해주세요. -
정준석
2008.06.21 20:16
html은 이 흰화면으로 나온다고 하셔서.. bgcolor 랑 스타일을 지우고 하니 html은 나오네요~
한번 확인해 보시길.. ^^ -
라운
2008.06.22 03:39
정말정말 감사합니다, 정준석님!!!