2009-12-23 20 views
0

在我的网站上,我有一个contactUser.php发送邮件和一个replyMail.php。我已经将PHPMail放在我的联系人用户上,以发送电子邮件通知,这很有效。当我将相同的代码块放在我的replyMail上(该邮件与联系人用户邮件,收件箱位于同一位置)共享相同的变量时,会给我一个内部服务器错误。我尝试了不同的GET变量以及回声死亡($ vars)和回显查询。任何想法可能是什么问题。这里是我的代码:关于如何排除几乎相同的脚本内部服务器错误的任何建议?

$prof = new User($_GET['id']); 

$query = "SELECT `Email` FROM `Users` WHERE `id` = '" . $prof->id . "'"; 
$request = mysql_query($query,$connection) or die(mysql_error()); 
$result = mysql_fetch_array($request); 

$Email = $result['Email']; 


$to = $Email; 
$subject = "$auth->first_name $auth->last_name sent you a message"; 
$message = "$auth->first_name $auth->last_name sent you a message:<br /> <br /> <a href='http://www.blah.org/Inbox.php'>Click here to view</a><br /><br /> The Team"; 
$from = "blah<[email protected]>"; 
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
$headers .= "From:$from"; 
mail($to, $subject, $message, $headers); 

回答

1

我真的建议把它包装成一个函数。从你发布的内容中,我了解到你拥有全局名称空间中的所有代码,在这种情况下,任何数量的自动预先或包含都可能很容易混淆变量。

喜欢的东西:

// Function that accepts a user object and a database connection, then sends a notice email. 
function email_message_notice($prof, $connection){ 
$query = "SELECT `Email` FROM `Users` WHERE `id` = '" . $prof->id . "'"; 
$request = mysql_query($query,$connection) or die(mysql_error()); 
$result = mysql_fetch_array($request); 

$Email = $result['Email']; 

$to = $Email; 
$subject = "$auth->first_name $auth->last_name sent you a message"; 
$message = "$auth->first_name $auth->last_name sent you a message:<br /> <br /> <a href='http://www.blah.org/Inbox.php'>Click here to view</a><br /><br /> The Team"; 
$from = "blah<[email protected]>"; 
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
$headers .= "From:$from"; 
$res = mail($to, $subject, $message, $headers); 
return $res; 
} 


$prof = new User($_GET['id']); 
$sent = email_message_notice($prof, $connection); 

由于有涉及到数据库,这是未经测试的代码,所以你要测试是否正常工作,并希望自己调试任何进一步的问题,但除此之外,它应该是一个划分和分享代码的好方法。如果您在两个脚本中都做了完全相同的事情,则可以将email_user函数包含在单独的包含中。

1

查看服务器日志。应该告诉你什么是错的。也许文件权限。

1

那是整个剧本吗?我看不到任何可能导致500错误的内容。你可以发布整个页面或链接到整个页面的源代码吗?

这是一些重复调用的循环或群发邮件的一部分吗?

有没有办法获得Apache错误日志?只有他们会给你一个明确的答案出了什么问题。

+1

Debian的,具有读取权限的Apache日志,我只是:'尾-60 /无功/日志/的Apache2/error.log'让过去一些错误的简短总结。 – Kzqai 2009-12-23 18:34:26