使用此代码我在确认页面上获得输出。我只想发送电子邮件,页面应该说谢谢。
代码:
<?php
foreach( $response as $key => $value) {
if($key == 'paymentStatus') continue;
?>
<tr>
<td class="fieldName" width="50%"><?php echo $key; ?></td>
<td class="fieldName" align="left" width="50%"><?php echo $value; ?></td>
</tr>
<?php
}
?>
如何使用$ key和$ value变量形成php邮件?
非常感谢任何帮助。 我试过了:
<?php
$to = 'ranjan08@gmail.com';
$subject = 'Transaction Details';
$msg="";
$msg.='<table><tr>';
$msg.='<td class="fieldName" width="50%">'.$key. '</td>';
$msg.='<td class="fieldName" width="50%">'.$value. '</td>';
$msg.='</tr></table>';
$message = $_POST;
$headers = 'From: ranjan08@gmail.com' . "\r\n" .
'Reply-To: ranjan08@gmail.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
?>
没有通过电子邮件发送任何内容。
答案 0 :(得分:0)
你从哪里得到变量?
如果变量设置在同一个文件中,那么您只需要更改PHP var crypto = require('crypto');
var pbkdf2_sha512 = require('pbkdf2-sha512');
function b64trimmed(buf) {
return buf.toString('base64').replace(/=*$/, '').replace('+', '.');
}
function b64decode(str) {
// . in Base64?
str = str.replace('.', '+');
if (str.length % 4) {
str += '='.repeat(4 - str.length % 4);
}
return new Buffer(str, 'base64');
}
function get_hmac(secret, password) {
var hmac = crypto.createHmac('sha512', secret).update(password).digest('base64');
return hmac;
}
function get_hash(password, salt, rounds) {
// FIXME: KeyLenBytes is hardcoded
var h = b64trimmed(pbkdf2_sha512(password, salt, rounds, 64));
var joined_hash = ['', 'pbkdf2-sha512', rounds, b64trimmed(salt), h].join('$');
return joined_hash;
}
function verify_hash(password, stored_hash) {
var scheme = stored_hash.split('$')[1];
var rounds = stored_hash.split('$')[2];
var salt = stored_hash.split('$')[3];
// FIXME: Maybe throw an exception
if (scheme !== 'pbkdf2-sha512') {
return false;
}
var h = get_hash(password, b64decode(salt), rounds);
return h === stored_hash;
}
function new_hash(password, rounds) {
// FIXME: Salt size is hardcoded
var salt = crypto.randomBytes(16);
return get_hash(password, salt, rounds);
}
var password = 'Example Password';
// Usage:
var h = new_hash(password, 20000);
console.log('HASH ' + h);
console.log('VERIFY ' + verify_hash(password, h));
// Usage for passwords generated with flask_security:
// SECURITY_PASSWORD_SALT is set in config.py and used by flask-security
var SECURITY_PASSWORD_SALT = 'Many random bytes...';
var password_hmac = get_hmac(SECURITY_PASSWORD_SALT, password);
var h = new_hash(password_hmac, 20000);
console.log('HASH ' + h);
console.log('VERIFY ' + verify_hash(password_hmac, h));
函数:根据您的脚本,mail()
设置为发送mail()
变量的值,即可能没有使用考虑到可能没有表单提交(没有HTML POST方法,但GET一个)。所以它可能会在通话时抛出一些错误。
然后你还准备了$_POST
变量而你没有使用它。
我建议你试试$msg
。
还要检查Apache2 / NGINX的日志文件,你可能会看到你在误解的内容。
答案 1 :(得分:0)
首先,mail()函数需要$ message为字符串,但是你提供了一个数组:
$message = $_POST;
mail($to, $subject, $message, $headers);
您可以使用
$message = var_export($_POST,true);
mail($to, $subject, $message, $headers);
发送原始数据或
$message = "";
foreach($_POST as $key => $value){
$message .= "{$key} : {$value}\n";
}
mail($to, $subject, $message, $headers);
发送格式化的电子邮件正文。