编辑:Jawish解释了为什么在提交我的代码时出现空白页面。我只是忘了回声。这已被标记为正确答案,即使它没有成功运行我的代码。我的问题很模糊,Jawish发现了一个可以帮助我处理错误报告的问题。如果我能找到代码的问题,我会发布另一个编辑。
我在使用以下代码发送信息时遇到一个小问题,无法登录我的Gmail帐户。一旦我运行我的表单并提交它,我就会显示一个空白页面。我试图找到某种错误,但我无法显示错误。我已按照this post的回答,但即使进行这些更改并添加代码也无法解释。这段代码应该运行邮件程序,一旦发送电子邮件,用户应该被重定向到“谢谢”'页面从未发生过。所以问题发生在列出的两个代码之一。奇怪的是这种用法起作用。我去度假然后回来,现在它没有工作。我确定我以某种方式搞砸了一些东西,但我对这些想法感到茫然。
感谢任何帮助。 (星号显示隐藏个人信息)
<?php
session_start();
require_once '../PHPMailer-master/PHPMailerAutoload.php';
if(isset($_POST['icon'])){
$m = new PHPMailer();
$m->isSMTP();
$m->SMTPAuth = true;
$m->Host = 'smtp.gmail.com';
$m->Username = '*********@gmail.com';
$m->Password = '****';
$m->SMTPSecure = 'ssl';
$m->Port = 465;
$m->isHTML(true);
$m->Subject = 'Contact form submitted';
$m->Body = $_POST['icon'];
$m->FromName = 'Contact';
$m->AddAddress('********@gmail.com','***Name Here****');
if($m->send()) {
header('Location: contact_thanks.php');
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $m->ErrorInfo;
die();
} else {
'Sorry, could not send email';
}
} else {'something went wrong';}
?>
这是前面代码中引用的PHPMailerAutoload.php。
<?php
function PHPMailerAutoload($classname)
{
//Can't use __DIR__ as it's only in PHP 5.3+
$filename = dirname(__FILE__).DIRECTORY_SEPARATOR.'class.'.strtolower($classname).'.php';
if (is_readable($filename)) {
require $filename;
}
}
if (version_compare(PHP_VERSION, '5.1.2', '>=')) {
//SPL autoloading was introduced in PHP 5.1.2
if (version_compare(PHP_VERSION, '5.3.0', '>=')) {
spl_autoload_register('PHPMailerAutoload', true, true);
} else {
spl_autoload_register('PHPMailerAutoload');
}
} else {
/**
* Fall back to traditional autoload for old PHP versions
* @param string $classname The name of the class to load
*/
function __autoload($classname)
{
PHPMailerAutoload($classname);
}
}
?>
答案 0 :(得分:1)
您在最后的其他块上缺少“echo”语句,因此您不会在这些分支上获得任何输出。
应该是:
} else {
echo 'Sorry, could not send email';
}
} else {
echo 'something went wrong';
}