![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| kelario |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 19.9.2008 Репутация: нет Всего: нет |
Доброе утро понедельника.
У меня есть html страница.Мне нужно записать в неё х значения и сохранить.
естественно php встретив html теги начинает ругаться.Как это обойти и сохранить файл ? Может есть альтернатива ob-start ? Спасибо. |
|||
|
||||
| MoLeX |
|
||||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
Добавлено через 53 секунды kelario, 1. необходимо изучить основы PHP и HTML 2. в скрипты вставляй
-------------------- Amazing |
||||
|
|||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
Чтобы РНР не ругался, надо просто сказать ему, что дальше идут теги
очень просто а еще лучше - вообще не использовать неочевидный механизм, смысл которого вам непонятен. Для чего понадобилось "закидывать" страницу в ob_start()? Это сообщение отредактировал(а) Ипатьев - 23.11.2009, 12:54 |
|||
|
||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
-------------------- Amazing |
|||
|
||||
| kelario |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 19.9.2008 Репутация: нет Всего: нет |
Спасибо! Это так очевидно было,но за неимением опыта я об этом даже не подумал.Основы PHP конечно знать надо,но обучаться по ходу дела все же легче и интереснее.
разве встретив ?> пхп не прекратит обрабатывать дальнейший код ? на счет того,зачем мне ob_start у меня Х одинаковых страниц с разным содержимым.И это скрипт их создающий.Более чем вероятно,что есть более рациональный и менее ресурсоемкий способ,но я о нем не знаю поскольку
если подскажите как сделать это правильнее,буду только рад Спасибо. Это сообщение отредактировал(а) kelario - 23.11.2009, 17:01 |
||||||
|
|||||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
||||
|
||||
| kelario |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 19.9.2008 Репутация: нет Всего: нет |
следовательно то,что между двумя ? в ob_start не попадет,ведь так? |
|||
|
||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
А куда оно должно пропасть? И зачем?
PHP изначально задумывался так, чтобы в противовес перлу у него ошибки могли выводиться на экран и его можно было встраивать прямо в HTML И только потом выяснилось, что и то и другое - неправильно |
|||
|
||||
| kelario |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 19.9.2008 Репутация: нет Всего: нет |
В файл Х-нный с новыми значениями переменных.Понятно, что
|
||||
|
|||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
Не понял этого "но тем не менее".
вы уже сделали хоть один сайт по обычной схеме? или вас что-то не устраивает из теоретических соображений? |
|||
|
||||
| kelario |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 19.9.2008 Репутация: нет Всего: нет |
Не цепляйтесь так к словам.
меня все утсраивает,просто хочется закончить то,что начал. |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
||||
|
||||
| kelario |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 19.9.2008 Репутация: нет Всего: нет |
Зачем - я писал выше.Использую ob_ попросту потому,что это первое,что попалось мне под руку.Я осознаю,что можно как то сделать проще и быстрее,но просто я не знаю как
Если кто ни будь поделится ссылочкой на скрипт дающий нужный результат,буду признателен. |
|||
|
||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
Вам предложили
Вы просто не читаете. Главный принцип программирования - это разделение. Разделение кода и данных. Разделение данных и оформления. В вашем случае данные и оформление надо хранить отдельно. к примеру, введенные в форму данные записывать в текстовый файл. по строке на форму. А лучше - в базу данных. плюс написать скрипт с шаблоном HTML плюс написать скрипт с программой. который берет данные из текстового файла, забивает в шаблон и отдает пользователю. |
|||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 12 Всего: 43 |
MoLeX, ?> html html <?
Неужели твоя IDE - это блокнот?) Ты же рушишь всякую подсветку и автокомплиты своими echo "дохрена строк";
Если шаришь в английском, что читай книгу от зенда. |
|||
|
||||
| kelario |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 19.9.2008 Репутация: нет Всего: нет |
Спасибо всем за советы.
наверное так и попробую сделать. у меня возник еще один вопрос.Он не по теме,но открывать новую наверное нет нужды. Мне нужно,что бы пользователь на сервер залил файл,картинку.Вроде бы всё должно быть просто,но у меня проблемы с
Дело в том,что мне нужно сохранить картинку в определенном месте и в то же время передать в переменную название этой картинки.Если в форме не ставить enctype,то никакая картинка никуда не сохраняется.Но если его поставить,то имя файла не удается занести в переменную. Как убить двух зайцев ? или может быть файлу при сохранение можно задать имя ? |
||||
|
|||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
||||
|
||||
| Ипатьев |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2232 Регистрация: 5.7.2009 Репутация: 28 Всего: 37 |
проблема не в имени файла.
закачать можно только с multipart/form-data если какие-то проблемы при этом - они не от enctype а от кучи других причин. в документации смотрим пример, выводим еррор, исправляем позор сдается мне, вы, как и многие новички, наивно полагаете, будто файло можно легко скопировать с жетского диска пользователя. а от формы вам нужно только имя файла. |
|||
|
||||
| MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
notepad++ и phpDesigner 7, это к делу не относится в данном случае суть не меняется, и автору нагляднее - если надо вывести то использовать echo ... -------------------- Amazing |
|||
|
||||
| K0T9I |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 20.11.2009 Репутация: 2 Всего: 2 |
суперглобальный массив $_FILES:
в $filename будет имя файла, а сам файл скопируется в каталог $some_path. я правильно тебя понял? Это сообщение отредактировал(а) K0T9I - 24.11.2009, 07:44 |
||||||||
|
|||||||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
K0T9I, вот я, насколько понимаю, copy() - запись дубликата файла, а move_upload_file() - просто изменение адреса.
зачем учить более затратным механизмам? |
|||
|
||||
| kelario |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 19.9.2008 Репутация: нет Всего: нет |
Да! Абсолютно правильно!Спасибо! Я просто пытался получить имя файла по аналогии со скажем текстовым полем.То есть $filename=$_POST['filename'] .Без enctype кстати прокатывало Спасибо еще раз! |
|||
|
||||
| K0T9I |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 20.11.2009 Репутация: 2 Всего: 2 |
я понимаю, что есть правило, насвинячил - приберись. но файл загружается во временную папку и сборщик мусора php его удалит, поэтому столь важным этот принцип здесь не является.
а вообще функция move_uploaded_file конечно гораздо лучше, copy использую по привычке. в одном вы не правы, move_uploaded_file копирует файл, если источник и назначение в разных дисковых разделах, и переносит если в одном. |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
||||
|
||||
| K0T9I |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 20.11.2009 Репутация: 2 Всего: 2 |
я хотел сказать просто, что почти всегда move_uploaded_file и copy идентичны по действию. в зависимости от расположения файла эта функция может вести себя и как copy, и как rename, только с доп. проверкой того что файл является загруженным. а большинстве случаев временная папка расположена в другом разделе, поэтому почти всегда move_uploaded_file аналогична copy, за исключением проверки.
как-то так, а в остальном я с вами согласен, что неправильный метод дал |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |