Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - PHP - несколько вопросов

Ответить
Настройки темы
Разное - PHP - несколько вопросов

Аватара для ManHack

Старожил


Сообщения: 361
Благодарности: 6

Профиль | Отправить PM | Цитировать


PHP код: Выделить весь код

<?php 


$tmp_name 
' *math* '// реальный (относительный, а не абсолютный, естессно) адрес файла на сервере
$final_path $tmp_name// копия предыдущей переменной с более красивым именем


if (is_uploaded_file($_FILES['userfile']['tmp_name'])) { // Как поля USERFILE и TMP_NAME берут свои значения? пробовал вписывать вместо tmp_name следующее: $tmp_name и final_path, что приводило к ошибке (если можно, объясни мне синтаксис процедуры is_uploaded_files, я работаю с php5)
   
echo "File "$_FILES['userfile']['name'] ." uploaded successfully.\n"// Как берётся значение NAME? это тоже стандартная переменная... и что значит \n в конце строки??
   
echo "Displaying contents\n";
   
readfile($_FILES['userfile']['tmp_name']); // что делается в этой строке?
} else {
   echo 
"Possible file upload attack: "// Что имеется ввиду под атакой? Я не совсем понимаю условия процедуры is_uploaded_files. Поясните пожалуйста.
   
echo "filename '"$_FILES['userfile']['tmp_name'] . "'.";
}
move_uploaded_file($_FILES['userfile']['tmp_name'], "$final_path"); // после исполнения php-файла, загруженных файлов в указаном каталоге (допустим, папка "content") не обнаружена, т.е. процедура move не работает или я чего-то не понимаю...

$file $_FILES['$userfile']['$tmp_name'];
$getTime date("H:i:s");
$filestat = @stat($file);
$meta id3_get_tag($file); // ID3 не установлен по умолчанию в PHP. Кажется, он устанавливается из дистрибутива PEAR? Как установить PEAR на PHP5 ? (используемый php5 встроен в Denver и используется так)
$query "INSERT INTO MediaLib(id, folder, title, albumn, performer, date, filesize, link, metadata) VALUES (NULL, " $file_dir ", " $meta['title'] . "," $meta['album'] . "," $meta['artist'] . ", " $getTime ", " $filestat['size'] . ", " $final_path ", " $meta ")";
mysql_query ($query); // должна создаться новая строка в БД (2 строки подключения к MySQL-серверу и к БД в начале скрипта я пропустил, я про них помню), где id, folder, и т.д. названия заголовков столбцов в таблице, а $file_dir - это, например, значение в столбике folder таблицы.. я правильно понимая? тут нет никаких подводных камней?

?>

В итоге, как сделать, чтобы MOVE перемещала файл в папку, адрес которой задаётся из переменной $final_path, а не выводила на экран (сейчас файл загружается в текстовом виде в окно браузера).
Как установить поддержку ID3_Tags и PEAR вообще?
Под *math*понимается некоторая функция, которая смотрит сколько было файлов в последнем каталоге, и если он заполнен, меняет адрес каталога на новый. Как написать такую функцию?

Отправлено: 20:19, 05-07-2009

 

Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1204

Профиль | Отправить PM | Цитировать


Цитата ManHack:
Ассоциированные массивы не имеют индексов. »
Я специально использую ассоциативные массивы для того, чтобы не ковыряться с индексами. Можете написать mysql_fetch_array() и тогда будет и ассоциативный, и нумерованный массив. У этой функции есть и параметры (можно глянуть в справке ), чтобы выбирать нужные: асс, нум или оба сразу (в одном).
Цитата ManHack:
Поэтому придётся использовать конструкцию типа foreach ($array as $value) »
Если вы знаете названия полей, то по полям и обращайтесь, зачем вам ещё foreach? Если названия полей не знаете, то см.выше - по индексам в нумерованном массиве.

Отправлено: 16:42, 13-08-2009 | #21



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для ManHack

Старожил


Сообщения: 361
Благодарности: 6

Профиль | Отправить PM | Цитировать


Вот и я думал, что я их знаю... А шиш.

PHP код: Выделить весь код

