Перейти к содержимому

Как передать данные из html в php

  • автор:

Передача переменных между страницами.

В этой статье я расскажу о том, как передавать переменные и их значения между страницами. Когда-то для меня это было не такой простой и тривиальной задачей, какой я вижу ее сейчас.
Итак, можно выделить три основных способа передачи переменных между PHP скриптами:

  1. Через массив $_GET
  2. Через массив $_POST
  3. Через массив $_SESSION

Каждый из этих вариантов удобен в конкретных случаях, и обычно, определить каким из массивов пользоваться не сложно. Зачем же передавать данные от одной страницы другой? Примеров масса, здесь и отправка html-формы на электронную почту, и авторизация пользователей, и работа корзины интернет магазина, а также различные фильтры и много много другого. На самом деле владеть методами работы с передачей данных между страницами необходимо любому, кто работает с PHP, без этого ну никуда. Итак, рассмотрим каждый метод передачи данных по очереди:

  1. Передача данных в суперглобальном массиве $_GET. Как она происходит. Например, у вас есть страница, на которой динамически выводятся какие-либо данные. Чтобы было понятнее, возьмем интернет магазин (я думаю, практически каждый хоть раз сталкивался с написанием интернет магазинов, а если не сталкивался, то обязательно столкнется). Есть страница со списком товаров, и есть страница описания конкретного товара. Вывод описания товара осуществляется по его уникальному идентификатору в базе данных (естественно, я не рассматриваю случай, когда для каждого товара есть своя отдельная html страничка, на которую ведет ссылка из списка товаров, и я надеюсь что вы тоже уже переросли такие сайты). Задача заключается в следующем: Есть две страницы: список товаров и описание товара. Как определить, описание какого товара показать пользователю, пришедшему со страницы списка товаров?
    Решение:
    http://домен.ру/product_list.php — список товаров
    http://домен.ру/product_details.php — описание конкретного товара. Чтобы передать идентификатор на страницу product_details.php нужно обратиться к ней по ссылке:
    http://домен.ру/product_details.php?product_id=идентификатор_продукта
    и тогда значение идентификатора товара будет доступно как переменная $_GET[‘product_id’]. Ну и дальше можно его использовать в любом месте скрипта product_details.php. Обратите внимание, что все переменные передаются в адресной строке после знака вопроса (?), чтобы предать несколько переменных их разделяют знаком &. Например:
    http://домен.ру/product_list.php?category_id=1&order_by=price&order=DESC
    В этом примере мы передали файлу product_list.php переменные $_GET[‘category_id’], $_GET[‘order_by’] и $_GET[‘order’]. Зачем это нужно? Например при сортировке списка товаров запрос к базе данных выглядит следующим образом:
    SELECT * FROM products ORDER BY price DESC
    Передав переменные order_by, order и category_id Можно переписать наш запрос так:
    SELECT * FROM products WHERE category_id=$_GET[‘category_id’] ORDER BY $_GET[‘order_by’] $_GET[‘order’];
    Таким образом можно писать фильтры для упорядоченного вывода данных.
  2. Передача переменных в массиве $_POST. Здесь уже не все так очевидно, как в случае $_GET, однако сложного тоже ничего нет. Каждый из нас ежедневно сталкивается с html-формами (авторизация, регистрация, поиск и т.д. и т.д.). А как и куда передаются данные, введенные вами в форме? Рассмотрим самую простую форму:

Рассмотрим первую строку. Значение атрибута action определяет файл обработчик формы, т.е. тот файл, которому будут доступны переменные формы. Атрибут action может быть и пустым, тогда обрабатывать форму можно в той же странице, в которой она выводится. Атрибут method определяет, в какой массив будут помещены значения полей формы. Если method=”get”, переменные будут доступны в массиве $_GET, еслиmethod=”post” — $_POST. Теперь перейдем непосредственно к полям формы. Мы создали всего одно текстовое поле с атрибутом name=”some_field”, который и определяет имя переменной, которое будет соответствовать значение поля. Т.е., после нажатия кнопки отправить, доступ к значению поля some_field можно получить как $_POST[‘some_field’]. На самом деле, есть еще один массив $_REQUEST, который может содержать как массив $_GET, так и массив $_POST, но его я встречал только в backend-файлах AJAX приложений, поэтому ничего по поводу того, как его использовать сказать не могу.
Обратимся к случаю, когда обработчик формы и сама форма находятся в одном файле. Вот пример кода:

