За последние 24 часа нас посетили 22284 программиста и 1054 робота. Сейчас ищут 652 программиста ...

Как отправить POST весь html код текущей страницы.

Тема в разделе "PHP для новичков", создана пользователем heeg, 11 апр 2017.

Метки:
  1. heeg

    heeg Новичок

    С нами с:
    11 апр 2017
    Сообщения:
    15
    Симпатии:
    0
    Здравствуйте! У меня есть огромная 3Мb html страничка. я редактирую ее на своем компьютере через блокнот (что-то в браузере) или Dreamviewer если он есть под рукой. Потом делаю предпросмотр в браузере и если все ок, то заливаю к себе через filezilla (который тоже не всегда есть под рукой).

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

    Мне нужно, при помощи post отправить весь html код странички (страничка открыта локально с рабочего стола), принять его на сервере и сохранить в папку test под названием index.html . Отправлять post желательно с паролем, чтобы кто-то дугой вне в эту папку не напихал своих данных.

    Такое возможно сделать?
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.820
    Симпатии:
    736
    Адрес:
    Татарстан
    1) 3mb html страничка - это не совсем нормально и хорошо, вы что и картинки и css все туда включаете?
    2) Теоретически можно.
    • Для этого у себя запускаете Html форму с кнопкой выбора файла - указываете свой файл и жмете отправить. На сервере - скрипт принимает его и сохраняет его где нужно
    • Использовать cURL, и заранее жестко указать все что нужно отправлять - далее как выше - на сервер - скрипт итд
    А вообще ерундой какой то попахивает и ничем не легче чем заливать через фтп. Может вообще захотите по электронке слать страничку, а скрипт чтоб размещал её куда нужно. ( теоретически и такое можно сделать) только нафиг никому не нужно
     
  3. heeg

    heeg Новичок

    С нами с:
    11 апр 2017
    Сообщения:
    15
    Симпатии:
    0
    А можно без указывания фаила для заливки? Форма же находится на той же странице, которую нужно отправить. То есть она отправляет весь html код включая саму себя. Как вообще получить в переменную весь код страницы включая метатеги и доктайп сверху? И как сервером сохранить это в файл?
    Вот моя страничка, которая попахивает ерундой ))) http://heeg.ru/heeg5.1.1.zip это просто блокнот Tiddlywiki heeg.html с модулем магазина и он пока не может себя отправить.... В нем нет вшитых картинок и шрифтов, CSS правда внутри.
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.820
    Симпатии:
    736
    Адрес:
    Татарстан
    кнопель на сайте - отправить себя - вызов через ajax скрипта на пхп (а это значит что у вас должен быть запущен веб сервер и пхп) скрипт - отсылает на сервер ваш файл - все довольны
     
  5. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.551
    Симпатии:
    1.754
    Фига. Там несколько категорий интернет-магазина прямо на одной страничке...
     
  6. heeg

    heeg Новичок

    С нами с:
    11 апр 2017
    Сообщения:
    15
    Симпатии:
    0
    У меня дома нет веб сервера (если я понимаю вообще о чем речь) Мне форму со всей страницей нужно отправить через ajax (javascript) PHP на рабочем столе не работает. И самое главное принять этот "груз" сервером (сайтом) в интернете и сохранить.....
     
  7. heeg

    heeg Новичок

    С нами с:
    11 апр 2017
    Сообщения:
    15
    Симпатии:
    0
    написал для эксперимента файлик save.php и отправляю на него данныеиз формы.

    PHP:
    1. <?php
    2. if(isset($_POST['rsubmit']) and $_POST['name']=="admin") {
    3.  
    4.        $mess = "\nНомер заказа:" .substr(htmlspecialchars(trim($_POST['order_number'])), 0, 100) ."\nИмя:" .substr(htmlspecialchars(trim($_POST['name'])), 0, 100)."\nE-mail адрес:" .substr(htmlspecialchars(trim($_POST['email'])), 0, 100)."\nтелефон:" .substr(htmlspecialchars(trim($_POST['telephone'])), 0, 100)."\nадрес доставки:" .substr(htmlspecialchars(trim($_POST['delivery_adress'])), 0, 10000)."\nссылка на заказ:" .substr(htmlspecialchars(trim($_POST['link_for_your_order'])), 0, 10000)."\nкомментарии:" .$_POST['client_comments'] ."\nЗаказ: \n" .substr(htmlspecialchars(trim($_POST['manager_comments'])), 0, 1000000) ."\n ";
    5.  
    6. $file=fopen("file.html", "w");
    7. fwrite ($file, $mess);
    8. fclose($file);
    9.  
    10.         echo 'Спасибо! Ваш заказ отправлен.';
    11.    
    12. }
    13. ?>
    данные приходят и файлик file.html появляется вместе с тегами. Но как только я вставляю в форму много текста 3мб, то браузер зависает и отправка не идет. Форма может отправить такой объем данных через текстовое поле?
     
  8. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Технически - без проблем.
     
  9. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    наркотики убивают тебя))
    FTP чем не устраивает?
     
  10. Sergey_Tsarev

    Sergey_Tsarev Активный пользователь

    С нами с:
    17 мар 2016
    Сообщения:
    502
    Симпатии:
    105
    @heeg, а зачем ты вообще это делаешь? Какая у тебя стоит задача? Уверен на 100%, что тут тебе смогут подсказать красивое решение твоей задачи ;)
     
  11. heeg

    heeg Новичок

    С нами с:
    11 апр 2017
    Сообщения:
    15
    Симпатии:
    0
    Пытаюсь дописать очень простой движок для интерне магазина. Он полностью на javascript. Заказы отправляются гугл формой, изменения вносятся через меню "галочка" в правом верхнем углу (добавить товар или добавить раздел).

    НО у магазина нет кнопки "опубликовать" (есть только сохранить на компьютер). После нажатия кнопки "опуликовать" и ввода логина и пароля магазин (ы) должен публиковаться в интернете у меня на хостинге с PHP. Если можно сделать такую кнопку и заливать на хостинг без PHP было бы замечательно (но думаю такое невозможно). Ссылка на архив с магазином http://heeg.ru/heeg5.1.1.zip Это обычный статичный html файл для редактирования с рабочего стола.
     
  12. Amperandus

    Amperandus Активный пользователь

    С нами с:
    13 мар 2009
    Сообщения:
    226
    Симпатии:
    11
  13. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Для автора, вероятно, не проще. И так и не понятно, чем ему обычный FTP не угодил. Куда уж проще для его задачи.
     
  14. Amperandus

    Amperandus Активный пользователь

    С нами с:
    13 мар 2009
    Сообщения:
    226
    Симпатии:
    11
    filezilla - это и есть, если не ошибаюсь, в т.ч. фтп клиент (до кучи сервер, но это уже мелочи). хотя да, если даже фтп клиент не всегда есть под рукой, то хз.
     
  15. heeg

    heeg Новичок

    С нами с:
    11 апр 2017
    Сообщения:
    15
    Симпатии:
    0
    Пользуюсь filezilla для заливки файла на хостинг. Но для моих задач он не подходит. Во-первых он не всегда есть под рукой (на планшете и телефоне) Во-вторых залить свой магазин на мой хостинг должна уметь любая старушка имеющая логин и пароль на свою папку. Зашла на страничку, добавила вязанные носочки в нужный радел, нажала опубликовать, залогинилась и пошла дальше чай пить.
     
  16. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Оно самое. Там окромя ftp, вроде, еще куча протоколов на борту на любой вкус.
    --- Добавлено ---
    Так...такое чувство, что что-то пошло не так, и где-то тут кроется огромных размеров архитектурный костыль.
     
  17. Amperandus

    Amperandus Активный пользователь

    С нами с:
    13 мар 2009
    Сообщения:
    226
    Симпатии:
    11
    все я понял. aliexpress для старушек. тогда только форму с отправкой файла.
     
  18. heeg

    heeg Новичок

    С нами с:
    11 апр 2017
    Сообщения:
    15
    Симпатии:
    0
    хорошо, файл я отправить смогу.
    Вот форма
    HTML:
    1. <form name="upload">
    2.   <input type="file" name="myfile">
    3.   <input type="submit" value="Загрузить">
    4. </form>
    Как сделать так, чтобы форма всегда автоматом подставляла тот файл, в котором находится эта форма? Допустим я даже знаю название этого файла heeg.html?
    Костыль тут не кроется, скорее он явно присутствует на переднем плане))
     
    #18 heeg, 12 апр 2017
    Последнее редактирование модератором: 12 апр 2017
  19. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    javascript innerHTML/outerHTML но нужно это не через input file делать, а просто через ajax отправить
     
  20. heeg

    heeg Новичок

    С нами с:
    11 апр 2017
    Сообщения:
    15
    Симпатии:
    0
    тормозит браузер, когда 3мб текста в форму вставляю. Маленькие куски уходят и сохраняются.
     
  21. acho

    acho Активный пользователь

    С нами с:
    28 дек 2016
    Сообщения:
    854
    Симпатии:
    210
    Адрес:
    Санкт-Петербург
    3 мегабайта текста? Может это вы с картинками всякими вместе считаете? Просто что должно быть там написано текстом на 3 мб
     
  22. heeg

    heeg Новичок

    С нами с:
    11 апр 2017
    Сообщения:
    15
    Симпатии:
    0
    Много чего)) Ссылка на файлик есть в теме. Тормоза победил и большой текст уходит довольно бодро. Но теперь другая проблема. Как получить код страницы до того как его браузер переработал. Если делать var html = document.documentElement.innerHTML; То прилетает уже каша-малаша из результатов работы браузера, а не исходный код.
     
  23. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.551
    Симпатии:
    1.754
    Никак :) Работать с файлами напрямую запрещено из соображений безопасности. Даже HTML5 FileAPI работает не прямо с файлом, а с его копией в песочнице
     
  24. heeg

    heeg Новичок

    С нами с:
    11 апр 2017
    Сообщения:
    15
    Симпатии:
    0
    Ну какие соображения? Я же не чужую страницу читаю, а свою на которой сейчас нахожусь. Просто она криво читается. Но браузер то ее получает, значит и я смогу получить.....
     
  25. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.551
    Симпатии:
    1.754
    Хотя, хм, может так:
    Код (Javascript):
    1. $.get(window.location.href, function (html) {
    2.     // В переменной html - исходник страницы
    3. });
    Без jQuery я ajax никогда не программирую. Будет ли работать с протоколом file:// - не пробовал.