Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
Свободная тема :  ИРБИС Irbis
 
Страницы: 12>>
Страница: 1 из 2
PHP ? Освоить? Легко.
Пользователь: -AND- (IP-адрес скрыт)
Дата: 22, February, 2007 17:09

Как-то в недавнем прошлом Соколинский Кирилл советовал мне освоить PHP. Я так подумал и решил что он говорит серьезные вещи. Так вот нашел я программу PHP Zend Studio, поставил ее. В итоге оказалось что программа и вправду навороченная, ну, я так понял там есть все, чего душа желает для PHP-шника. Поставил версию 5.5.0, даже нашел как ее заставить заговорить на родном языке, тока вот руководства на русском не нашел. Эсть такое в природе, может кто встречал? А то на английском лень, я его не насколько знаю.

Re: PHP ? Освоить? Легко.
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 23, February, 2007 00:09

[php.ru]

А вообще рекомендую скачать
[sourceforge.net]

чтоб без всяких зендов.

Re: PHP ? Освоить? Легко.
Пользователь: -AND- (IP-адрес скрыт)
Дата: 23, February, 2007 13:53

А что это за такое, чем лучше от зенда?
Ну кроме того, что Зенд не бесплатный? Если можно растолковать попонятней, а то в этом деле я вообще ноль, еще даже до зеленого не дошел.
А PHP.RU, да я там был, видел что у них там лежит большое руководство, только я не знал что оно как-то связано с Zend.
И еще можно вопрос: почему не Zend?

Re: PHP ? Освоить? Легко.
Пользователь: -AND- (IP-адрес скрыт)
Дата: 27, February, 2007 14:20

А подскажите плз, Соколинского Кирила кто-нить видел здесь?
Или подскажите как через Zend Studio открывать страницы? Я имею ввиду путь по которому работает веб-сервер Zend.

Re: PHP ? Освоить? Легко.
Пользователь: -AND- (IP-адрес скрыт)
Дата: 27, February, 2007 17:20

А-а, вот, кажется нашел этот путь в файлах конфига - [localhost], интересно это он? И как тогда указывать путь к файлу?

Re: PHP ? Освоить? Легко.
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 28, February, 2007 01:54