if (empty($_POST)) ?>

>
else print_r($_POST);
>

Сразу оговорюсь, что я не рассматривал использование массива $_COOKIES. Почему? Может быть кому-то это покажется странным, но я до сих пор им ни разу не пользовался, поэтому не могу сходу описать, как с ним работать.
Подводя итог, можно сказать, что каждый метод удобен в том или ином случае. Переменные массива $_GET удобны для написания фильтров и условий; $_POST – для передачи больших массивов, например текстовое описание и т.д. (передача данных методом $_POST используется в панели управления сайтом для администрирования и добавления данных); $_SESSION удобно использовать в тех случаях, когда доступ к переменным нам может понадобится на любой из страниц сайта. На этом, я думаю можно закончить. Если возникли вопросы – пишите на форуме.

PHP и HTML

PHP и HTML тесно взаимодействуют: PHP может генерировать HTML, а HTML может передавать информацию PHP. Перед чтением вопросов в этом разделе важно чтобы вы понимали как получать переменные извне PHP. Страницы руководства по этой теме содержат много примеров.

  1. Какое кодирование/декодирование я должен выполнять при передаче значения через форму/URL?
  2. Я пытаюсь использовать , но переменные $foo.x и $foo.y недоступны. $_GET[‘foo.x’] тоже не существует. Где они?
  3. Как создать массивы в HTML ?
  4. Как получить все результаты из HTML-тега select с атрибутом multiple?
  5. Как я могу передать переменную из JavaScript в PHP?

Какое кодирование/декодирование я должен выполнять при передаче значения через форму/URL?

  • Интерпретация HTML. Для того, чтобы задать произвольную строку, вы должны заключить её в двойные кавычки и использовать htmlspecialchars() для кодирования.
  • URL: URL состоит из нескольких частей. Если вы хотите чтобы ваши данные были восприняты как один элемент, вы должны закодировать их с помощью urlencode() .

Пример #1 Скрытый элемент HTML-формы

echo ‘. htmlspecialchars ( $data ) . ‘» />’ . «\n» ;
?>

Замечание: Использовать urlencode() для $data неправильно, так как кодировать данные в urlencode() это обязанность браузера. Все популярные браузеры делают это правильно. Отметьте, что это происходит вне зависимости от метода (например, GET или POST). Вы заметите это только в случае GET-запроса, так как POST-запросы обычно скрыты.

Пример #2 Данные, редактируемые пользователем

echo «» ;
?>

Замечание: Данные показываются браузером как предполагается, потому что браузер будет интерпретировать экранированные HTML-символы. При отправке через GET или POST данные будут закодированы (urlencoded) браузером для передачи и декодированы (urldecoded) PHP. Поэтому вам не надо выполнять какое-либо кодирование/декодирование url самостоятельно, всё обрабатываются автоматически.

Пример #3 В URL

Замечание: На самом деле вы подделываете HTML GET-запросом, поэтому необходимо вручную закодировать ( urlencode() ) данные.

Замечание: Вам надо применить htmlspecialchars() ко всему URL, потому что URL появляется как значение HTML-атрибута. В этом случае, браузер сначала раскодирует всё значение (обратная операция htmlspecialchars() ) и затем передаст URL. PHP поймёт URL правильно, так как вы закодировали данные с urlencode() . Вы заметите, что & в URL заменяется на & . Хотя большинство браузеров это исправляют, если вы забудете об этом, но всё же это не всегда возможно. Поэтому, даже если ваш URL не динамический, вам надо закодировать его с помощью htmlspecialchars() .

