如何发送php post变量

时间:2017-05-26 11:17:01

标签: php email

使用此代码我在确认页面上获得输出。我只想发送电子邮件,页面应该说谢谢。

代码:

<?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);
?>

没有通过电子邮件发送任何内容。

2 个答案:

答案 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);

发送格式化的电子邮件正文。