从PHP脚本发送电子邮件

从PHP脚本发送电子邮件,php,mysql,Php,Mysql,我有一个页面是用来预订会议室的。我有一张表格,上面有预订的所有细节。我已经从MySql数据库中获取了电子邮件id。我想点击提交按钮发送电子邮件。我有两个文件,即home.php和insert.php。在home.php中,我使用表单&insert.php将数据插入数据库。我尝试了电子邮件功能代码,但它不起作用。 请帮忙 room.php <?php session_start(); if(isset($_GET['selecteddate'])) { $selecteddate=

我有一个页面是用来预订会议室的。我有一张表格,上面有预订的所有细节。我已经从MySql数据库中获取了电子邮件id。我想点击提交按钮发送电子邮件。我有两个文件,即home.php和insert.php。在home.php中,我使用表单&insert.php将数据插入数据库。我尝试了电子邮件功能代码,但它不起作用。 请帮忙

room.php

<?php session_start(); 
if(isset($_GET['selecteddate']))
{
    $selecteddate=$_GET['selecteddate'];
}
else
{
    $selecteddate=date("Y-m-d");
}
?>
<html>
<head><title>MRA</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.11.3/themes/smoothness/jquery-ui.css">
<style>
    #heading{ text-align:right;font-size: 20px;float:right;margin:50px 20px;}
    a:hover{ color:#BEBEBC; }
    a{ color:black;}
    #img{ margin:10px 10px; }
    #td{border-radius: 5px;border-style: solid;}
    .name-error,.meeting-error { color: red; margin: 0 10px; }
    #plan { position: fixed; left: 50%; margin-left: -239px; top: 50%; margin-top: -150px; z-index: 10;background-color: #fff; padding: 10px; }
    #plan-bg { width: 100%; height: 100%; position: fixed; background: #000; opacity: 0.8; top: 0;display: none; z-index: 5;  }
    .close { position: absolute; top: 5px; right: 10px; cursor: pointer; }
    .close:hover { text-decoration: underline;  }
    #datepicker { width: 40%; float: left;  }
    .calender-date { padding: 10px 10px;  }
    #time-slot-msg,#alert-msg { position: fixed; top: 50%; left: 50%; background: #fff; font-size: 25px; padding: 10px 20px; margin: -50px 0 0 -184.5px; display: none; z-index: 10;border-radius: 5px;  }
    #time-slot-msg p,#alert-msg p { font-weight: bold; } 
    #time-slot-msg .close,#alert-msg .close {  font-size: 15px; right: 20px;}   
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js"></script>
<script>
    $(document).ready(function() {
    var $index;
    var systemdate = new Date();
    $('.meeting-error').hide();
    $(".meeting-timetable tr > td + td").click(function(e) {
    if($(this).hasClass('active')) {
        e.preventDefault();
        alert('The selected time slot has already been assigned');
        } else {
        var $thisVal = $(this).prevAll('td:first-child').text();        
        var hour=$thisVal.substr(0,2);
        var min=$thisVal.substr(3,3);
        var d = new Date ("<?php print $selecteddate; ?>");
        var n = d.getFullYear();
        var m = d.getDate();
        var k = d.getMonth();
        var userdate=new Date(n,k,m,hour,min,0);
        if( systemdate > userdate )
        {
            alert("Select Time Slot greater than the Current Time");
            return; 
        }
        $index = $(this).index();
        // Start time.
        $(".start-time option").each(function() {
        if (($(this).text() === $thisVal)) {
        $(this).attr('selected', 'selected');
        $(this).prevAll().attr('disabled', 'disabled');
        }
        });
        // Change end time.
        $(".end-time option").each(function() {
        if (($(this).text() === $thisVal)) {
        $(this).next().attr('selected', 'selected');
        $(this).attr('disabled', 'disabled');
        $(this).prevAll().attr('disabled', 'disabled');
        }
        });  
        // Date input select.
        var $date = $('.meeting-timetable tr:first-child th').text();
        var dateFormat = $.datepicker.formatDate('yy-mm-dd', new Date($date));
        $('.date').val(dateFormat);
        $('#meeting').val('');
        $('.meeting-error').hide();
        // Show dialog box.             
        var _cellIndex = $(this)[0].cellIndex;
        var _rowIndex = $(this).closest('tr')[0].sectionRowIndex;
        var total_row = $('.meeting-timetable tr').length - 1;
        if( _rowIndex ==  total_row && _cellIndex == 1 ) {
                alert('You cannot select this time slot');
            }
            else $('#plan, #plan-bg').fadeIn();
            }
        });
        // On submit click change background color.
        $('.submit-button').click(function(e) {
            e.preventDefault();
            var selectedValue = $(".start-time option:selected").text(),
            selectedEndValue = $(".end-time option:selected").text(),
            $name = $('input[name=txtname]').val();
            if($('#meeting').val()) {
            $(".meeting-timetable tr > td").each(function()  {
            if ($(this).text() === selectedValue) {
            $(this).parent('tr').addClass('active');
                }
            if ($(this).text() === selectedEndValue) {
            var $parent = $(this).parent('tr').prevUntil('tr.active').addClass('active');
                }
        // Prev all td selected.
        $($parent).each(function(){
            });
        });
        }         
        // Form validation.
        if ($('#meeting').val() === '') { $('.meeting-error').fadeIn(); }   
        // Grab form values
        var formData = {
                'txtrname'    : $('input[name=txtrname]').val(),
                'txtname'     : $('input[name=txtname]').val(),
                'txtemail'    : $('input[name=txtemail]').val(),    
                'txtpurpose'  : $('input[name=txtpurpose]').val(),
                'attendee'    : $('select[name=attendee]').val(),
                'txtdate'     : $('input[name=txtdate]').val(),
                'btime'       : $('select[name=btime]').val(),
                'etime'       : $('select[name=etime]').val()
                }; 
        if($('#meeting').val().trim()) {
        // Ajax form submit.
        $.ajax({
            type: "POST",
            url: "insertkarma.php",
            data: formData,
            success: function()
            {   
                $('#alert-msg').fadeIn();
                $('#plan').fadeOut();
            }
        });
        } else { alert('Please enter the purpose of meeting'); } });
        // on focus function
            $('#meeting').focus(function() {
            $('.meeting-error').fadeOut();
            }).blur(function() {
            if (!$(this).val()) {
            $('.meeting-error').fadeIn();
            }
        });
        $(".close").click(function() {
        $('.pop-up').fadeOut();
        });
        // Adding calender.
        $( "#datepicker" ).datepicker({
                    minDate: 0,
                    dateFormat: "yy-mm-dd",
                    onSelect: function (date) {
                        var url="karma.php?selecteddate="+date;
                        window.location.assign(url);
                    }
                });
            });
        </script>
        </head>
        <body background="a9.jpg">
        <a href="homepage.php"><img id="img" src="HITECHLOGO.jpg" width="150px" height="100px"></a>
        <h1 align="center" style="position:absolute;top:30px; left:600px;">KARMA <br>(3-SEATER)</h1>
        <div id="heading"><a href="homepage.php" style="text-decoration:none;">Home</a>&nbsp;&nbsp;&nbsp;<?php echo ucwords($_SESSION['usr_name']); ?></font>&nbsp;&nbsp;&nbsp;<a href="changepswd.php" style="text-decoration:none;">Change Password</a>&nbsp;&nbsp;&nbsp;<a href="logout.php" style="text-decoration:none;">Logout</a>&nbsp;&nbsp;&nbsp;<a href="UserManual.pdf" target="_blank" style="text-decoration:none;">Help</a></div>
        <hr width="100%">
        <?php
            $host="localhost"; // Host name 
            $username="root"; // Mysql username 
            $password=""; // Mysql password 
            $db_name="testmra"; // Database name 
            // Connect to server and select databse.
            $conn=mysqli_connect($host,$username,$password) or die("cannot connect"); 
            mysqli_select_db($conn,$db_name);
            $i = 0;
            $dateEntry = "SELECT `starttime` , `status_id` , `name` , floor(( time_to_sec(`endtime`)-time_to_sec(`starttime`) )/1800) as testing FROM `karmadetails` WHERE `date` = '$selecteddate' order by starttime";
            if ($result=mysqli_query($conn,$dateEntry)) {
                while ($obj=mysqli_fetch_object($result))
                {
                    $starttime[$i] = $obj->starttime;
                    $status[$i] = $obj->status_id;
                    $name[$i] = $obj->name;
                    $testing[$i] = $obj->testing;
                    $i++;
                }
            }
            mysqli_close($conn);
        ?>
        <table border="1" align="right" width="60%" style="border:black;">
        <tr><td id="td" colspan="3" align="center"><h1>Click to Book a Time Slot</h1></td></tr>
        <tr><td bgcolor="red" align="center" id="td">Booked</td><td align="center" id="td">Available</td></td></tr>
        <tr><td id="td" colspan="3">| <a href="karma.php"> Today </a> |</td></tr></table>
        <table class="meeting-timetable" border="1" align="right" width="60%" style="border:black;">
        <tr><th id="td" colspan="2" class="calender-date" align="center"><?php print $selecteddate; ?></th></tr>
        <tr><td id="08:00:00" align="center" style="border-radius: 5px;border-style: solid;" width="10%">08:00</td><td id="td"></td></tr>
        <tr><td id="08:30:00" align="center" style="border-radius: 5px;border-style: solid;">08:30</td><td id="td"></td></tr>
        <tr><td id="09:00:00" align="center" style="border-radius: 5px;border-style: solid;">09:00</td><td id="td"></td></tr>
        <tr><td id="09:30:00" align="center" style="border-radius: 5px;border-style: solid;">09:30</td><td id="td"></td></tr>
        <tr><td id="10:00:00" align="center" style="border-radius: 5px;border-style: solid;">10:00</td><td id="td"></td></tr>
        <tr><td id="10:30:00" align="center" style="border-radius: 5px;border-style: solid;">10:30</td><td id="td"></td></tr>
        <tr><td id="11:00:00" align="center" style="border-radius: 5px;border-style: solid;">11:00</td><td id="td"></td></tr>
        <tr><td id="11:30:00" align="center" style="border-radius: 5px;border-style: solid;">11:30</td><td id="td"></td></tr>
        <tr><td id="12:00:00" align="center" style="border-radius: 5px;border-style: solid;">12:00</td><td id="td"></td></tr>
        <tr><td id="12:30:00" align="center" style="border-radius: 5px;border-style: solid;">12:30</td><td id="td"></td></tr>
        <tr><td id="13:00:00" align="center" style="border-radius: 5px;border-style: solid;">13:00</td><td id="td"></td></tr>
        <tr><td id="13:30:00" align="center" style="border-radius: 5px;border-style: solid;">13:30</td><td id="td"></td></tr>
        <tr><td id="14:00:00" align="center" style="border-radius: 5px;border-style: solid;">14:00</td><td id="td"></td></tr>
        <tr><td id="14:30:00" align="center" style="border-radius: 5px;border-style: solid;">14:30</td><td id="td"></td></tr>
        <tr><td id="15:00:00" align="center" style="border-radius: 5px;border-style: solid;">15:00</td><td id="td"></td></tr>
        <tr><td id="15:30:00" align="center" style="border-radius: 5px;border-style: solid;">15:30</td><td id="td"></td></tr>
        <tr><td id="16:00:00" align="center" style="border-radius: 5px;border-style: solid;">16:00</td><td id="td"></td></tr>
        <tr><td id="16:30:00" align="center" style="border-radius: 5px;border-style: solid;">16:30</td><td id="td"></td></tr>
        <tr><td id="17:00:00" align="center" style="border-radius: 5px;border-style: solid;">17:00</td><td id="td"></td></tr>
        <tr><td id="17:30:00" align="center" style="border-radius: 5px;border-style: solid;">17:30</td><td id="td"></td></tr>
        <tr><td id="18:00:00" align="center" style="border-radius: 5px;border-style: solid;">18:00</td><td id="td"></td></tr>
        <tr><td id="18:30:00" align="center" style="border-radius: 5px;border-style: solid;">18:30</td><td id="td"></td></tr>
        <tr><td id="19:00:00" align="center" style="border-radius: 5px;border-style: solid;">19:00</td><td id="td"></td></tr>
        <tr><td id="19:30:00" align="center" style="border-radius: 5px;border-style: solid;">19:30</td><td id="td"></td></tr>
        <tr><td id="20:00:00" align="center" style="border-radius: 5px;border-style: solid;">20:00</td><td id="td"></td></tr>
        </table>
        <table></table>
        <?php
            $name=$_SESSION['usr_name'];
            $host="localhost"; // Host name 
            $username="root"; // Mysql username 
            $password=""; // Mysql password 
            $dbname="testmra"; // Database name 
            // Create connection
            $conn = mysqli_connect($host, $username, $password, $dbname);           
            // Check connection
            if ($conn->connect_error) {
                    die("Connection failed: " . $conn->connect_error);
                } 
            else{

                }   
            $res  = mysqli_query($conn,"SELECT emailid FROM users WHERE username='$name'");     
            while($row=mysqli_fetch_assoc($res))
            {
                $rows = $row['emailid'];

            }
        ?>
        <div id="plan" class="pop-up" style="display :none ">
        <span class="close">Close</span>
        <form align="center" method="post" id="inform">
        <h1 align="center">Meeting Details</h1>
        <table>
        <tr><td align="right"><b>Room : </td><td><input type="text" name="txtrname" value="Karma" readonly></td></tr>
        <tr><td align="right"><b>Name :</td><td><input type="text" name="txtname" readonly value="<?php echo ucwords($_SESSION['usr_name']);  ?>"   ></td></tr>
        <tr><td align="right"><b>Email Id :</td><td><input type="text" name="txtemail" readonly value="<?php echo $rows ?>"></td></tr>
        <tr><td align="right"><b>Purpose of Meeting :</td><td> <input id="meeting" type="text" name="txtpurpose"><span class="meeting-error">Enter the purpose of meeting</span></td></tr>
        <tr><td align="right"><b>No. of Attendee :</td><td><select name="attendee"><option value="2">2</option><option value="3">3</option></select></td></tr>
        <tr><td align="right"><b>Date :</td><td> <input class="date" type="text" name="txtdate" readonly value="yyyy/mm/dd"></td></tr>
        <tr><td align="right"><b>Time : </td><td>Start Time <select class="start-time" name="btime">
            <option value="08:00:00">08:00</option>
            <option value="08:30:00">08:30</option>
            <option value="09:00:00">09:00</option>
            <option value="09:30:00">09:30</option>
            <option value="10:00:00">10:00</option>
            <option value="10:30:00">10:30</option>
            <option value="11:00:00">11:00</option>
            <option value="11:30:00">11:30</option>
            <option value="12:00:00">12:00</option>
            <option value="12:30:00">12:30</option>
            <option value="13:00:00">13:00</option>
            <option value="13:30:00">13:30</option>
            <option value="14:00:00">14:00</option>
            <option value="14:30:00">14:30</option>
            <option value="15:00:00">15:00</option>
            <option value="15:30:00">15:30</option>
            <option value="16:00:00">16:00</option>
            <option value="16:30:00">16:30</option>
            <option value="17:00:00">17:00</option>
            <option value="17:30:00">17:30</option>
            <option value="18:00:00">18:00</option>
            <option value="18:30:00">18:30</option>
            <option value="19:00:00">19:00</option>
            <option value="19:30:00">19:30</option>
            <option value="20:00:00" disabled>20:00</option>
        </select>
        - End Time <select class="end-time" name="etime">
            <option value="08:00:00">08:00</option>
            <option value="08:30:00">08:30</option>
            <option value="09:00:00">09:00</option>
            <option value="09:30:00">09:30</option>
            <option value="10:00:00">10:00</option>
            <option value="10:30:00">10:30</option>
            <option value="11:00:00">11:00</option>
            <option value="11:30:00">11:30</option>
            <option value="12:00:00">12:00</option>
            <option value="12:30:00">12:30</option>
            <option value="13:00:00">13:00</option>
            <option value="13:30:00">13:30</option>
            <option value="14:00:00">14:00</option>
            <option value="14:30:00">14:30</option>
            <option value="15:00:00">15:00</option>
            <option value="15:30:00">15:30</option>
            <option value="16:00:00">16:00</option>
            <option value="16:30:00">16:30</option>
            <option value="17:00:00">17:00</option>
            <option value="17:30:00">17:30</option>
            <option value="18:00:00">18:00</option>
            <option value="18:30:00">18:30</option>
            <option value="19:00:00">19:00</option>
            <option value="19:30:00">19:30</option>
            <option value="20:00:00">20:00</option>
        </select>
        </td></tr>
        <tr></tr>
        <tr><td></td><td><input class="submit-button" type="submit" value="Submit">
        <!--<input class="reset-button" type="reset" value="Reset">--></td></tr>
        </table>
        </form>
        </div>
        <div id="plan-bg" class="pop-up"></div>
        <div id="alert-msg" class="pop-up"><span class="close" onclick="window.location.reload();">Close</span><p>The selected time slot is booked.</p></div>
        <div id="time-slot-msg" class="pop-up"><span class="close">Close</span><p>This time slot is already booked.</p></div>
        <div id="datepicker"></div>
        <?php
            $user = ucwords($_SESSION['usr_name']);
            $host="localhost"; // Host name 
            $username="root"; // Mysql username 
            $password=""; // Mysql password 
            $db_name="testmra"; // Database name 
            // Connect to server and select databse.
            $conn=mysqli_connect($host,$username,$password) or die("cannot connect"); 
            mysqli_select_db($conn,$db_name);
            $result = mysqli_query($conn,"SELECT * FROM karmadetails WHERE name='$user' AND date='$selecteddate' AND (status_id=1 OR status_id=2)");
            echo "<table border='1' style='border:black;'>
                <tr>
                    <th id='td'>User Id</th>
                    <th id='td'>Purpose</th>
                    <th id='td'>Date</th>
                    <th id='td'>Start Time</th>
                    <th id='td'>End Time</th>
                    <th id='td'>Cancel Booking</th>
                </tr>";
            while($row = mysqli_fetch_array($result))
            {
                echo "<tr>";
                        echo "<td align='center' id='td'>" . $row['id'] . </td>";
                        echo "<td align='center' id='td'>" . $row['purpose'] . "</td>";
                        echo "<td align='center' id='td'>" . $row['date'] . "</td>";
                        echo "<td align='center' id='td'>" . $row['starttime'] . "</td>";
                        echo "<td align='center' id='td'>" . $row['endtime'] . "</td>";
                        echo '<td align="center" id="td"> <a href="cancelkarma.php?userid='. $row['id'].'" style="color:red" onclick="return confirm(\'Are you sure you want to cancel the booking ?\')" >Cancel</a> </td>';
                echo "</tr>";
            }
            echo "</table>";
            mysqli_close($conn);
        ?>
        <script type="text/javascript">
            var jqueryarray = [];
            jqueryarray = <?php echo json_encode($starttime); ?>;
            var statusarray=[];
            statusarray = <?php echo json_encode($status); ?>;
            var namearray=[];
            namearray = <?php echo json_encode($name); ?>;
            var countarray = [];
            countarray = <?php echo json_encode($testing); ?>;
            var arr = [];
            for(i = 0; i < <?php echo $i; ?>; i++)
            {
                arr[i] = jqueryarray[i];
            }
            var brr = [];
            for(i = 0; i < <?php echo $i; ?>; i++)
            {
                brr[i] = statusarray[i];
            }
            var crr=[];
            for(i=0; i< <?php echo $i; ?>; i++)
            {
                crr[i] = namearray[i];
            } 
            var drr=[];
            for(i=0; i< <?php echo $i; ?>; i++)
            {
                drr[i] = countarray[i];
            } 
            var j = 0;
            var k=1;
            var currentrow;
            $('.meeting-timetable tr').each(function() {
                if(arr[j] == $(this).find('td').attr('id')) 
                {
                    if(brr[j]==1)
                    {
                        currentrow=$(this);
                        for(k=1;k<=parseInt(countarray[j]);k++)
                        {
                            currentrow.find('td').next().css('background-color','orange').addClass('active').attr("title",namearray[j]);
                            currentrow=currentrow.next('tr');
                        }
                    }
                if(brr[j]==2)
                {
                    currentrow=$(this);
                    for(k=1;k<=parseInt(countarray[j]);k++)
                    {
                        currentrow.find('td').next().css('background-color','red').addClass('active').attr("title",namearray[j]);
                        currentrow=currentrow.next('tr');
                    }
                }
                if(brr[j]==3)
                {
                    $(this).find('td').next().css('background-color','');
                }
                if(brr[j]==4)
                {
                    $(this).find('td').next().css('background-color','');
                }
                j++;
            }
            });
        </script>
        </body>
        </html>
insert.php

<?php 
    $host="localhost"; // Host name 
    $username="root"; // Mysql username 
    $password=""; // Mysql password 
    $db_name="testmra"; // Database name 

    // Connect to server and select databse.
    $conn=mysqli_connect($host,$username,$password) or die("cannot connect"); 

    mysqli_select_db($conn,$db_name);

    $room = mysqli_real_escape_string($conn, $_POST['txtrname']);
    $name = mysqli_real_escape_string($conn, $_POST['txtname']); 
    $email = mysqli_real_escape_string($conn, $_POST['txtemail']);
    $purpose = mysqli_real_escape_string($conn, $_POST['txtpurpose']);
    $attendee = mysqli_real_escape_string($conn, $_POST['attendee']);
    $date = mysqli_real_escape_string($conn, $_POST['txtdate']);
    $btime = mysqli_real_escape_string($conn, $_POST['btime']);
    $etime = mysqli_real_escape_string($conn, $_POST['etime']);

    $sql="INSERT INTO karmadetails (room,name,purpose,attendee,date,starttime,endtime,status_id)VALUES('$room','$name','$purpose','$attendee','$date','$btime','$etime','2')";

    $to = '$email';

        $subject = "Your Booking is Done!!!";

        $message = "<p>Hello $name . You've received this E-Mail because you have booked room $room from Timings $btime to $etime on Date $date.";

        $from = "kansaramankit@gmail.com";

        $headers = "From: $from";

        mail($to,$subject,$message,$headers);

    if (mysqli_query($conn,$sql))
      {
        echo "Record added";

        }
    else
    {
        die('Error: ' . mysqli_error());
     }
?>

发送HTML电子邮件时,邮件标题必须包含内容类型$headers=MIME版本:1.0\r\n$headers.=内容类型:text/html;字符集=UTF-8\r\n;但它不起作用了你怎么知道?你有错误吗?邮件根本就不来吗?你是如何测试这个的?您测试过邮件服务器本身吗?请具体说明你的问题。别指望我们神奇地知道,邮件根本就不来。我从未使用过这个邮件功能&使用过来自互联网的邮件代码。请检查邮件服务器日志文件中的错误。是否在live server或localhost中测试。邮件功能仅在live server中工作