Я пытаюсь использовать , но переменные $foo.x и $foo.y недоступны. $_GET[‘foo.x’] тоже не существует. Где они?

При отправке формы, вместо стандартной кнопки отправки возможно использовать изображение с тэгом как:

Когда пользователь кликает где-либо на картинке, серверу будет послана сопутствующая форма с двумя дополнительными переменными: foo.x и foo.y .

Так как имена foo.x и foo.y не разрешены в PHP, они автоматически преобразуются в foo_x и foo_y . То есть, точки заменяются на подчёркивания. Таким образом, вы обращаетесь к этим переменным так же, как и к любым другим, описанным в разделе о получении переменных извне PHP. Например, $_GET[‘foo_x’] .

Замечание:

Пробелы в именах переменных запроса преобразуются в подчёркивания.

Как создать массивы в HTML ?

Для того, чтобы результаты были переданы вашему PHP скрипту как массив, именуйте элементы , или следующим образом:

Заметьте квадратные скобки после имени переменной, это делает её массивом. Вы можете сгруппировать элементы в массив, присваивая одно и то же имя разным элементам:

Это создаст два массива, MyArray и MyOtherArray, которые будут переданы PHP-скрипту. Также возможно задать определённые ключи для ваших массивов:

Массив AnotherArray теперь будет содержать ключи 0, 1, email и phone.

Замечание:

Определять ключи массивов в HTML необязательно. Если вы не установите ключи, массив заполняется в порядке появления элементов в форме. Наш первый пример будет содержать ключи 0, 1, 2 и 3.

Как получить все результаты из HTML-тега select с атрибутом multiple?

HTML-тег select с указанным multiple позволяет пользователю выбрать несколько элементов из списка. Эти элементы затем передаются обработчику формы. Проблема в том, что они все переданы с одним и тем же именем. Например:

Каждая выбранная опция поступит обработчику формы как:

var=option1 var=option2 var=option3

Каждая опция будет перезаписывать содержимое предыдущей переменной $var . Решение — воспользоваться возможностью PHP — «массив из элемента формы». Следует использовать следующее:

Это укажет PHP обрабатывать $var как массив и каждое присваивание значения в var[] добавит элемент в массив. Первым элементом будет $var[0] , следующим — $var[1] и т.д. Функция count() может быть использована для определения, сколько элементов было выбрано, а функция sort() — для сортировки массива опций, если это необходимо.

Заметьте, что если вы используете JavaScript, то [] в имени элемента могут вызвать проблемы, если вы пытаетесь обращаться к элементу по имени. Вместо этого используйте числовой идентификатор элемента формы или заключите имя переменной в одинарные кавычки и используйте его как индекс массива элементов, например:

variable = document.forms[0].elements['var[]'];

Как я могу передать переменную из JavaScript в PHP?

Так как JavaScript является (обычно) клиентской технологией, а PHP, как правило, серверной, и поскольку HTML — протокол «без состояния», эти два языка не могут обмениваться переменными напрямую.

Однако, возможно передавать переменные между ними. Один из способов достичь этого — сгенерировать JavaScript-код из PHP и принудительно обновлять браузер, посылая определённые переменные обратно PHP-скрипту. Нижеприведённый пример показывает как это сделать — он позволяет PHP-коду получить высоту и ширину экрана, что, обычно, возможно только на стороне клиента.

Пример #4 Генерирование JavaScript из PHP

if (isset( $_GET [ ‘width’ ]) AND isset( $_GET [ ‘height’ ])) // выводим переменные с размерами
echo «Ширина экрана: » . $_GET [ ‘width’ ] . «
\n» ;
echo «Высота экрана: » . $_GET [ ‘height’ ] . «
\n» ;
> else // передаём переменные с размерами
// (сохраняем оригинальную строку запроса
// — post переменные нужно будет передавать другим способом)

User Contributed Notes

