logo

额外区块类型 (EBT) - 全新的布局构建器体验❗

额外区块类型 (EBT) - 样式化、可定制的区块类型:幻灯片、标签页、卡片、手风琴等更多类型。内置背景、DOM Box、JavaScript 插件的设置。立即体验布局构建的未来。

演示 EBT 模块 下载 EBT 模块

❗额外段落类型 (EPT) - 全新的 Paragraphs 体验

额外段落类型 (EPT) - 类似的基于 Paragraph 的模块集合。

演示 EPT 模块 滚动

滚动

检查电子邮件和姓名的 PHP 代码

22/02/2025, by 匿名 (未验证)
论坛

大家好!

我有一个脚本,需要在接受订单之前检查电子邮件和用户名。提前感谢!

 

 

<h1>订单确认</h1>
<?php

require_once realpath(dirname(__FILE__) . '/../cms/local.php');
function send_mail($emailaddress, $fromaddress, $emailsubject, $body, $attachments=false){
    $eol="\n";
    $mime_boundary=md5(time());
# 常见头部
    $headers  = '';
    $headers .= '发件人: '.$fromaddress.$eol;
    $headers .= '回复至: '.$fromaddress.$eol;
    $headers .= '返回路径: '.$fromaddress.$eol;    // 这两个用于设置回复地址
    $headers .= "消息-ID: <".$now." TheSystem@".$_SERVER['SERVER_NAME'].">".$eol;
    $headers .= "X-Mailer: PHP v".phpversion().$eol;          // 这两个帮助避免垃圾邮件过滤器
    $headers .= '密送: '.EMAILS_ORDER.$eol;
# 用于标记分隔的边界和多类型头部
    $headers .= 'MIME-Version: 1.0'.$eol;
    $headers .= "内容类型: multipart/related; boundary=\"".$mime_boundary."\"".$eol;
    $msg = "";

    if ($attachments !== false)
{

        for($i=0; $i < count($attachments); $i++)
{
            if (is_file($attachments[$i]["file"]))
{
# 附件文件
                //        $file_name = substr($attachments[$i]["file"], (strrpos($attachments[$i]["file"], "/")+1));
$file_name = basename($attachments[$i]["name"]);

$handle=fopen($attachments[$i]["file"], 'rb');                $f_contents=fread($handle, filesize($attachments[$i]["file"]));
$f_contents=chunk_split(base64_encode($f_contents));    // 使用base64_encode()编码数据以进行传输;
fclose($handle);

# 附件
$msg .= "--".$mime_boundary.$eol;
$msg .= "内容类型: ".$attachments[$i]["content_type"]."; name=\"".$file_name."\"".$eol;
$msg .= "内容传输编码: base64".$eol;
$msg .= "内容处置: 附件; filename=\"".$file_name."\"".$eol.$eol; // !! 此行需要两个换行 !! 重要 !!
#        $msg .= "内容处置: 附件;".$eol;
#        $msg .= "       filename=\"".$file_name."\"".$eol.$eol;
$msg .= $f_contents.$eol.$eol;

}
}
}

# 设置文本或HTML
$msg .= "内容类型: multipart/alternative".$eol;

/*
# 文本版本
$msg .= "--".$mime_boundary.$eol;
$msg .= "内容类型: text/plain; charset=iso-8859-1".$eol;
$msg .= "内容传输编码: 8bit".$eol.$eol;
$msg .= strip_tags(str_replace("<br>", "\n", $body)).$eol.$eol;
*/


# HTML版本
$msg .= "--".$mime_boundary.$eol;
$msg .= "内容类型: text/html; charset=windows-1251".$eol;
$msg .= "内容传输编码: 8bit".$eol.$eol;
$msg .= $body.$eol.$eol;

# 完成
$msg .= "--".$mime_boundary."--".$eol.$eol;  // 为了更好的安全性,结束时使用两个换行。请参阅注入。

# 发送电子邮件
ini_set(sendmail_from,$fromaddress);  // INI行用于强制使用发件人地址!
    $result = mail($emailaddress, $emailsubject, $msg, $headers);
    ini_restore(sendmail_from);
    return $result;
}

    if ( isset($_POST['ФИО']) ) {
       
            $fio = $_POST['ФИО'];
            $reg = $_POST['Регион'];
            $city = $_POST['Город'];
            $phone = $_POST['Телефон'];
            $email = $_POST['Эл__почта'];
            $addres = $_POST['Адрес_доставки'];
            $com = $_POST['Комментарий_к_заказу'];
            $group1 = $_POST['group1'];
       
            $to = $email;

            $from    = '"网站 '.$_SERVER['SERVER_NAME'].'" <no-reply@'.$_SERVER['SERVER_NAME'].'>';
            // 邮件主题
            $subject = '来自网站 '.$_SERVER['SERVER_NAME'].' 的订单,时间为 '.date('d-m-Y H:i');

            // 邮件内容
            $message = "
            <html>
            <head>
              <title>订单确认</title>
            </head>
            <body>
              <p>您的订单时间为 ".date('d.m.Y H:i')."</p>

            <table width=\"100%\" cellspacing=\"2\" cellpadding=\"5\" border=\"0\">
              <tbody>
                <tr>
                  <th colspan=\"2\">买家信息:</th>
                </tr>
                <tr>
                  <td>姓、名、父名</td>
                  <td>$fio</td>
                </tr>
                <tr>
                  <td>地区</td>
                  <td>$reg</td>
                </tr>
                <tr>
                  <td>城市</td>
                  <td>$city</td>
                </tr>
                <tr>
                  <td>联系电话</td>
                  <td>$phone</td>
                </tr>
                <tr>
                  <td>电子邮件</td>
                  <td>$email</td>
                </tr>
                <tr>
                  <td>送货地址</td>
                  <td>$addres</td>
                </tr>
                <tr>
                  <td>支付方式</td>
                  <td>$group1</td>
                </tr>
                <tr>
                  <td>订单备注:</td>
                  <td>$com</td>
                </tr>
              </tbody>
            </table>
<h2>订单内容:</h2>";
    if ($_SESSION['cart']) {
        $totalArray = array();
        $uniqueArray = array_unique($_SESSION['cart']); // 去除重复元素
           
            // 最终计算商品ID及其数量
            foreach ($uniqueArray as $key) {
                foreach ( $_SESSION['cart'] as $k => $v ) {
                    $totalArray[$v] = ( $v == $key ) ? $totalArray[$v] + 1 : $totalArray[$v] ;
                }
            }
           
            $DB = new PDO ('sqlite:'.$_SERVER['DOCUMENT_ROOT'].'/minicms.sqlite');
            $r = $DB->query('SELECT * FROM catalog_items')->fetchAll();
           
    $message .= '<table border="1" cellpadding="10" cellspacing="10" class="cartTable" width="100%">
    <tr class="headercartTable">
        <td>商品名称</td>
        <td>数量</td>
        <td>单价(卢布)</td>
        <td>总价(卢布)</td>
    </tr>';
            $totalPrice = 0;
            $MoneyUnit = array('руб' => '卢布', 'dollar' => '$' );
           
                foreach ($r as $recId => $dataArr) {
                   
                    if ( isset($totalArray[$dataArr['id']]) ) {
                        $totalPrice += $dataArr['price']*$totalArray[$dataArr['id']];
                        $message .= "<tr class=\"item".$dataArr['id']."\">".
                        "<td>".$dataArr['name']."</td>".
                        "<td align=\"center\">".$totalArray[$dataArr['id']]."</td>".
                        "<td align=\"center\" class=\"curPrice\">".$dataArr['price']."</td>".
                        "<td align=\"center\" class=\"totalPrice\">".$dataArr['price']*$totalArray[$dataArr['id']]."</td>".
                        "</tr>";
                    }
                }
    $message .= '<tr class="footerTable">
        <td style="text-align: right; font-weight: bold" colspan="2">总费用</td>
        <td id="cashe" style="font-weight: bold" align="center" colspan="2">'.$totalPrice.'</td>
    </tr>
    </table>';
    } else {
        $message .= '<h3>购物车中没有商品</h3>';
    }
    $message .= "</body>
            </html>
            ";
           
            if ( send_mail($to, $from, $subject, $message) ) {
?>
                <br />
                <h2>您的订单已被接受</h2>
                <p>一封包含订单内容的邮件已发送到您在结账时提供的电子邮箱地址。</p>
                <p>我们的经理将很快与您联系以确认详细信息。</p>
                <br /><br /><br />
                <h2>客户信息</h2>
                <?=$message ?>
               
<?php    
                unset($_SESSION['cart']);               
            } else {
?>
                <h2>消息发送错误!</h2>
                <p>请联系网站开发者!</p>
<?php                
            }
} else {?>
   
<p>请检查所有字段的填写是否正确。</p>
<p>准确的联系方式:电话和电子邮箱是我们及时处理您订单所必需的。</p>

<form id="orderSend" action="" method="POST">
    <input type="text" size="70" name="ФИО" value="姓名" /><br />
    <input type="text" size="70" name="Регион" value="地区" /><br />
    <input type="text" size="70" name="Город" value="城市" /><br />
    <input type="text" size="70" name="Телефон" value="电话" /><br />
    <input type="text" size="70" name="Эл. почта" value="电子邮箱" /><br />
    <input type="text" size="70" name="Адрес доставки" value="送货地址" /><br />
    <textarea name="Комментарий к заказу" cols="54" rows="7">订单备注</textarea><br />
    <br />
    <input type="radio" name="group1" value="货到付款" />货到付款<br />
    <input type="radio" name="group1" value="通过Sberbank支付" />通过Sberbank支付<br />
    <input type="radio" name="group1" value="银行转账" />银行转账<br />
   
    <input type="submit" value="完成订单" id="sendOrdering" />
   
</form>


<?php } ?>