Есть ли простой способ использовать PHP для отправки формы по электронной почте, как она появляется на экране, вместо написания скрипта для передачи всех значений? - PullRequest
0 голосов
/ 13 апреля 2011

Хотите знать, есть ли способ отправить "Снимок экрана" через форму с использованием PHP?

Вместо того, чтобы передавать значения в скрипт для обработки и форматирования там, есть ли способ отправить форму, как показано на экране?

В идеале без окна браузера, только сама веб-страница, аналогично тому, как плагин Fireshot позволяет вам сделать снимок экрана и сохранить его.

Ответы [ 3 ]

2 голосов
/ 13 апреля 2011

Нет способа сделать это, по крайней мере, в чистом PHP.

В какой-то момент может оказаться возможным сделать снимок экрана текущего документа в элемент <canvas> и отправить егоэлемент к серверу.Но на данный момент, насколько мне известно, в любом браузере нет API для этого.

Редактировать: Кажется, есть способ сделать это с помощью Flash, хотя яЯ не уверен, что используемая здесь технология доступна как Open Source.См. Можете ли вы сделать "скриншот" страницы с помощью Canvas?

1 голос
/ 13 апреля 2011

Нет.Вы не можете сделать скриншот браузера пользователя, не установив в него никаких дополнительных плагинов, и даже тогда PHP не будет иметь с этим ничего общего.

0 голосов
/ 13 апреля 2011

Приведенный ниже метод не делает снимок (как утверждают другие, это невозможно), но это «способ» получить состояние формы в тот момент, когда пользователь нажимает кнопку снимка.Это не производственный код, это просто возможный способ его решения.Опять же, я подчеркиваю, что это не настоящий снимок, но он достигнет цели сравнения.

Вы можете заставить jQuery отправлять заполненную HTML-форму и поля через POST в PHP-скрипт, который интерпретирует HTML-код и отображает / сохраняет его.

// Some javascript file
$('#save_button').click(function(e) {
$.ajax({
   type: "POST",
   url: "save_form.php",
   data: "data=" + $('#form_id').html(),
   success: function(msg){
     alert("saved: " + msg );
   }
 });
});

А затем в PHP-файле save_form.php (вы бы хотели как-то идентифицировать моментальные снимки, либо автоинкрементировать значение, либо отправить идентификатор (timestamp, ip и т. Д.) Из запроса ajax

<?php
// connect to db
// bla bla bla - you would obviously clean the POST data before insertion

$result = mysql_query("INSERT INTO snapshots (html_source) VALUES ({$_POST['data']})");

// test result etc
// no you have the html stored, which you can view below

?>

И, наконец, есть рендер, скажем, snapshot_render.php

<?php
// you would make a request based on an id
$result = mysql_query("SELECT html_source FROM snapshots LIMIT 1");

$row = mysql_fetch_array($result);
echo $row['html_source'];

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...