Каждый файл .php
открывается с ключевым словом <?php
. Это означает, что этот файл содержит PHP код. HTML может использоваться в PHP файлах, поэтому для этого нет другого типа файла. Закройте файл php с помощью ?>
.
Вы также можете иметь отдельные строки кода PHP, например, в HTML.
<?php $title = 'Hello World'; ?>
<h1><?php echo $title; ?></h1>
You ' Вам нужно будет собрать данные, которые отправляют на сервер. PHP имеет глобальные переменные , которые являются переменными, которые доступны везде в любом файле. Например, переменная $_GET
. Если вы используете метод GET
для отправки ваших данных, вы сможете прочитать эти данные из глобальной переменной $_GET
в файле, в который вы их отправляете.
$_GET
является ассоциативным массивом . Таким образом, отправленные данные хранятся примерно так:
[
'name' => '',
'email' => '',
'comments' => ''
]
Ассоциативные массивы сопоставимы с объектами в JavaScript. У них обоих есть ключ и значение. Проверьте, установлен ли ключ с помощью функции isset()
в PHP.
Поскольку вы разрешаете пользователю отправлять данные, важно sanitize их данные. Он может содержать вредоносный код и должен рассматриваться как таковой, пока вы не очистите его . filter_var
- это функция PHP, которая может сделать это за вас.
Теперь, когда у вас есть данные и вычистили их, вы можете использовать функцию mail
, чтобы отправить письмо адрес электронной почты. Функция mail
возвращает логическое значение в зависимости от того, была ли почта успешно отправлена.
Удачи!
<?php
/**
* Get all the send data from JS.
* $_GET is a global PHP variable. It is an array
* which contains the data sent with the GET method.
*/
$name = isset($_GET['name']) ? $_GET['name'] : '';
$email = isset($_GET['email']) ? $_GET['email'] : '';
$comments = isset($_GET['comments']) ? $_GET['comments'] : '';
/**
* All data that a user can send must be treated as dirty.
* Therefor it is important to filter all malicious characters
* from the data. Otherwise you are open to vulnerabilities.
*/
$name = filter_var($name, FILTER_SANITIZE_STRING);
$email = filter_var($email, FILTER_SANITIZE_EMAIL);
$comments = filter_var($comments, FILTER_SANITIZE_FULL_SPECIAL_CHARS);
/**
* Now the data is received and sanitized we can use it
* to send an email with.
*/
$to = $email; // The email address to send to.
$from = 'sender@example.com'; // Your email address.
$subject = 'the subject';
$message = $comments; // I assume comments is the message.
$headers = 'From: ' . $from . "\r\n" . 'Reply-To: ' . $from . "\r\n" . 'X-Mailer: PHP/' . phpversion();
/**
* Send the email.
* The mail() function returns a true or false based
* on if the email was sent successfully.
*/
$mail_status = mail($to, $subject, $message, $headers);
/**
* Send a message back to JS based on if the mail has beent sent or not.
*/
if ($mail_status === true) {
return 'Mail has been sent';
} else {
return 'Sending the mail has failed';
}
?>