23   echo "<table>"
24   while ($line mysql_fetch_assoc($result)) { 
25       echo "<tr><td>$line['title']</td><td>$line['album']</td><td>$line['artist']</td></tr>"
26   

выдаёт следующее сообщение в браузере:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in Z:\home\non-existent-host\folder01\search.php on line 25

Отправлено: 11:35, 14-08-2009 | #22


Аватара для Strange_V

Старожил


Сообщения: 222
Благодарности: 29

Профиль | Отправить PM | Цитировать


ManHack, уберите кавычки

PHP код: Выделить весь код

25       echo "<tr><td>$line[title]</td><td>$line[album]</td><td>$line[artist]</td></tr>"

-------
Жизнь-это шахматная партия, по окончании которой и короли, и пешки ложатся в один ящик.


Отправлено: 15:49, 14-08-2009 | #23


Аватара для ManHack

Старожил


Сообщения: 361
Благодарности: 6

Профиль | Отправить PM | Цитировать


Пробовал без кавычек.
Белый экран и пусто. Нифига не выводит >_<
Белый экран имеет следующий html-код:
HTML код: Выделить весь код
<table><tr><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr><tr><td></td><td></td><td></td></tr>


Отправлено: 21:03, 15-08-2009 | #24


Аватара для ManHack

Старожил


Сообщения: 361
Благодарности: 6

Профиль | Отправить PM | Цитировать


Так. Всё. С этим разобрались. Оказывается надо писать имена полей с точностью до регистра букв.

Теперь другой вопрос:
Как вывести кусок html-куда? (около 800 строк, каждую обрамлять в echo "<строка>" задолбаюсь).
Есть ли какой-нибудь быстрый и лёгкий способ это всё красиво оформить? И с точки зрения быстродействия правильный.

Вообще, просвятите меня пожалуйста, лучше ли в php-файл запихивать html с использованием переменных из php или в html-страницу впихивать ссылку на php, который вернёт результаты своей работы по запросу? Второе кажется более целесообразным, т.к. не придётся для каждого запроса генерить один и тот же html (а он не маленький, 800 строк) -> нагрузка на сервер меньше, но первый вариант я не понимаю как сделать... как-бы надо запускать php-файл с параметрами и забирать обратно результаты? А как это сделать?
Я делаю поиск.

Отправлено: 22:58, 15-08-2009 | #25


Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1204

Профиль | Отправить PM | Цитировать


Цитата ManHack:
Как вывести кусок html-куда? (около 800 строк, каждую обрамлять в echo "<строка>" задолбаюсь).
Есть ли какой-нибудь быстрый и лёгкий способ это всё красиво оформить? И с точки зрения быстродействия правильный. »
800 строк в выводе по SQL-запросу? Так вот тот же код и есть:
PHP код: Выделить весь код

echo "<table>";  

while (
$line mysql_fetch_assoc($result)) {  
   echo 
"<tr><td>$line['title']</td><td>...</td></tr>";  

echo 
"</table>"

Пока есть строки в SQL-выдаче, цикл while будет выводить их. Можете проверить на запросе "SELECT * FROM table_name".

Цитата ManHack:
лучше ли в php-файл запихивать html с использованием переменных из php или в html-страницу впихивать ссылку на php, который вернёт результаты своей работы по запросу? »
Не понял, что требуется сделать, т.ч. не могу посоветовать, как сделать лучше)
Цитата ManHack:
Я делаю поиск. »
Другими словами - вам требуется выводить, скажем, по 20 строк на страницу, а вы не хотите, чтобы SQL-сервер выдавал вам их сразу все? Используйте такой запрос:
"SELECT * FROM table_name ORDER BY field_name LIMIT 0,20"
Разумеется, у вас там своя выборка. SELECT * - это для примера.
ORDER BY field_name - упорядочивание по столбцу, чтобы... вы и сами знаете, для чего нужно упорядочивание
LIMIT 0, 20 - вывести 20 строк, начиная с нулевой. Или так: LIMIT 100, 20 - вывести 20 строк, начиная с 100.
Это сообщение посчитали полезным следующие участники:

Отправлено: 08:12, 16-08-2009 | #26


Аватара для ManHack

Старожил


Сообщения: 361
Благодарности: 6

Профиль | Отправить PM | Цитировать


За LIMIT спасибо, пригодится

У меня оформление динамического (искомого) содержания страницы не маленькое...
Разметка классов, описаных в CSS, да и выводить надо 5 полей не простым текстом...
+ к каждому результату крепится ссылка на небольшое флеш-приложение, с параметрами для просмотра этого конкретного результата. Если кликаем по другому результату, флешка исчезает в месте предыдущего клика и появляется в месте нового с параметрами для нового результата. Примерно так...
В общем, на оформление вывода 1 результата уйдёт куча строчек echo "<HTML>";
Вот я и интересовался, стоит ли заниматься оформлением вывода результата (общий шаблон для всех выводимых результатов) в php-файле поиска или это делается по-другому и в другом месте?

Отправлено: 22:04, 16-08-2009 | #27


Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1204

Профиль | Отправить PM | Цитировать


Можно сэкономить, используя AJAX, но здесь вы сами разбирайтесь - в двух словах не расскажешь... Тут уж вам решать - экономить ли трафик пользователей и разбираться с AJAX'ом, или же трафик не экономить, но сделать попроще. Чаще всего выбирают вариант "попроще")

Не обязательно, кстати, писать echo "<html>";
Можно делать "разрывы" в скрипте:
читать дальше »
PHP код: Выделить весь код

<html>

<head>
<title><?php echo $_GET['title']; ?></title>
</head>
<body>
<table>
<?php
mysql_connect
(...);
...
while(...) {
   echo 
"<tr><td>...</td><td>...</td></tr>";
}
?>
</table>
</body>
</html>



Шаблон сделать - тоже можно. Если там меняется только заголовок, таблица и ссылки, то вместо них вставьте в заранее подготовленный файл какие-нибудь тэги вроде [[TITLE]] [[TABLE]] [[LINKS]]. А потом в этом файле "найти и заменить" скриптом. Это так, самые простые шаблоны, которых часто бывает достаточно

Отправлено: 04:08, 17-08-2009 | #28


Аватара для ManHack

Старожил


Сообщения: 361
Благодарности: 6

Профиль | Отправить PM | Цитировать


Вот допустим в php-файле нужно вывести html строчку, которая забирает значения переменных ИЗ ЭТОГО ЖЕ php-файла.
К примеру, строчка такова:
Код: Выделить весь код
<title><?php echo $search . " results page" . " | DB search | " . $slogan; ?></title>
Т.е. получается из php-файла мы выплёвываем юзеру в браузер html-код, внутри которого содержится php-код, завязанный на коде исходного ("внешнего") php-файла...
Вопрос: КАК это сделать?

Можно конечно вставку HTML-кода вынести за скобки <?php ... ?>, но тогда значения переменных потеряются безвозвратно...

Отправлено: 12:01, 18-08-2009 | #29


Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1204

Профиль | Отправить PM | Цитировать


Цитата ManHack:
Т.е. получается из php-файла мы выплёвываем юзеру в браузер html-код, внутри которого содержится php-код, завязанный на коде исходного ("внешнего") php-файла...
Вопрос: КАК это сделать? »
Вопрос: зачем так делать? От этого php на стороне клиента не будет никакого проку.
Используйте JavaScript-код или вставляйте форму со скрытыми полями <input type="hidden" name="var_name" value="var_value" />, если хотите сохранить какие-то переменные. В зависимости от целей, можно и дописывать переменные к ссылкам в виде get-запроса link.php?a=1&b=2&c=3.

Отправлено: 17:44, 18-08-2009 | #30



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - PHP - несколько вопросов

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - Несколько вопросов по PHP ManHack Программирование и базы данных 53 24-03-2009 01:23
Несколько вопросов по ОС Master WEB Общий по Linux 33 02-08-2007 23:23
Несколько вопросов raingts Хочу все знать 2 30-01-2007 18:05
Несколько вопросов barbos Общий по Linux 8 16-12-2004 20:40
Несколько вопросов по RH 9 Frost Wolf Общий по Linux 12 07-09-2003 12:51




 
Переход