Отправить информацию (из формы) в базу данных и по электронной почте - PullRequest
0 голосов
/ 04 октября 2011

У меня есть форма, которая позволяет пользователю получать уведомления о выходе нового продукта.В настоящее время информация пользователей проверяется и отправляется в базу данных.Тем не менее, мне также нужно отправить его на адрес электронной почты.

Оба скрипта работают отдельно;Однако заставить их работать вместе очень сложно.

 <?php
 //CHECK CAPTCHA IMAGE
 session_start();

 if( isset($_POST['submit'])) {
 if( $_SESSION['security_code'] == $_POST['security_code'] && !empty($_SESSION['security_code'])) { 
    //          IF CAPTCHA CHECKS OUT, CONTINUE TO VALIDATE DATA.

    if( !isset($_POST['fname']) ||
        !isset($_POST['lname']) ||
        !isset($_POST['email']))
        {
            echo '<script type="text/javascript">';
            echo 'alert("Please go back and fill out the entire form.");';
            echo '</script>';
        }   

        //          CONNECT TO DATABASE

        $dbhost = 'DATABASE NAME';
        $dbuser = 'DATABASE USER';
        $dbpass = 'PASSWORD';
        $dbname = 'DATABASE NAME';
        $dbtable = 'TABLE NAME';
        $conn = mysql_connect($dbhost, $dbuser, $dbpass);

        if(! $conn)
        {
         die('Could not connect: ' . mysql_error() . '<br />');
        } else {
         //echo 'Connected successfully. <br />';
        }

        $selected = mysql_select_db($dbname,$conn);
        if(! $selected)
        {
         die('Could not connect: ' . mysql_error() . '<br />');
        } else {
         //echo 'Connected successfully. <br />';
        }

        $fname = mysql_real_escape_string(stripslashes($_POST['fname']));
        $lname = mysql_real_escape_string(stripslashes($_POST['lname']));
        $email = mysql_real_escape_string(stripslashes($_POST['email']));
        $today = date("Y-m-d H-i-s");

        if (mysql_query("INSERT INTO $dbtable(fname, lname, email, date) VALUES('$fname', '$lname', '$email', '$today')") != true)
        {
            echo ("ERROR: " . mysql_error() . "<br />");    
        } else { 
            //echo 'Thank you, your information has been entered into our database. <br />';

        }

        mysql_close($conn); // CLOSE DATABASE

        include('../thankyou.html');    

        unset($_SESSION['security_code']);  //END SESSION
} else //       IF CAPTCHA DOESN'T CHECK OUT, DISPLAY ERROR MESSAGE.

{
    echo '<script type="text/javascript">';
    echo 'alert("Sorry, you have provided an invalid security code.")';
    echo '</script>';
}
}

?>

Я попытался включить сценарий для отправки по электронной почте в качестве «включенного» и попытался объединить два сценария в один, нони один не работал до сих пор.

Буду признателен за любые мысли. Спасибо!

Ответы [ 3 ]

1 голос
/ 04 октября 2011

Для части электронной почты просто используйте функцию mail или, что еще лучше, используйте одну из хорошо протестированных почтовых библиотек, таких как PHPMailer и Swift Mailer .

0 голосов
/ 18 февраля 2018
<?php

    $dbhost = '';
    $dbuser = '';
    $dbpass = '';
    $dbname = '';
    $dbtable = 'webagents';
    //$conn = mysql_connect($dbhost, $dbuser, $dbpass);
    $conn = mysqli_connect($dbhost, $dbuser, $dbpass);
    //$conn = mysqli_connect($dbhost,$dbuser,$dbpass,$dbname);
    if(!$conn)
    {
     die('Could not connect: ' . mysqli_error() . '<br />');
    } else {
     //echo 'Connected successfully. <br />';
    }

    $selected = mysqli_select_db($conn,$dbname);
    if(! $selected)
    {
     die('Could not connect: ' . mysqli_error() . '<br />');
    } else {
     //echo 'Connected successfully. <br />';
    }

    $cname = mysqli_real_escape_string($conn, $_POST['compname']);
    $cperson = mysqli_real_escape_string($conn, $_POST['contperson']);
    $email = mysqli_real_escape_string($conn, $_POST['email']);
    $phone = mysqli_real_escape_string($conn, $_POST['phone']);
    $country = mysqli_real_escape_string($conn, $_POST['country']);

    if (mysqli_query($conn,"INSERT INTO $dbtable(compname, contperson, email, phone, country) VALUES('".$cname."','".$cperson."', '".$email."', '".$phone."', '".$country."')") != true)

    {
        echo ("ERROR: " . mysqli_error($conn) . "<br />");
        //die (mysqli_error($myConnection));    
    } else { 
        echo 'Thank you, your information has been entered into our database. <br />';
    }
    mysqli_close($conn); // CLOSE DATABASE

?>
0 голосов
/ 04 октября 2011

Попробуйте использовать почтовую функцию PHP после закрытия соединения mysql.Например ...

$my_email = На любой адрес, на который вы хотите отправить это сообщение.

$subject = Строка темы письма.

$message =Содержание письма, это может содержать ваши переменные и HTML-форматирование, если вы хотите.Что-то вроде:

$message = " $time (Central Time) \n
From: $visitor ($visitormail)\n
Message: $notes
";

$headers = Информация заголовка, что-то вроде:

$headers = "From: $visitormail \r\n" .
    "Reply-To: $visitormail \r\n" .
    'X-Mailer: PHP/' . phpversion();

... и отправьте письмо с ...

mail("$my_email", $subject, $message, $headers);

и затем вы можете перенаправить на другую страницу с помощью:

header( "Location: http://example.com/thankyou.html");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...