菜鸟问题:我哪里出错了?关于define

ahaosky 2008-11-25 03:29:48
下面是我写的一个stmp发邮件的代码

form.php

<form action="send.php" method="POST">
留言: <input type="text" id="textinput" name="message" size="20" />
<input type="submit" value="提交" />
</form>


send.php

<?php
header("content-type:text/html; charset=utf-8");
require_once 'config.php';
include "smtp.class.php";
$smtpserver = SMTPSERVER;
$port = PORT ;
$smtpuser = SMTPUSER;
$smtppwd = SMTPPWD;
$mailtype = MAILTYPE;
$sender = SENDER;
$smtp = new smtp($smtpserver,$port,true,$smtpuser,$smtppwd,$sender);
$smtp->debug = false;
$to = TO;
$subject = SUBJECT;
$body = MESSAGE;
$send=$smtp->sendmail($to,$sender,$subject,$body,$mailtype);
if($send==1){
echo SUCCESSFULLY;
}else{
echo UNSUCCESSFULLY;
echo "causation:".$smtp->logs;
}
?>


config.php

<?php
define('SMTPSERVER','smtp.mail.yahoo.com');
define('PORT','25');
define('SMTPUSER','abc');
define('SMTPPWD','123');
define('MAILTYPE','HTML');
define('SENDER','abc');
define('TO','abc@yahoo.com');
define('SUBJECT','新留言');
define('MESSAGE','$message');
define('SUCCESSFULLY','发送成功!');
define('UNSUCCESSFULLY','发送失败!');
?>


smtp.class.php




我知道直接在send.php里写“$body = "$message";”就没问题,但是我想做个后台让管理员修改$message的文字模板,所以放在config.php里了,结果出错了,呵呵,请高手解答
...全文
81 点赞 收藏 6
写回复
6 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
ahaosky 2008-11-25
jakey9826你很热心,但我同时很菜,所以不知道怎么继续写。

可以帮我把那3个文件都改好吗?呵呵?
回复
程序猿之殇 2008-11-25

1 建立模板文件,当然其它的配置你也可以设置和消息一样的形式.
读取模板文件,获取表单上提交的信息,替换模板中{message},写入config.php.
config.tpl.php
<?php
define('SMTPSERVER','smtp.mail.yahoo.com');
define('PORT','25');
define('SMTPUSER','abc');
define('SMTPPWD','123');
define('MAILTYPE','HTML');
define('SENDER','abc');
define('TO','abc@yahoo.com');
define('SUBJECT','新留言');
define('MESSAGE','{message}');
define('SUCCESSFULLY','发送成功!');
define('UNSUCCESSFULLY','发送失败!');
?>

2 当然你也可以直接读写文件,进行操作.
回复
xiayong404 2008-11-25
define() 函数是定义一个常量,而你这样define('MESSAGE','$message'); 写的话,就是定义一个变量了。所以错误就在这
回复
dzxccsu 2008-11-25
define('MESSAGE','$message');
不能定义变量!
回复
jlokys 2008-11-25
define('MESSAGE',$message);
define('MESSAGE',"$message");
回复
程序猿之殇 2008-11-25

//config.tpl.php
<?php
define('SMTPSERVER','smtp.mail.yahoo.com');
define('PORT','25');
define('SMTPUSER','abc');
define('SMTPPWD','123');
define('MAILTYPE','HTML');
define('SENDER','abc');
define('TO','abc@yahoo.com');
define('SUBJECT','新留言');
define('MESSAGE','{message}');
define('SUCCESSFULLY','发送成功!');
define('UNSUCCESSFULLY','发送失败!');
?>
//send.php
<?php
if($_POST['submit'] != "")
{
$strContent = file_get_contents("config.tpl.php");
$strContent = str_replace("{message}", $_POST['message'], $strContent);
file_put_contents('config.php', $strContent);
echo "<script language='javascript'>alert('success!'); window.location='send.php';</script>";
}
?>
<form action="send.php" method="POST">
留言: <input type="text" id="textinput" name="message" size="20" />
<input type="submit" name='submit' value="提交" />
</form>
回复
相关推荐
发帖
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
帖子事件
创建了帖子
2008-11-25 03:29
社区公告
暂无公告