Доброго времени суток Имею код Код (Text): <!doctype html> <html lang="ru"> <body> <html> <head> </head> <body> <form method="POST" action=""> <input name="LastName" type="text" placeholder="Фамилия"/> <input name="FirstName" type="text" placeholder="Имя"/> <input name="Phone" type="text" placeholder="Телефон"/> <input name="Email" type="text" placeholder="Емейл"/> <input type="submit" value="Отправить"/> </form> </body> </html> <?php $servername = "XXX"; $username = "XXX"; $password = "XXX"; $dbname = "XXX"; $db_table = "Persons"; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection $lname = $_POST['LastName']; $fname = $_POST['FirstName']; $yphone = $_POST['Phone']; $ymail = $_POST['mail']; if (isset($_POST['LastName']) && isset($_POST['FirstName'])){ // Переменные с формы $id = ['mysql_insert_id ()']; $lname = $_POST['LastName']; $fname = $_POST['FirstName']; $yphone = $_POST['Phone']; $ymail = $_POST['Email']; // Параметры для подключения $db_host = "XXX"; $db_user = "XXX"; // Логин БД $db_password = "XXX"; // Пароль БД $db_table = "XXX"; // Имя Таблицы БД // Подключение к базе данных $db = mysql_connect($db_host,$db_user,$db_password) OR DIE("Не могу создать соединение "); // Выборка базы mysql_select_db("blueskya_zhiguli",$db); // Установка кодировки соединения mysql_query("SET NAMES 'utf8'",$db); $result = mysql_query ("INSERT INTO ".$db_table." (LastName,FirstName,Phone,Email) VALUES ('$lname','$fname','$yphone','$ymail')"); if ($result = 'true'){ printf("Спасибо за участие, Ваш призовой ID %d\n", mysql_insert_id()); ; }else{ echo "Информация не занесена в базу данных"; } } ; mail("$ymail", "My Subject", "Спасибо за участие, Ваш призовой номер $lastid"); ?> </html> Как правильно написать переменную $lastid, что бы в тексте письма отправляемого функцией mail выводило id записи
А зачем вызов функции брать в апострофы? И ты уж реши, каким расширением пользоваться, а то у тебя и mysqli, и mysql (которое устарело, вообще-то, лет 5 как)
Вы поймите я конкретно в коде ну совсем совсем пока блин рагопил, у меня задача какая - сделать то что необходимо, я вот этот файл натаскал из интернета из разных заготовок у людей и он работает я сам прекрасно понимаю что там есть ошибки и их очень много, это вопрос времени когда я научусь писать без ошибок, сейчас задача сделать так чтобы юзер забивал в поле email и чтобы на этот e-mail сразу же отправлялся ID записи этой формы, который вводятся в базу данных. Если вы мне можете по этому поводу помочь Я буду премного благодарен если вы можете понятным языком Объяснить и сделать замечание по поводу того как правильно исправить на примере показать ошибки которые допущены я тоже буду благодарен
Ну не совсем, я готов минимально отблагодарить - долларов 10-15$. И я же не прошу с нуля нафигачить, я один вопрос задаю - как прописывается переменная последнего id.
PHP: <!doctype html> <html lang="ru"> <body> <html> <head> </head> <body> <form method="POST" action=""> <input name="LastName" type="text" placeholder="Фамилия"/> <input name="FirstName" type="text" placeholder="Имя"/> <input name="Phone" type="text" placeholder="Телефон"/> <input name="Email" type="text" placeholder="Емейл"/> <input type="submit" value="Отправить"/> </form> </body> </html> <?php $servername = "XXX"; $username = "XXX"; $password = "XXX"; $dbname = "XXX"; $db_table = "Persons"; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection $lname = $_POST['LastName']; $fname = $_POST['FirstName']; $yphone = $_POST['Phone']; $ymail = $_POST['mail']; if (isset($_POST['LastName']) && isset($_POST['FirstName'])){ // Переменные с формы $id = ['mysql_insert_id ()']; $lname = $_POST['LastName']; $fname = $_POST['FirstName']; $yphone = $_POST['Phone']; $ymail = $_POST['Email']; // Параметры для подключения $db_host = "XXX"; $db_user = "XXX"; // Логин БД $db_password = "XXX"; // Пароль БД $db_table = "XXX"; // Имя Таблицы БД // Подключение к базе данных $db = mysql_connect($db_host,$db_user,$db_password) OR DIE("Не могу создать соединение "); // Выборка базы mysql_select_db("blueskya_zhiguli",$db); // Установка кодировки соединения mysql_query("SET NAMES 'utf8'",$db); $result = mysql_query ("INSERT INTO ".$db_table." (LastName,FirstName,Phone,Email) VALUES ('$lname','$fname','$yphone','$ymail')"); if ($result = 'true'){ $lastid = mysql_insert_id(); printf("Спасибо за участие, Ваш призовой ID %d\n", $lastid); }else{ echo "Информация не занесена в базу данных"; } } mail("$ymail", "My Subject", "Спасибо за участие, Ваш призовой номер $lastid"); ?> </html> как то так если не править ошибки и прочее если интересует как надо более правильно скайп anatolva письмо по идее надо отправлять только при удачной записи ну и т.д.
А как же очевидные ошибки?)) --- Добавлено --- Вообще, мне интересно стало, и решил запилить ему этот код. Всезнающий класс PHP: <?php /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ class MailForm { private $firstName; private $lastName; private $phone; private $email; // private $tableName = 'test'; private $errors = array(); function __construct() { $this->setFirstName(); $this->setLastName(); $this->setPhone(); $this->setEmail(); } function setFirstName() { $first_name = filter_input(INPUT_POST, 'first_name', FILTER_SANITIZE_STRING); if (!empty($first_name)) { $this->firstName = $first_name; } else { $this->errors[] = "Имя обязательное поле"; } } function setLastName() { $last_name = filter_input(INPUT_POST, 'last_name', FILTER_SANITIZE_STRING); if (!empty($last_name)) { $this->lastName = $last_name; } else { $this->errors[] = "Фамилия обязательное поле обязательное поле"; } } function setPhone() { $phone = filter_input(INPUT_POST, 'phone', FILTER_SANITIZE_NUMBER_INT); if (!empty($phone)) { $this->phone = $phone; } else { $this->errors[] = "Телефон обязательно надо указывать"; } } function setEmail() { $email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL); if (!empty($email)) { $this->email = $email; } else { $this->errors[] = "Укажите вашу электронную почту"; } } /** * Если валидация успешна, возвращается true иначе массив с ошибками * * @return boolean|array */ function validate() { if (empty($this->errors)) { return TRUE; } return $this->errors; } function sendMail($message = '') { try { $pdo = new pdo(DSN, DBUSER, DBPASS, array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, )); } catch (PDOException $pe) { echo $pe->getMessage(); } $query = " INSERT INTO `$this->tableName`( `first_name`, `last_name`, `phone`, `email` ) VALUES( :first_name, :last_name, :phone, :email )"; //echo $query; $stmt = $pdo->prepare($query); $stmt->bindParam(':first_name', $this->firstName); $stmt->bindParam(':last_name', $this->lastName); $stmt->bindParam(':phone', $this->phone); $stmt->bindParam(':email', $this->email); $result = $stmt->execute(); if ($result === TRUE) { printf($message, $pdo->lastInsertId()); mail($this->email, "My Subject", $message . $pdo->lastInsertId()); } else { echo "Информация не занесена в базу данных"; } } } сама форма HTML: <?php include 'handler.php'; ?> <!DOCTYPE html> <html lang="ru"> <body> <html> <head> </head> <body> <form method="POST" action=""> <input name="last_name" type="text" placeholder="Фамилия"> <input name="first_name" type="text" placeholder="Имя"> <input name="phone" type="text" placeholder="Телефон"> <input name="email" type="text" placeholder="Емейл"> <input type="submit" name="htmlform" value="Отправить"> </form> </body> </html> конфиг PHP: <?php /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ define('DBHOST', 'localhost'); define('DBUSER', 'root'); define('DBPASS', ''); define('DBNAME', 'xmld'); define('DSN', 'mysql:dbname=xmld;host=127.0.0.1;charset=utf8'); как использовать PHP: <?php /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ include 'config.php'; include __DIR__ . '/classes/MailForm.php'; $form = new MailForm(); $validate = $form->validate(); if ($validate === TRUE) { $form->sendMail("Спасибо за участие, Ваш призовой ID %d\n"); exit(); } else { var_dump($validate); } файловая структура
Гайз, вы красавцы - спасибо огромное, я короче сегодня помучаюсь, всё это дело впилю и как догребу до терминала Скину Вам мою скромную благодарность!