Хочу протестировать форму. Нашел инструмент PhantomJS. Написал небольшой скрипт:
var webpage = require('webpage');
var page = webpage.create();
page.viewportSize = { width: 1920, height: 1080 };
page.settings.userAgent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36';
page.open('http://m.tst/', function() {
console.log('Start');
page.render('before.jpeg', {format: 'jpeg', quality: '100'});
page.evaluate(function() {
document.getElementById('subject').value = 'Bot';
document.getElementById('msg').value = 'TestBot';
document.getElementById('submit').click();
});
page.render('after.jpeg', {format: 'jpeg', quality: '100'});
console.log('End');
phantom.exit();
});
На скриншотах видно, что данные в поля формы вводятся. Но письмо, которое приходит, не содержит этих данных. Можно ли как-то решить эту проблему.
<?php
// Сообщение
$message = $_POST['msg'];
$subject = $_POST['subject'];
// На случай если какая-то строка письма длиннее 70 символов мы используем wordwrap()
$message = wordwrap($message, 70, "\r\n");
// Отправляем
mail('caffeinated@example.com', $subject, $message);
?>
<form id="form" class="form" action="/" method="post">
<input id="subject" type="text" name="subject" value="">
<input id="msg" type="text" name="msg" value="">
<input id="submit" type="submit" value="Send">
</form>