Коллега, я написал двухстраничное сообщение (http://irbis.gpntb.ru/read.php?24,21854,page=2) с ответами на ВАШИ вопросы ещё 25 числа, а Вы, даже не заглянув в эту ветку, утоняете у общественности жив я или нет...

Что касается PHP, то отвечу очень кратко. Литературу по интегрированной среде Zend Studio я тоже искал, но ничего не нашёл. Вывод: нужно читать "Tips of the day" и справку.
Что касается простого учебника по PHP, то я выложил для Вас одно неплохое пособие: [www.elib.nwpi.ru] На первых порах оно должно помочь, а потом очень рекомендую достать книгу Котерова Д. PHP 5. –БХВ: СПб, 2005. Поскольку Вы работаете в библиотеке, то для Вас не должно составить труда попросить отдел комплектования приобрести этот кирпичик.
Никакой необходимости срочно устанавливать Zend сервер я в Вашем случае не вижу. Скрипт счётчика можно легко отладить без него, нажимая одну лишь кнопку "Run" в "Zend Development Environment"

При использовании строки запроса [localhost], принципиальная схема скрипта должна быть следующей:
<?
header('Location: [url]http://'.$_SERVER[/url]['HTTP_HOST'].'/e-books/'.$_REQUEST['filename'].'.pdf');
// Запись значения $_REQUEST['bbk'] и других параметров, требуемых для анализа, в базу.
exit();
?>

Re: PHP ? Освоить? Легко.
Пользователь: -AND- (IP-адрес скрыт)
Дата: 28, February, 2007 14:32

Цитата:
с ответами на ВАШИ вопросы ещё 25 числа
Извените, мне -1. Долго никто ничего не писал туда, я на него и внимания редко стал обращать.

По PHP.
Я не собирался ставить сервер Зенда, меня интересует эмулятор из студио.
Я прочитал описание из Zend, там написано что это полностью готовая среда для работы. Ну по идее там уже и http работает, но как писать адресс для тестов не пойму. В какую папку Zend смотрит, откуда он должен брать файлы? Ну как Апаче смотрит в папку wwww, а куда эмулятор Zend?
Вот например если путь D:\www\test.php, то как мне писать запрос в браузере, или куда ложить файл test.php чтобы его веб-сервер нашел? Использую Zend 5.5.0 .
Ссылка HxxP://localhost/а дальше как, если нужно запустьть test.php?


Я пока не буду писать то что нужно, я сначала хочу освоить PHP(hello php и все такое).
Кирилл спасибо за книгу.
Я начал читать PHP5 Максим Кузнецов и Игорь Самдянов, тоже BHV, а за эту что вы сказали - сейчас же пойду закажу.



Редактировано 2 раз. Последний раз 28.02.2007 14:38 пользователем -AND-.

Re: PHP ? Освоить? Легко.
Пользователь: -AND- (IP-адрес скрыт)
Дата: 28, February, 2007 15:37

Я понял как работает Zend, нужно было просто смотреть в окно справа включив кнопку HTML. Да, пока мне этого хватит.



Редактировано 2 раз. Последний раз 28.02.2007 17:43 пользователем -AND-.

Re: PHP ? Освоить? Легко.
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 01, March, 2007 15:36

-AND- написал(а):
-------------------------------------------------------
> Я прочитал описание из Zend, там написано что это
> полностью готовая среда для работы. Ну по идее там
> уже и http работает, но как писать адресс для
> тестов не пойму. В какую папку Zend смотрит,
> откуда он должен брать файлы? Ну как Апаче смотрит
> в папку wwww, а куда эмулятор Zend?
> Вот например если путь D:\www\test.php, то как мне
> писать запрос в браузере, или куда ложить файл
> test.php чтобы его веб-сервер нашел? Использую
> Zend 5.5.0 .
> Ссылка HxxP://localhost/а дальше как, если нужно
> запустьть test.php?

> Я понял как работает Zend, нужно было просто смотреть
> в окно справа включив кнопку HTML. Да, пока мне этого хватит.

Самый важный параметр настройки Apache -
DocumentRoot "C:/AppServ/www"
Он находится в httpd.conf. Измените его таким образом, чтобы папка находилась в удобном месте. Положите туда файл test.php и запустите его строкой:
http ://localhost/test.php
Если test.php будет запускаться на локальной машине, то результат его работы можно увидеть и на любом другом компьютере в локальной сети. Вместо localhost в адресе нужно будет подставить IP компьютера или его имя.

Не хотите держать электронные документы в той же папке? Создайте в C:/AppServ/www директорию e-docs и обращайтесь к документам:
http ://localhost/e-docs/my_doc.pdf
Это самый простой вариант. Есть более сложные, но надеюсь, логика Вам теперь понятна.

Прочитайте первые пункты этой статьи: [www.dklab.ru] (рекомендация "Внимание - не устанавливайте Apache по статье на этой странице!" к Вам не относится. Denver - прекрасная вещь, но поскольку Вы - "сам себе хостер", то он не нужен)

Re: PHP ? Освоить? Легко.
Пользователь: -AND- (IP-адрес скрыт)
Дата: 01, March, 2007 16:21

Спасибо, пока со всем разобрался. Разрулю PHP, потом буду разбираться в премудростях веб-сервера.

Re: PHP ? Освоить? Легко.
Пользователь: -AND- (IP-адрес скрыт)
Дата: 02, March, 2007 13:04

Еще один организационный вопрос:
Вот если в книге описан определенный пример, я его набираю и тестирую, а он не работает, что это значит? Синтаксис точно правильный.
Путаница с версиями PHP. Движок PHP влияет на поддержку в коде комманд(IF и т.п.), или за поддержку комманд отвечают библиотеки?
Не могу провести черту между влиянием на понимаемость кода движка и версии PHP.

Re: PHP ? Освоить? Легко.
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 02, March, 2007 14:02

Как Вы запускаете этот пример? Другие примеры, которые Вы так запускаете, работают?

Re: PHP ? Освоить? Легко.
Пользователь: -AND- (IP-адрес скрыт)
Дата: 05, March, 2007 09:57

Да, работают. Запускаю так: пишу в Зенд в левом окне и жму RUN, результат вижу в правом окне.
Также поставил Денвер, просто посмотреть что оно за такое, там ложу в соответствующую папку, и через браузер запускаю по соответствующему адресу(test1.ru/test.php, например).

Re: PHP ? Освоить? Легко.
Пользователь: -AND- (IP-адрес скрыт)
Дата: 09, March, 2007 12:17

Помогите плз мне, кто может, растолкуйте как в этом:

<?php
$cost = 1456.22;
$limit = 1000.00;
function check_limit($total_cost, $credit_limit){
if ($total_cost > $credit_limit) :
return 0;
endif;
return 1;
}
if (check_limit($cost, $limit)) :
// Продолжить закупки
print "Keep shopping!";
else :
print "Please lower your total bill to less than $".$limit."!";
endif;
?>

Коде появляются значения переменных $total_cost и $credit_limit, откуда в них взялись значения? И почему тут в первом if вернуть единицу вот так а не через else? И как это работает:если условие верно, то функция вернет и ноль и единицу, что-ли, что-то я тут не пойму?

Re: PHP ? Освоить? Легко.
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 09, March, 2007 13:29

Чо та я не понимаю синтаксита? Это точно пхп? Значения переменных передаются в функцию при ее вызове. Вообще я бы написал так
Цитата:
<?php
$cost = 1456.22;
$limit = 1000.00;

function check_limit($total_cost, $credit_limit) {
if ($total_cost > $credit_limit) {
// если сумма больше допустимой, то функция вернет false
return 0;
};
return 1;
}
if (check_limit($cost, $limit)) {
// если сумма покупки правильная, то
// Продолжить закупки
print "Keep shopping!"
}
else {
print "Уменьшите сумму покупки до ".$limit."!";
}
?>

Re: PHP ? Освоить? Легко.
Пользователь: Кирилл Соколинский (СЗТУ) (IP-адрес скрыт)
Дата: 09, March, 2007 15:25

-AND- написал(а):
-------------------------------------------------------
Этот пример не содержит ошибок и прекрасно работает. Установите значение $total_cost=700 и посмотрите на результат.
Если бы его написал я, то сделал бы это так как показал Максим, тем не менее, использованный в нём синтаксис так же корректен. PHP исключительно либерален в отношении синтаксиса. Он предоставляет возможность программисту ориентироваться на C или Basic традицию в зависимости от того, какая ему ближе.

> Коде появляются значения переменных $total_cost и
> $credit_limit, откуда в них взялись значения?

Пример учебный поэтому все данные в нём условны. $credit_limit, судя по всему, должен задаваться в скрипте как константа(т. е. иметь неизменное значение), а $total_cost высчитываться в зависимости от количества покупок.

> И как это работает:если условие
> верно, то функция вернет и ноль и единицу, что-ли,
> что-то я тут не пойму?

Оператор RETURN вызывает ПРЕРЫВАНИЕ выполнения кода и возврат функцией того значения, которое после него указано. Если если $total_cost > $credit_limit == true, функция вернёт 0, если false, то 1.
То, что RETURN прерывает выполнение программы очень удобно для отлова ошибок(нежелательных ситуаций). Если на каком-то этапе возникает ошибка, можно не допустить выполнения следующих операций и возвратить код ошибки.



Редактировано 1 раз. Последний раз 09.03.2007 15:30 пользователем Кирилл Соколинский (СЗТУ).

Re: PHP ? Освоить? Легко.
Пользователь: -AND- (IP-адрес скрыт)
Дата: 12, March, 2007 10:24

Я думал что код нужно рассматривать буквально. Вот то что этот код работает меня и удивило, ведь переменные не указаны, значит, ну насколько я понял они должны быть обе равны нулю. А с синтаксисом я согласен - "сишный" наглядней, мне он тоже больше нравиться.



Редактировано 1 раз. Последний раз 12.03.2007 11:30 пользователем -AND-.

Re: PHP ? Освоить? Легко.
Пользователь: immortal (IP-адрес скрыт)
Дата: 27, March, 2007 19:36

однако Zend Studio Professional 299 бакинских стоит, я начинал РНР с блокнота, сейчас максимум юзаю подсветку.

а вобщето я белый и пушистый...

Re: PHP ? Освоить? Легко.
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 28, March, 2007 10:35

Дык я тоже в основном фаром пользуюсь. Не признаю для веба никаких GDI. FarPowerPack форева. Удобный пакетик и бесплатно.

Re: PHP ? Освоить? Легко.
Пользователь: immortal (IP-адрес скрыт)
Дата: 28, March, 2007 13:05

а тестить скрипты можно установив локальный web сервер, например пакет Денвер [www.denwer.ru], устанавливается достаточно легко

Re: PHP ? Освоить? Легко.
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 28, March, 2007 13:44

По поводу пакетов сервера можно поспорить. Есть случаи, когда эти конфигурации придется донастроить. А поскольку ставили эти продукты автоматически, то и дополнительные настройки сложно будет сделать. Лично я разбирался сам с установкой всего этого. И теперь хоть знаю, в каком направлении двигаться, если что добавить нужно.

Re: PHP ? Освоить? Легко.
Пользователь: -AND- (IP-адрес скрыт)
Дата: 29, March, 2007 16:27

Сделал форму в HTML:
<html>
<head>
<title>Тестовая страница</title>
</head>
<body>
<form action="formphp.php" method="GET">
Текстовое поле <input type="text" name="txt"><hr>
<input type="radio" name="method" value="get" checked>Метод открытый
<input type="radio" name="method" value="post"> Метод закрытый <br><br>
<input type="submit" name="go" value="Отправить">
</form>
</body>
</html>

Она должна передать данные в php-сценарий, только почему-то не передает.
В скрипте php у меня следующее:

<html>
<head>
<title>Form php results</title>
</head>
<body>
<?php
/* Эта страница обрабатывает запрос от Forma.html*/
//Проверка передачи параметров по go//
if(!isset($go)){
echo "Не указаны параметры <br>";
exit(1);
}
else{
echo "<b>Данные: </b><br>";
echo "Текст: $txt <br>";
echo "Переключатель метода: <br>";
echo "Выбран метод $method <br>";

}


?>
<body/>
</html>

Делаю так: запускаю HTML, заполняю поле, устанавливаю переключатель, нажимаю кнопку Submit.
Потом запускаю php-скрипт, а он мне выдает что "Не указаны параметры"
Делал это в Zend.
Кстати данные с формы превращаются в глобальные переменные? Они лежат в ОЗУ?

Re: PHP ? Освоить? Легко.
Пользователь: Панев Максим (IP-адрес скрыт)
Дата: 29, March, 2007 18:32

Так к переменным формы можно обращаться тольков том случае, если в конфигурационном файле пхп установлена директива
register_globals=On
но это агроменная дыра в защите сервера, а посему, рекомендуется эту директиву отключать (что, скорее всего, и сделано). А к для доступа к переменным формы необходимо получать доступ с помощью глобальных массивов
$_GET['var_name'] - переменные, переданные методом GET
$_POST['var_name'] - переменные, переданные методом POST
$_REQUEST['var_name'] - переменные и из метода GET и из метода POST

Re: PHP ? Освоить? Легко.
Пользователь: -AND- (IP-адрес скрыт)
Дата: 03, April, 2007 09:51

Т.е. если опция register_globals=On будет закоментирована, то глобальные переменные не будут работать вообще?

А кстати как работает передача данных с формы в скрипт PHP, без глобальных переменных? Запускается форма, заполняются поля, нажимается Submit, и куда складываются значения, или как запускается скрипт PHP, чтобы сразу забрать у формы значения переменные?
А-а я уже понял, получается форма HTML сразу запускает скрипт PHP и передает ему значения переменных, да? В Денвере проверил.
А Zend, после нажатия Submit в форме выдает сообщение Blankformphp.php, а скрипт не запускает, или может так и должно быть?



Редактировано 2 раз. Последний раз 03.04.2007 10:58 пользователем -AND-.

Re: PHP ? Освоить? Легко.
Пользователь: -AND- (IP-адрес скрыт)
Дата: 03, April, 2007 12:35

Вопрос на счет Кукисов:
вот в книге написано что Кукисы могут иметь шесть параметров. Но указывать их, кроме имени не обязательно. Но тут напрашивается вопрос, как же тогда PHP распознает параметры?
Например идут параметры имя,значение, время жизни... То мне обязательно нужно указать значение, если я хочу указать время жизни?

Как считать(задавать) время жизни кукисов?

чч/мм/гггг, или по другому и какие разделители, или их вообще нету? И во что его переводить, в шестнадцатиричную систему, или в двоичную, или можно в десятичной?



Редактировано 1 раз. Последний раз 03.04.2007 12:49 пользователем -AND-.

Re: PHP ? Освоить? Легко.
Пользователь: -AND- (IP-адрес скрыт)
Дата: 03, April, 2007 14:26

ИзвBните что надоедаю, но... HELP!!! HELP!!! :)