There are no user contributed notes for this page.

  • ЧАВО
    • Общая информация
    • Списки рассылки
    • Получение PHP
    • Вопросы по базам данных
    • Установка
    • Проблемы сборки
    • Использование PHP
    • Хеширование паролей
    • PHP и HTML
    • PHP и COM
    • Разные вопросы

    Массивы $_POST и $_GET в PHP. Обработка форм

    Формы — это часть языка HTML. Формы нужны для передачи данных от клиента на сервер. Чаще всего формы используются для регистрации пользователей, заполнения анкет, оформления заказа в интернет магазине, и так далее.

    Через формы можно отправлять как простую текстовую информацию, так и файлы.

    Большую часть времени программирования на PHP вы будете так или иначе работать с формами и данными из них.

    HTML описывает то, из каких элементов состоит форма, и как она выглядит. Но без принимающей стороны, то есть сервера, который принимает эти данные и обрабатывает их нужным образом, создавать формы нет никакого смысла.

    PHP содержит множество средств для работы с формами. Это позволяет очень просто решать типичные задачи, которые часто возникают в веб-программировании:

    • Регистрация и аутентификация пользователя;
    • Отправка комментариев на форумах и социальных сетях;
    • Оформление заказов.

    Практически любой современный сайт содержит как минимум несколько разных HTML-форм.

    Отправка формы

    Рассмотрим один типичный пример — форма обратной связи. Для связи пользователей с авторами сайта, как правило, используются формы обратной связи, где человек указывает имя, почту для обратной связи и текст своего сообщения.

    Такая форма в HTML может выглядеть следующим образом:

     

    Это очень простая форма, состоящая из трёх полей и одной кнопки отправки.

    Почти весь приведённый код описывает внешний вид и содержание формы, но следует обратить внимание на два атрибута тега , которые нужны для указания на способ обработки данных:

    method — этот атрибут используется для определения метода HTTP, который будет использован для передачи данных на сервер. Вы уже знакомы с HTTP-методом GET, предписывающим серверу просто вернуть определённый документ.

    Метод POST сообщает о намерении передать на сервер некоторую информацию, что, впрочем, не отменяет последующее получение контента.

    action — содержит адрес PHP-скрипта, который должен обработать эту форму.

    После нажатия на кнопку «отправить», браузер выполняет POST запрос со введёнными данными на адрес, указанный в атрибуте action.

    Обработка формы

    После отправки формы управление передаётся PHP-скрипту, который должен получить переданные данные, выполнить с ними какие-либо действия (например, сохранить в базе данных) и показать результат.

    Результатом может быть какое-нибудь сообщение об успешном завершении операции, например, «ваши данные успешно отправлены».

    Поэтому требуется в первую очередь научиться получать данные из формы в сценарии.

    В PHP это делается легко — все данные из формы находятся в глобальном ассоциативном массиве $_POST . Этот массив всегда будет неявно присутствовать в сценарии, если он был загружен по методу POST.

    Каждое поле из формы будет находиться в массиве, где ключом будет значение атрибута name, а значением содержимое поля. Например, чтобы вывести из формы всю информацию на экран, можно написать такой сценарий:

    Email: " . $_POST['email']); print("
    Сообщение: " . $_POST['message']); > ?>

    Функция isset служит для определения, существует ли переданная ей переменная. Так мы проверяем, что сценарий загружен методом POST, то есть была отправлена форма.

    Как правило, после обработки формы в PHP, сценарий должен переадресовать пользователя на другую страницу. Это связано с тем, что если форма была отправлена через метод POST, то после обновления страницы данные будут отправлены ещё раз, а это, в большинстве случаев, нежелательное поведение.

    Отправка файлов

    Кроме текстовой информации, существует возможность отправлять на сервер файлы любых типов. Пример формы для загрузки файла:

     Ваш аватар: 

    Тут есть два важных отличия от первого примера:

    • Добавился новый атрибут enctype, который всегда должен иметь значение multipart/form-data . Если его не будет, то файл не отправится.
    • Сам файл загружается при помощи поля с типом file.

    В PHP загруженный файл будет доступен в другом специальном массиве — $_FILES .

    PHP автоматически сохраняет все загруженные файлы во временную папку на сервере. Но хранить там файлы нельзя, потому что эта директория периодически очищается, и ссылку на такой файл нельзя дать на сайте. Решение здесь только одно — переместить загруженный файл в другую папку. Перемещение файла всегда выполняют сразу после загрузки.

    Для начала нужно убедиться, что в рабочей директории проекта существует папка для хранения загруженных файлов. Пусть она называется uploads .

    Перемещение загруженного файла

    Для перемещения файла нужно знать, где он находится сейчас, и адрес папки, в которую он будет переноситься.

    С текущим адресом всё крайне просто — он уже находится в массиве $_FILES . Новый адрес файла, в свою очередь, состоит из пути к папке и имени файла. Так как папка uploads находится там же, где и текущий сценарий, получить путь к ней можно так: dirname(__FILE__ )`.

    Код для перемещения файла в новую папку:

    Функция move_uploaded_file() выполняет два действия:

    • Проверяет, что файл действительно загружен через форму.
    • Перемещает загруженный файл по новому адресу.

    Валидация формы

    Валидация формы — это проверка содержимого её полей. Задача такой проверки — убедиться, что необходимые поля заполнены, а значения в них соответствуют ожидаемому формату.

    Так, например, при регистрации пользователя на сайте, он должен заполнить поля с адресом электронной почты и придумать себе пароль. Оба поля обязательны к заполнению, но значение из поля email также должно быть корректным email-адресом.

    Помимо текстовых значений формы, можно проверять формат и размер загружаемых файлов.

    Общий подход к валидации

    При выполнения валидации любой формы порядок действий будет всегда одним:

    • Сформировать массив с именами полей, обязательных к заполнению.
    • Сформировать массив с правилами для валидации формата полей.
    • Получить значения всех полей.

    Дополнительные материалы:

    • Функции в PHP: что это такое и как они работают
    • Чем отличаются HTTP-методы GET и POST
    • Подробнее про тег

    «Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.

    Читать дальше

    Как работает протокол HTTP

    Как работает протокол HTTP

    HTTP был разработан в 1990-х годах для создания первого интерактивного текстового веб-браузера. За эти годы протокол менялся и совершенствовался, становился более гибким и постепенно превратился в современный интернет. В статье рассмотрим принцип работы протокола и что важно знать о нём разработчику.

    • 8 февраля 2023

    10 популярных функций в MYSQL, которые вам нужно знать

    10 популярных функций в MYSQL, которые вам нужно знать

    Без лишних слов принесли вам некоторые популярные функции MySQL, без которых вы точно не обойдётесь в работе.

    • 17 января 2023

    Подключение файлов в PHP. Метод require()

    Подключение файлов в PHP. Метод require()

    Способность вызывать сценарий из отдельного файла по его имени называется в PHP подключением файлов. Подключают PHP-сценарии, любые текстовые файлы или HTML-страницы.

    • 21 ноября 2022

    Массивы в PHP

    Массивы в PHP

    Массив — это ещё один тип данных, вроде числа или строки. Главное отличие массива от остальных типов данных заключается в его способности хранить в переменной больше одного значения. В предыдущих примерах имя переменной всегда ассоциировалось только с одним значением:

    • $name = «Иннокентий»
    • $age = 42

    А если мы хотим узнать не только пол, имя и возраст пользователя, но и, допустим, любимые сериалы? Очень непросто назвать один самый любимый сериал, а вот вспомнить несколько — намного легче. Сохранение в переменную-массив нескольких значений выглядит так:

     $fav_shows = ["game of thrones", "american horror story", "walking dead"]; 

    В этом примере мы сохранили в переменной $fav_shows сразу три значения. Но сохранить эти данные — это только половина дела. Как с ними потом работать? Уже знакомый вам способ вывода переменной на экран не будет работать с массивами:

    Так увидеть список любимых сериалов не получится. Дело в том, что массив — это не обычная переменная. Массив хранит не простые типы, вроде текста или чисел (их ещё называют «скалярными типами»), а более сложную структуру данных, поэтому здесь нужен особый подход.

    Внутри массива у каждого значения есть адрес, по которому к нему можно обратиться. Такой адрес называется индексом. Индекс — это просто порядковый номер значения внутри массива. Индексация начинается с нуля, так что первый элемент получает индекс — 0 , второй — 1 , и так далее.

    Чтобы получить определенный элемент массива, необходимо знать его индекс (ключ). Напечатаем названия всех сериалов из массива через запятую:

    Теперь можно дать определение массива: Массив — это совокупность множества элементов вида «ключ: значение».

    Массивы позволяют перезаписывать существующие значения и добавлять новые. Добавить новое значение в массив можно так:

    $fav_shows[] = "the big bang theory"; 

    Новый элемент автоматически получит индекс равный максимальному индексу из существующих + 1. «Теория большого взрыва» сохранится в массиве под индексом 3 .

    Если нам перестал нравиться один из сериалов, так как новый сезон оказался очень плох или появился новый фаворит, значения в массиве можно заменить. Чтобы вычеркнуть старое значение и заменить его новым, нужно присвоить новое значение любому из существующих в массиве индексов:

    $fav_shows[4] = "fargo"; 

    Для полного удаления (без замены на другое) значения по его индексу существует функция unset :

    unset($fav_shows[4]); 
    • 10 ноября 2022

    Синтаксис PHP

    Синтаксис PHP

    Разберёмся, из чего состоит любой язык программирования.

    У каждого языка есть правила и конструкции, следуя которым мы выражаем мысли и делаем их понятными для другого человека. В программировании всё точно так же. Но вместо человеческого языка мы используем язык программирования PHP, а в роли нашего собеседника выступает PHP-интерпретатор. Поэтому, чтобы выразить свою мысль, мы должны сделать её понятной для интерпретатора.

    • 27 октября 2022

    Учебник по PHP

    Учебник по PHP

    1. Знакомство с языком
      • Что такое PHP
      • Синтаксис PHP
      • Массивы
      • Циклы
      • Функции
    2. Шаблонизация и подключение файлов
      • Подключение файлов
      • Шаблонизация
    3. Протокол HTTP и формы
      • Протокол HTTP
      • Формы
      • Уязвимости
    4. Идентификация пользователя на сайте
      • Аутентификация пользователя
    5. Базы данных
      • База данных
      • SQL
      • MySQL в PHP
      • Безопасность в MySQL
    6. Объекты и использование библиотек
      • Объекты
      • Библиотеки
      • Composer
    • 10 сентября 2022

    Протокол HTTP и работа с заголовками

    Протокол HTTP и работа с заголовками

    Весь современный веб построен на модели взаимодействия клиента и сервера. Как она работает:

    • браузер пользователя (клиент) отправляет на сервер запрос с адресом сайта (URL);
    • сервер получает запрос и отдаёт клиенту запрошенный контент.

    Для реализации процесса используется универсальный протокол HTTP.

    • 10 сентября 2022

    Защита от SQL-инъекций

    Защита от SQL-инъекций

    Внедрение SQL-кода (SQL инъекция) — один из распространённых способов взлома сайтов, работающих с базами данных. Способ основан на внедрении в запрос произвольного SQL-кода. Внедрение SQL позволяет хакеру выполнить произвольный запрос к базе данных (прочитать содержимое любых таблиц, удалить, изменить или добавить данные).

    Атака этого типа возможна, когда недостаточно фильтруются входные данные при использовании в SQL-запросах.

    • 10 сентября 2022

    Объекты и классы в PHP

    Объекты и классы в PHP

    Объекты в PHP — это просто ещё один тип данных. Объект позволяет хранить в переменной набор из свойств и их значений, а также встроенные функции. Это делает объекты похожими по своей структуре на ассоциативные массивы. Но отличие от массивов всё-таки есть, и при этом достаточно важное — объекты могут иметь внутреннее состояние.

    • 10 сентября 2022

    Циклы в PHP. Краткое руководство

    Циклы в PHP. Краткое руководство

    Цикл — это конструкция языка, которая выполняет блок кода больше одного раза.

    Мы привыкли, что сценарии выполняются линейно: сверху вниз, строчка за строчкой. Но что делать, если надо повторить какую-нибудь инструкцию несколько раз? Например, как вывести на экран натуральные числа от 1 до 9?

    Есть очевидный способ:

    Но он заставляет писать много кода. И что если требуется вывести последовательность из миллиона чисел? Ещё бывают ситуации, когда заранее неизвестно сколько раз нужно выполнить определённую инструкцию.

    Использование циклов значительно упрощает и укорачивает код. Циклы незаменимы в ситуациях, когда заранее неизвестно сколько раз должен выполниться блок кода. Такое число зависит от множества условий и вычисляется в момент выполнения сценария.

    Так выглядит цикл в PHP:

    • 10 сентября 2022

    Как передать данные из html в php

    Здесь могла бы быть ваша реклама

    Покинул форум
    Сообщений всего: 4574
    Дата рег-ции: Июль 2006
    Откуда: Israel

    Помог: 3 раз(а)

    Секрет
    Теперь, когда вы уже наверняка второпях отправили свой запрос,
    я расскажу вам простой секрет, который сэкономит вам уйму ожиданий,
    даже если первый ответ по теме последуем сразу же.

    Само собой я знаю что ответят мне тут же, и если я посмотрю
    на сообщения на форуме, то пойму что в общем то я и не ошибаюсь.
    Но еще я точно замечу, что очень мало тем, в которых всего два ответа :
    вопрос автора и еще два сообщение вида Ответ + Спасибо

    После этого приходится начинать уточнять этим неграмотным что мне надо.
    Они что, сами читать не умеют? А уточнять приходится.
    И иногда пока они переварят то что я им скажу проходит и не одна ночь..

    Уверен что если бы я им сказал что у меня есть
    фиолетовый квадрат, и нужно превратить его в синий треугольник
    и я пытался взять кисточку, макнуть в банку и поводить ей по квадрату
    но почему то кисточка не принимала цвет краски в банке,
    то на мой вопрос — где взять правильные банки мне бы ответили гораздо быстрее
    предложив её открыть, а не тратить еще стольник на жестянку.

    Поэтому с тех пор я строю свои вопросы по проверенной давным давно схеме:
    Что есть
    Что нужно получить
    Как я пытался
    Почему или что у меня не получилось.

    На последок как оно происходит на форумах

    Цитата:

    Новичок: Подскажите пожалуста самый крепкий сорт дерева! Весь инет перерыл, поиском пользовался!
    Старожил: Объясни, зачем тебе понадобилось дерево? Сейчас оно в строительстве практически не используется.
    Новичок: Я небоскрёб собираюсь строить. Хочу узнать, из какого дерева делать перекрытия между этажами!
    Старожил: Какое дерево? Ты вообще соображаешь, что говоришь?
    Новичок: Чем мне нравиться этот форум — из двух ответов ниодного конкретного. Одни вопросы неподелу!
    Старожил: Не нравится — тебя здесь никто не держит. Но если ты не соображаешь, что из дерева небоскрёбы не строят, то лучше бы тебе сначала школу закончить.
    Новичок: Не знаите — лучше молчите! У меня дедушка в деревянном доме живёт! У НЕГО НИЧЕГО НЕ ЛОМАЕТСЯ.
    Но у него дом из сосны, а я понимаю, что для небоскрёба нужно дерево прочнее! Поэтому и спрашиваю. А от вас нормального ответа недождёшся.
    Прохожий: Самое крепкое дерево — дуб. Вот тебе технология вымачивания дуба в солёной воде, она придаёт дубу особую прочность:
    Новичок: Спасибо, братан! То что нужно.

    Отредактировано модератором: Uchkuma, 26 Апреля, 2011 — 10:21:12

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *