RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 376
от 21.06.2006, 12:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 314, Экспертов: 49
В номере:Вопросов: 4, Ответов: 13


Вопрос № 46333: Здравствуйте! Учу PHP (книжка называется Лаура Томсон,Люк Веллинг РНР и Муsql). Столкнулся с проблемой: валетает вот такая ошибка /* Parse error: parse error, unexpected T_VARIABLE, expecting ',' or ';' in r:homekawwwpro...
Вопрос № 46343: Здравствуйте, эксперты. Я начинающий. Сайт состоит из кусков, каждый из которых это файл. Чтобы загрузить следующую страницу нужно писать ссылку вида ...site.php?n1=1.txt&n2=2.txt&n3=3.txt&... и так далее очень длинно и видно - какие фай...
Вопрос № 46368: Здравствуйте. 1.Подскажите как просматривать видео файлы *mov, *.avi, *.mpg. Либо дайте ссылки на эту тему. 2. Так же пожалуйста дайте ссылки по теме подключения MySql в связке APACHE + PHP....
Вопрос № 46384: Здравствуйте! Я использую форум phpBB2. Хотелось-бы поподробнее разобраться с механизмом использования темплэйтов и генерацией страниц. Где можно почитать об этом? ..

Вопрос № 46.333
Здравствуйте!

Учу PHP (книжка называется Лаура Томсон,Люк Веллинг РНР и Муsql).
Столкнулся с проблемой: валетает вот такая ошибка

/*
Parse error: parse error, unexpected T_VARIABLE, expecting ',' or ';' in r:homekawwwprocessorder.php on line 30
*/,

она появляется после добавления переменной $taxrate (считает налог), у меня стоит denwer (базовая комплектация). Помогите, а т ничего не понимаю! Может в нём нет математической библиотеки?

Ниже весь код, он считает сумму.

########
<html>
<head>
<title>Компания по продаже автомобилей Боба</title>
</head>
<body>
<H1>Bob Auto Parts</h1>
<h2>Order Results</h2>
<?
Error_Reporting(E_ALL & ~E_NOTICE);
echo "<p>Order Processed.";
echo date("H:i, js F");
echo "<br>";
echo "<p>you order is follows:";
echo "<br>";
echo $tireqty." tires<br>";
echo $oilqty." bottles of oil<br>";
echo $sparkqty." spark plugs<br>";
$totalqty = 0;
$totalamount = 0.00;

define("TIREPRICE", 100);
define("OILPRICE", 10);
define("SPARKPRICE", 4);
$totalqty = $tireqty + $oilqty + $sparkqty;
$totalamount = $tireqty * TIREPRICE + $oilqty * OILPRICE + $sparkqty * SPARKPRICE;
$totalamount = number_format($totalamount, 2);
echo "<br> ";
echo "Items Ordered: ".$totalqty."<br> ";
echo "Subtotal: $".$totalamount."<br> "
$taxrate = 0.10;
$totalamount = $totalamount * (1 + $taxrate);
$totalamount = number_format($totalamount, 2);
echo "Total including tax: $".$totalamount."<br> ";
?>
</body>
</html>
###########
Отправлен: 15.06.2006, 17:06
Вопрос задал: Колесников Виталий (статус: 1-ый класс)
Всего ответов: 6
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Straight
Здравствуйте, Колесников Виталий!
Точку с запятой в конце 29-й строки поставьте
Ответ отправил: Straight (статус: Студент)
Ответ отправлен: 15.06.2006, 17:11

Отвечает: Alexey Vilchinsky
Здравствуйте, Колесников Виталий!
поставь в конце 29 строки ;
---------
Делая людям добро, мы возвращаем его многократно...
Ответ отправил: Alexey Vilchinsky (статус: 9-ый класс)
Ответ отправлен: 15.06.2006, 17:22

Отвечает: PVS
Здравствуйте, Колесников Виталий!

echo "Items Ordered: ".$totalqty."<br> ";
echo "Subtotal: $".$totalamount."<br> " <- А ГДЕ ТОЧКА С ЗАПЯТОЙ???
$taxrate = 0.10;
Ответ отправил: PVS (статус: 3-ий класс)
Ответ отправлен: 15.06.2006, 17:54

Отвечает: Константин
Здравствуйте, Колесников Виталий!
1)КАЖДАЯ строчка должна заканчиваться точкой с запятой. В строчке перед $taxrate = 0.10; поставь ";"
2)поставь себе Zend Studio, там редактор ловит такие ошибки, и вообще синтаксические ошибки.
---------
Лучше сделать и жалеть, чем жалеть о том что не сделал
Ответ отправил: Константин (статус: 6-ой класс)
Ответ отправлен: 15.06.2006, 21:04

Отвечает: Марк Крейн
Здравствуйте, Колесников Виталий!
Конструкция "echo" всегда должна заканчиваться точкой с запятой. Поэтому у Вас и вылетает такая ошибка. Для её исправления нужно сделать следующее:

Строчку
echo "Subtotal: $".$totalamount."<br> "

замените на
echo "Subtotal: $".$totalamount."<br> ";
Ответ отправил: Марк Крейн (статус: 5-ый класс)
Ответ отправлен: 15.06.2006, 22:42

Отвечает: Cybernetic_Creature
Здравствуйте, Колесников Виталий!
в части
echo "Items Ordered: ".$totalqty."
";
echo "Subtotal: $".$totalamount."
"
$taxrate = 0.10;

не хватает точки с запятой
echo "Subtotal: $".$totalamount."<br> ";
Ответ отправил: Cybernetic_Creature (статус: Специалист)
Ответ отправлен: 20.06.2006, 10:42


Вопрос № 46.343
Здравствуйте, эксперты.
Я начинающий.
Сайт состоит из кусков, каждый из которых это файл.
Чтобы загрузить следующую страницу нужно писать ссылку вида ...site.php?n1=1.txt&n2=2.txt&n3=3.txt&... и так далее очень длинно и видно - какие файлы используются.
Возможно ли сделать отдельный файл (или функцию) где происходило бы присваивание значений всем переменным, а потом вызов шаблона с передачей этих значений в него без этого длинного хвоста?
Пытался делать вызов шаблона так Header("Location: site.php?");
Шаблон вызывается, но с пустыми местами (сообщениями об ошибках).
Заранее спасибо за ответ.
Отправлен: 15.06.2006, 19:41
Вопрос задал: Орлов Станислав (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Cimus
Здравствуйте, Орлов Станислав!
Для заполнения шаблона я использую следующую конструкцию-

function parse_template($path)
{
//читаем в массив темплейты
$file=file($path)

for($i=0 ; $i <= count($file) ; $i++)
{
@$result.=replace($file[$i]);
}

return $result;
}
function replace($string)
{
return preg_replace_callback('/@([A-ZА-ЯЁa-zа-яё0-9_]+)@/','cimus_replace',$string);
}

function cimus_replace($ar)
{
global $cimus;
return isset($cimus['temp'][$ar['1']])? $cimus['temp'][$ar['1']]:null;
}
В массиве $cimus['temp'] находяться переменные и значения
( $cimus['temp']['name1']='sergey';
$cimus['temp']['name2']='ivan'; )
, а в самих темплейтах переменные которые нвдо заменить на значения я обозначаю вот так - @name1@, @name2@,
если такой переменной нет то она просто заменяеться на null.

В итоге мой вызов шаблона уже с заполненными переменными выглядит вот так -

print parse_template(путь до шаблона);

---------
Достичь можно любых высот !
Ответ отправил: Cimus (статус: 2-ой класс)
Ответ отправлен: 15.06.2006, 20:05
Оценка за ответ: 4

Отвечает: Alexey Vilchinsky
Здравствуйте, Орлов Станислав!
сделай промежуточный скрипт с формой, в которой заполняются скрытые инпуты с именами, которые тебе нужны, заполни их значения и вызови метод submit.
у формы поставь action на тот скрипт которому надо передать данные, и method поставь в post.
Тогда при передаче ничего не будет видно в заголовке.
---------
Делая людям добро, мы возвращаем его многократно...
Ответ отправил: Alexey Vilchinsky (статус: 9-ый класс)
Ответ отправлен: 15.06.2006, 22:23
Оценка за ответ: 5

Отвечает: Марк Крейн
Здравствуйте, Орлов Станислав!
Всё что идёт после знака "?" - значения элементов массива $_GET. Если Вы сделаете функцию и будете вызывать именно её, у Вас $_GET будет определён но останется пустым. Пока я вижу только одно решение: сделать постраничный вывод. Оно может быть и неверным. Для более точной подсказки мне нужно поконкретнее узнать структуру Вашего сайта.
Ответ отправил: Марк Крейн (статус: 5-ый класс)
Ответ отправлен: 15.06.2006, 22:49
Оценка за ответ: 4
Комментарий оценки:
Спасибо, уже есть ответ...

Отвечает: Cybernetic_Creature
Здравствуйте, Орлов Станислав!
могу предложить такой вариент
сделайте таблицу
create table ite1 (id int not null primary key auto_increment, content varchar(200));
заполните ее таким образом
1|1.txt,2.txt,3.txt
2|a.txt,b.txt,c.txt
3|k1.txt,k3.txt,ll.txt
........
ссылку пишите в виде site.php?mode=1
по этому параметру находите в базе файлы и подключаете
Ответ отправил: Cybernetic_Creature (статус: Специалист)
Ответ отправлен: 20.06.2006, 10:47
Оценка за ответ: 4
Комментарий оценки:
Будет время, попробую и таким образом...


Вопрос № 46.368
Здравствуйте.
1.Подскажите как просматривать видео файлы *mov, *.avi, *.mpg. Либо дайте ссылки на эту тему.
2. Так же пожалуйста дайте ссылки по теме подключения MySql в связке APACHE + PHP.
Отправлен: 16.06.2006, 00:03
Вопрос задал: KeeperX (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Cimus
Здравствуйте, KeeperX!
1)
Добиться такого эфекта можно, используя тэг <EMBED>. Действие этого элемента следующее: после загрузки страницы автоматически загружается и проигрывается звуковой файл. При этом в окне появляется панель проигрывателя (или пульт управления проигрывателя - как вам удобнее называть).

Пример:

<EMBED SRC="http://mymusick.ru/osen.mid" AUTOSTART="TRUE">

Как всегда, тут не все так безоблачно, как хотелось бы. По своей давней традиции создатели Netscape и Explorer не договорились между собой, и потому в разных Обозревателях эта панель выглядит и, самое обидное, ведет себя по разному.

Элемент <EMBED> может иметь следующие аттрибуты:

WIDTH - ширина панели в пикселях (можно и в процентах);
HEIGHT - высота панели в пикселях (или процентах);
ALIGN - расположение панели относительно текста, возможные значения LEFT, RIGHT, CENTER; HIDDEN - позволяет скрыть панель, значения аттрибута: TRUE - панель скрыта, FALSE - панель видима (значение по умолчанию);
AUTOSTART - значение TRUE - проигрыватель стартует автоматически, FALSE - ждет нажатия на кнопку "воспроизведение";
LOOP - цикл, т.е. при значении TRUE мелодия будет проигрываться по кругу, а при значении FALSE - только один раз. Если значением будет число, то Netscape проиграет мелодию указанное количество раз, для Explorer'а числовое значение равносильно значению TRUE.

Пример:

<EMBED SRC="http://mymusick.ru/osen.mid" WIDTH="70" HEIGHT="45" ALIGN="left" HIDDEN="False" AUTOSTART="False" LOOP="True">

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

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

CONSOLE - панель обычного размера;
SMALLCONSOLE - панель меньшего размера;
PLAYBUTTON - вместо всей панели только кнопка "Воспроизведение";
PAUSEBUTTON - вместо всей панели только кнопка "Пауза";
STOPBUTTON - вместо всей панели только кнопка "Стоп";
VOLUMELEVER - вместо всей панели только регулятор громкости.

Элемент <EMBED> поддерживает звуковые файлы с расширениями MID, WAV, AIFF, AU, видеофайлы AVI, MOV.

Элемент <BGSOUND> задает фоновый звук для страницы, т.е. звуковой фрагмент, который будет звучать сразу после загрузки страницы. Обозревателем Netscape не поддерживается. Может иметь аттрибут LOOP, определяющий количество повторов фрагмента. Пример использования:

<BGSOUND SRC="http://mymusick.ru/osen.mid" LOOP="3">

Ниже приводится программа, выводящая фоновый звук как в Internet Explorer'е, так и в Oper'e и Netscape Navigator'e (при наличии соответствующего плагина).

<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
var MSIE=navigator.userAgent.indexOf("MSIE");
var NETS=navigator.userAgent.indexOf("Netscape");
var OPER=navigator.userAgent.indexOf("Opera");
if((MSIE>-1) || (OPER>-1)) {
document.write("<BGSOUND SRC='test.mid' LOOP='INFINITE'>");
} else {
document.write("<EMBED SRC='test.mid' AUTOSTART='TRUE' ");
document.write("HIDDEN='true' VOLUME='100' LOOP='TRUE'>");
}
// End -->
</SCRIPT>
По поводу вставки видео в HTML, то для этого можно воспользоваться тегом <IMG>.

<IMG DYNSRC="http://myvideo.ru/fish.avi" SRC="http://myvideo.ru/error.gif" START="MOUSEOVER">

Атрибут DYNSRC содержит имя видео файла, SRC - имя графического файла, который будет загружен, если видео файл не будет найден на сервере. Атрибут START указывает, при каком условии начинать воспроизведение: MOUSEOVER - если пользователь подвел курсор к изображению.

2)
http://phpclub.ru/detail/article/2000-11-21

---------
Достичь можно любых высот !
Ответ отправил: Cimus (статус: 2-ой класс)
Ответ отправлен: 16.06.2006, 00:12

Отвечает: Устинов Сергей Евгеньевич
Здравствуйте, KeeperX!
Для работы с MySQL в связке APACHE+PHP просто почитать пару статеек будет маловато ⌣
Советую скачать несколько книг, и уже по ним учиться.
Пару десятков книг можно скачать здесь http://c-books.info
Советую:
Д.Н.Колисниченко Самоучитель PHP5 (тут также рассмотрена установка APACHE+PHP+MySQL)
Мазуркевич, Еловой PHP - настольная книга программиста
Интересные примеры в книге А. А. Орлова PHP. Полезные приемы

Удачи!
---------
Ответы на все вопросы - на сайте www.ya.ru
Ответ отправил: Устинов Сергей Евгеньевич (статус: Студент)
Ответ отправлен: 16.06.2006, 00:55


Вопрос № 46.384
Здравствуйте!
Я использую форум phpBB2.
Хотелось-бы поподробнее разобраться с механизмом использования темплэйтов и генерацией страниц.
Где можно почитать об этом?
Отправлен: 16.06.2006, 09:45
Вопрос задал: Nikola (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Марк Крейн
Здравствуйте, Nikola!
Большинство информации по форуму находится на его сайте http://myphpbb.com.ru. Остальное наверняка можно найти по Яндексу. Но информация на сайте форума (см.выше) достоверней :)
Ответ отправил: Марк Крейн (статус: 5-ый класс)
Ответ отправлен: 16.06.2006, 17:21


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.34 от 01.06.2006
Яндекс Rambler's Top100

В избранное