Так вот есть некий скрипт, который задает Кукис-счетчик, и выдодит его в брайзер:

<?
if(!isset($count)){
$count=0;
}
$count++;
SetCookie("count",$count,0x6FFFFFFF);
echo "Я посетил эту страницу $count раз";
?>

В браузере он выводится, но не добавляет значение на единицу. Глянул в эксплорере и в мозилле - этот кукис стоит, и равен единице, но почему-то не увеличивается.

Re: PHP ? Освоить? Легко.
Пользователь: Администратор (IP-адрес скрыт)
Дата: 03, April, 2007 15:01

Выше Максим уже писал про register_globals. К cookies это тоже относится. Надо как-нибудь так:

<?php
if (isset($_COOKIE['count'])) {
        $count = $_COOKIE['count'];
}
else {
        $count = 0;
}

$count++;
setcookie("count", $count, 0x6FFFFFFF);
?>

Re: PHP ? Освоить? Легко.
Пользователь: -AND- (IP-адрес скрыт)
Дата: 03, April, 2007 16:19

Ну конечно же я помню за то что говорил Максим, и конечно я пробовал и так:

<?
if(!isset($_COOKIE["count"])){
$count=0;
}else{
$count=$_COOKIE["count"];
}
$count++;
SetCookie("count",$count,0x6FFFFFFF);
echo "Я посетил эту страницу $_COOKIE[count] раз";
?>

Но так тоже не работает.

Re: PHP ? Освоить? Легко.
Пользователь: Администратор (IP-адрес скрыт)
Дата: 03, April, 2007 16:32

Нуууу... Не поленился набрал:

Вот исходник
Вот рабочий вариант

Посмотрите, что уеб-сервер в логи пишет... Наверное ругаицца на что-нибудь!

Re: PHP ? Освоить? Легко.
Пользователь: -AND- (IP-адрес скрыт)
Дата: 03, April, 2007 16:33

Представляете, попробовал в обычном браузере на Денвере, не в Zend - и все работает. Странно что Zend так работает, его видимо настраивать нужно, я посмотрел там конфиг PHP.INI - фонтан.

А до того пробовал и через $HTTP_COOKIE_VARS в Zend, и не работало. Может потому что повторный запуск по кнопке Run не производит обновление сеанса?

Спасибо, до связи :)

Страницы: 12>>
Страница: 1 из 2


Извините, только зарегистрированные пользователи могут писать в этом форуме.
This forum powered by Phorum.