Создавать фейковую картинку 1px x 1px необязательно, картинка может быть обычной и может служить элементом декора на странице.
И при этом, главное, что, может передавать данные на сервер.
html код:
javascript код:Copy Source | Copy HTML
<input type="text" id="textField"/>
- <input type="button" id="sendMessage" value="Отправить IMG"/>
- <img id="imaGet" src="picture.php?add=hello" style="width:30px;height:30px;"/>
код файла picture.php:Copy Source | Copy HTML
var messageField=document.getElementById("textField");
- var sendButton=document.getElementById("sendMessage");
- var imageElement=document.getElementById("imaGet");
- //Отправка данных на сервер методом get:
- sendButton.addEventListener("click",function(){
- //определяем куда в аддресс вставлять сообщение по позиции фрагмента:
- var pos= imageElement.src.indexOf("add=");
- var newLink= imageElement.src.substring( 0,pos)+"add="+encodeURIComponent(messageField.value);
- imageElement.src=newLink;//Присваиваем новый адресс - пофакту отправляем сообщение на сервер
- },false);
Недостатки метода отправки данных сервер с помощью тега img:Copy Source | Copy HTML
<?php
- header('Content-type: image/jpeg');
- // Можно вывести картинку
- $content = implode ( "", file ( 'image.jpg' ) );
- echo $content;
- // Полученные данные можно отлажить куда-нибудь
- $fileName="data.txt";
- if (strlen($_GET["add"])> 0){
- $fh = fopen($fileName, "a+");
- fwrite($fh, urldecode($_GET["add"])." ".date("H:i:s")."\n");
- fclose($fh);
- }
- ?>
- только запросы get;
- вся отладка на плечи кодера.
Комментариев нет:
Отправить комментарий