RE: Вопросы по PHP (для новичков)
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
RE: Вопросы по PHP (для новичков) - 2009-01-20 18:58:23.380000
|
|
|
Mamka
Сообщений: 560
Оценки: 0
Присоединился: 2007-11-26 22:20:09.313333
|
есть вот такой селектор: <select name='status_sel[{$row['id']}]' style='background-color:#ebebe7'>
<option value='no_status' selected>Нет статуса</option>
<option value='closed_ok'>Закрыто успешно</option>
<option value='cloded_bad'>Закрыто неуспешно</option>
<option value='open'>Открыто</option>
<option value='at_time'>Отложить до </option>
</select> есть вот такой обработчик: if (isset($_POST['status_sel'])) {
foreach (@$_POST['status_sel'] as $key => $value) {
if (is_numeric($key)) {
$res_del=@mysql_query("SELECT * FROM events WHERE id='$key'");
while ($row = mysql_fetch_array($res_del)) {
@mysql_query("UPDATE events SET status=$status_sel WHERE id='$key'");
}
}
$result_of_event = "$status_sel.";
}
} После нажатия сабмита $result_of_event становится равным "Array"
Аналогичный запрос с удалением работает, он выглядет так(пишу, что бы было понятно, каких ошибок нет): Инпут: <input type='checkbox' name='del[{$row['id']}]' /> Обработчик: if (isset($_POST['del'])) {
if (@$_POST['apass']==$adminpass) {
foreach (@$_POST['del'] as $key => $value) {
if (is_numeric($key)) {
$res_del=@mysql_query("SELECT * FROM events WHERE id='$key'");
while ($row = mysql_fetch_array($res_del)) {
@mysql_query("INSERT INTO events_tr (date,time,author,event,comment,status,importance) VALUES ('{$row['date']}','{$row['time']}','{$row['author']}','{$row['event']}','{$row['comment']}','{$row['status']}','{$row['importance']}')", $link);
}
@mysql_query("DELETE FROM events WHERE id='$key'");
}
$result_of_event = "Записи успешно удалены.";
}
}else{
$result_of_event = "Неверный пароль";
}
} Где я туплю?)
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-01-20 23:36:15.623333
|
|
|
Cep}|{
Сообщений: 1396
Оценки: 0
Присоединился: 2007-06-26 01:11:51.416666
|
quote:
ORIGINAL: Mamka <select name='status_sel[{$row['id']}]' style='background-color:#ebebe7'>
quote:
Где я туплю? Обрати мнимание на это 'status_sel[{$row['id']}]'
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-01-20 23:48:53.183333
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
:))) Он имел в виду двойные кавычки и в самое начало ЛЮБОГО тестируемого скрипта вставляй: @set_time_limit(0); @ini_set("display_errors","1"); ЗЫЖ И уж по началу точно не думай об экономии (ничтожной) - двойные кавычки или нет. Лучше думай о читабельности скрипта
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-01-22 15:14:12.180000
|
|
|
Mamka
Сообщений: 560
Оценки: 0
Присоединился: 2007-11-26 22:20:09.313333
|
С Сержем разобрались, было несколько ошибок. Аля таких, как is_numeric() к данному селектору ну никак не катит и чет еще..) Теперь такой вопрос: Есть страница, она подгружается из другой с помощью аякса. Можно ли как-нибудь закрыть к ней доступ на прямую, а что бы она отображалась только тогда, когда является подгружаемой? Сделал проверку на наличие переменной сессии, если ее нету - то exit;. Если сессия не началась при авторизации, то на эту страницу и правда не заходит, но если залогиниться - то спокойно можно войти на эту страницу напрямую.
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-01-22 15:20:30.980000
|
|
|
Cep}|{
Сообщений: 1396
Оценки: 0
Присоединился: 2007-06-26 01:11:51.416666
|
При подгрузке передавай переменную (типа пароля) /page.php?pass=123456, а при выдаче проверяй, есть ли она Хотя нет, ее же можно в ХТМЛ-коде посмотреть… Похоже никак.
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-01-22 16:49:46.566666
|
|
|
AdReNaL1Ne
Сообщений: 8027
Оценки: 350
Присоединился: 2005-09-11 06:38:05
|
quote:
ORIGINAL: Mamka Теперь такой вопрос: Есть страница, она подгружается из другой с помощью аякса. Можно ли как-нибудь закрыть к ней доступ на прямую, а что бы она отображалась только тогда, когда является подгружаемой? Сделал проверку на наличие переменной сессии, если ее нету - то exit;. Если сессия не началась при авторизации, то на эту страницу и правда не заходит, но если залогиниться - то спокойно можно войти на эту страницу напрямую. Так помести файл в диру, к которой нет доступа по протоколу http, вот и всё :)
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-01-22 16:55:05.760000
|
|
|
Панда
Сообщений: 232
Оценки: 0
Присоединился: 2008-03-05 07:38:35.890000
|
quote:
ORIGINAL: Mamka С Сержем разобрались, было несколько ошибок. Аля таких, как is_numeric() к данному селектору ну никак не катит и чет еще..) Теперь такой вопрос: Есть страница, она подгружается из другой с помощью аякса. Можно ли как-нибудь закрыть к ней доступ на прямую, а что бы она отображалась только тогда, когда является подгружаемой? Сделал проверку на наличие переменной сессии, если ее нету - то exit;. Если сессия не началась при авторизации, то на эту страницу и правда не заходит, но если залогиниться - то спокойно можно войти на эту страницу напрямую. ну а в чем проблема? сраница подгружается по определенному условию; ну и делай так: если условие выполнилось - то подгружается
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-01-22 17:06:04.300000
|
|
|
Mamka
Сообщений: 560
Оценки: 0
Присоединился: 2007-11-26 22:20:09.313333
|
quote:
Так помести файл в диру, к которой нет доступа по протоколу http, вот и всё :) А можешь рассказать, как у какой-либо папки убрать http-доступ? quote:
ну а в чем проблема? сраница подгружается по определенному условию; ну и делай так: если условие выполнилось - то подгружается Чуть-чуть повнимательней прочитай мой пост) у меня щас так и есть, НО если сессия уже начата, то все-равно могу войти напрямую на эту страницу
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-01-22 23:20:40.496666
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
quote:
А можешь рассказать, как у какой-либо папки убрать http-доступ? .htaccess Order allow,deny Deny from all
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-01-22 23:26:54.570000
|
|
|
Cep}|{
Сообщений: 1396
Оценки: 0
Присоединился: 2007-06-26 01:11:51.416666
|
quote:
ORIGINAL: Pashkela Order allow,deny Deny from all Он тогда ее оттуда и аяксом не подгрузит.
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-01-23 14:13:31.403333
|
|
|
Mamka
Сообщений: 560
Оценки: 0
Присоединился: 2007-11-26 22:20:09.313333
|
Серж прав, не подгружает аяксом
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-01-23 14:17:37.570000
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
Я ответил просто на это: quote:
А можешь рассказать, как у какой-либо папки убрать http-доступ? выше просто не читал. Ну хз, проверяй рефер например - не тот - нафинг
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-01-23 15:12:40.240000
|
|
|
Cep}|{
Сообщений: 1396
Оценки: 0
Присоединился: 2007-06-26 01:11:51.416666
|
Да лучше и не париться с этим, забить и все. Потому что кому надо он и реферер подделает ))
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-04 22:09:03.816666
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
народ подскажите? а можно ли сделать както так? чтоб скритп выполнялся пошагово. пример: у меня есть скрипт который парсит один сайт и гребёт с него базу.. скрипт автомаризирован, он сам находит все линки шагает по каталогу и переписывает его в мою базу… в общем скрипт к своем окончанию должен проиндексировать около 20 000 страниц (у меня там рекурсивная функция)…. не мало правда?:) это он сделает приблизительно за часов этак 15 при моём канал инетовском :) но время выполнения скриптов сильно большим в конфигах ставить нехочется.. посему решил что возможно есть метод позволяющий скрипту выполняться с шагом например в 2 минуты… если такой действительно существует подскажите пожалуйста схему реализации… если не существует, то возможно есть другой выход? например выполнять скрипт не через апач, а например в консоли линукса? если да то как?
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-04 22:13:40.606666
|
|
|
Cep}|{
Сообщений: 1396
Оценки: 0
Присоединился: 2007-06-26 01:11:51.416666
|
Можно его запускать через cron, а результаты работы где-нить сохранять (файл\база), чтоб он знал, откуда стартовать.
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-04 22:19:40.310000
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
у меня он автоматически в базу пишет :) и ты немного не понял.. мне его надо не через определённое время выполнить, а пошагово. тоесть чтоб его выполнение не останавливалось… так как если он остановится, то потом процесс будет начинаться сначала а мне надо чтоб он продолжался..
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-04 22:28:46.006666
|
|
|
Cep}|{
Сообщений: 1396
Оценки: 0
Присоединился: 2007-06-26 01:11:51.416666
|
Так он и так пошагово выполняется, по инструкционно))). А если ты имеешь ввиду задержку, то поставь в нужном месте sleep(пауза_в_секундах); И если надо увеличь max_execution_time
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-04 22:37:51.410000
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
вот именно альтернативу этому max_execution_time я и ищу
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-04 22:52:35.966666
|
|
|
oRb
Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
|
http://ru.php.net/set_time_limit не?
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-05 18:08:43.573333
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
:) я там был уже :) теперь другой вопрос… возможно ли както с помощью SQL делать такое условие существует таблица А с полями name и value типа TEXT в базу посылается запрос типа INSERT INTO `A` VALUES('some_text','some_value'); надо выполнить этот запрос только в том случае если "somе_text" нигде (ни в одной из строк в данной таблице) не повторяется. сейчас этот алгоритм реализую с помощью пхп, но думаю можно сделать заменитель для СКУЛ чтоб не повторялись запросы.. ибо их идёт у меня порядка 20 000 думаю смысл ясен :) для пхп делаю так $text='some_text'; $result=mysql_query("SELECT name FROM 'A' WHERE name='$text';"); if($result!=='') mysql_query("INSERT INTO `A` VALUES('some_text','some_value');"); просто хочется сократить количество запросов хотябы раза в 2 :) так как очень много дублирующихся
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-05 18:29:07.546666
|
|
|
kolPeeX
Сообщений: 1456
Оценки: 0
Присоединился: 2007-01-25 14:57:57.683333
|
Делай поле name unique
http://www.mysql.ru/docs/gruber/mg18.html " УНИКАЛЬНОСТЬ КАК ОГРАНИЧЕНИЕ СТОЛБЦА"
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-07 14:02:15.926666
|
|
|
orobest
Сообщений: 13
Оценки: 0
Присоединился: 2009-02-07 13:47:59.313333
|
Здравствуйте! Подскажите в чём может быть проблема: мой сайт http://www.vipzone.tu2.ru/ совершенно нормально открывается в Opera, Firefox, а в Internet Explorer и в Avant Browser пишет: "Невозможно отобразить страницу", подскажите может быть что-то надо изменить в коде или это просто проблема хостинга?
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-07 19:41:50.536666
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
єто на твои браузеры проклятие наложено :) а если по теме, то это может быть бок с шифрованием.. тоесть странички генерируются неверно может быть у тебя там вирус просто на сайте .. хотя просмотрев быстро вроди незаметил .. попроси что ктонить из знакомых попробовал на твой сайт зайти и посмотреть.. у меня просто линукс и ИЕ соответственно нет.. проверить немогу и выявить ошибку
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-07 21:14:54.160000
|
|
|
orobest
Сообщений: 13
Оценки: 0
Присоединился: 2009-02-07 13:47:59.313333
|
Надо попробовать в админке проверить на вирусы, хотя вроде когда базу и движок сливал комп был чистый. Но всё равно спасибо. Друзей просил та же история не открывают, у брата тоже на tu2 такая же история только он сначала об этом не знал.
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-07 23:05:41.060000
|
|
|
orobest
Сообщений: 13
Оценки: 0
Присоединился: 2009-02-07 13:47:59.313333
|
Всё нашел в чём проблема, зря людей беспокоил, надо просто в админке в настройках системы отключить gzip сжатие, тогда всеми браузерами открывается.
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-07 23:07:19.713333
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
или просто включить в браузере gzip:)
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-08 09:06:34.003333
|
|
|
orobest
Сообщений: 13
Оценки: 0
Присоединился: 2009-02-07 13:47:59.313333
|
В том то и дело у многих отключено.
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-10 23:45:56.996666
|
|
|
zhuk
Сообщений: 2962
Оценки: 10
Присоединился: 2007-02-20 21:00:01.303333
|
Увидел статью на хабре: http://habrahabr.ru/blogs/php/50216/ Скачал класс, кинул в папку вместе со скриптом, который скопировал из статьи. На выходе ошибка: quote:
Fatal error: Call to undefined function curl_init() in W:\home\twi\www\twitter.class.php on line 252 Вот участок кода, на который идёт ссылка:
250 function process($url,$postargs=false){
251
252 $ch = curl_init($url);
253
254 if($postargs !== false){
255 curl_setopt ($ch, CURLOPT_POST, true);
256 curl_setopt ($ch, CURLOPT_POSTFIELDS, $postargs);
257 }
258
259 if($this->username !== false && $this->password !== false)
260 curl_setopt($ch, CURLOPT_USERPWD, $this->username.':'.$this->password);
261
262 curl_setopt($ch, CURLOPT_VERBOSE, 1);
263 curl_setopt($ch, CURLOPT_NObоdу, 0);
264 curl_setopt($ch, CURLOPT_HEADER, 0);
265 curl_setopt($ch, CURLOPT_USERAGENT, $this->user_agent);
266 curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
267 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
268 curl_setopt($ch, CURLOPT_HTTPHEADER, $this->headers);
269
270 $response = curl_exec($ch);
271
272 $this->responseInfo=curl_getinfo($ch);
273 curl_close($ch);
274
275
276 if(intval($this->responseInfo['http_code'])==200){
277 if(class_exists('SimpleXMLElement')){
278 $xml = new SimpleXMLElement($response);
279 return $xml;
280 }else{
281 return $response;
282 }
283 }else{
284 return false;
285 }
286 } Как устранить проблему? Насколько я понял, функция curl_init() стандартная для PHP > 4 ?
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-10 23:51:20.910000
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
да, стандартная (PHP 4 >= 4.0.2, PHP 5), только не у каждого хостера включена в php.ini
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-10 23:56:45.483333
|
|
|
zhuk
Сообщений: 2962
Оценки: 10
Присоединился: 2007-02-20 21:00:01.303333
|
Я пока пытался запустить из денвера. Нужно добавить extension=php_curl.dll ? По крайней мере это единственное место, где встречается "curl". Видимо придётся парсить :)
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-11 00:07:37.556666
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
http://ebay.custhelp.com/cgi-bin/ebay.cfg/php/enduser/std_adp.php?p_faqid=1073
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-11 00:15:05.516666
|
|
|
zhuk
Сообщений: 2962
Оценки: 10
Присоединился: 2007-02-20 21:00:01.303333
|
Спасибо, информация полезная. Но я уже решил проблему (тем более у хостера эта функция не включена): написал простенький РСС-парсер :)
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-11 17:18:50.623333
|
|
|
LadyVamp
Сообщений: 3
Оценки: 0
Присоединился: 2009-02-11 14:37:10.396666
|
Доброго времени суток, подскажите как усторонить фатальную ошибку?
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-11 17:27:31.273333
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
напиши в коде /*
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-11 17:28:43.500000
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
quote:
ORIGINAL: zhuk написал простенький РСС-парсер :) поделись :)
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-11 17:35:27.393333
|
|
|
LadyVamp
Сообщений: 3
Оценки: 0
Присоединился: 2009-02-11 14:37:10.396666
|
<?php
[/align]
[/align]if (!defined('IN_ADMIN')) {
die();
}
[/align]
[/align]require_once(dirname(__FILE__) . '/base/Constants.php');
require_once(dirname(__FILE__) . '/base/Template.php');
require_once(dirname(__FILE__) . '/base/TemplateCache.php');
[/align]
[/align]$action = $_GET['action'];
[/align]
[/align]$globalTemplate = new Template('index');
$output = '';
[/align]
[/align]switch ($action) {
[/align]
[/align] /**
* ----------------------
*
* hf,jnf c ajnjuhfabzvb
*
* ----------------------
*/
[/align]
[/align] case 'add_pics':
case 'edit_pic':
$workId = intval($_GET['work']);
$id = intval($_GET['id']);
[/align]
[/align] require_once(dirname(__FILE__) . '/objects/Work.php');
[/align]
[/align] $work = Work::getById($workId);
[/align]
[/align] if (!$work) {
$output .= <<<EOF
<h1>Работы с указанным идентификатором не существует.</h1>
EOF;
[/align]
[/align] break;
}
[/align]
[/align] require_once(dirname(__FILE__) . '/objects/Picture.php');
[/align]
[/align] if ($id == 0
&& isset($_POST['id'])
) {
$id = intval($_POST['id']);
}
[/align]
[/align] if ($id > 0) {
$pic = Picture::getById($id);
$title = 'Редактирование';
} else {
$pic = Picture::create();
$title = 'Р&#8219;обавление РЅРѕРІРѕРіРѕ';
}
[/align]
[/align] if (!isset($_POST['do'])) {
$output .= <<<EOF
<h1>{$title} изображения в работу [{$work->getName()}]</h1>
[/align]
[/align]EOF;
[/align]
[/align] if ($id > 0) {
$output .= <<<EOF
<form method="post" action="?action={$action}&work={$work->getId()}">
<img src="../{$pic->getWebPictureThumbnail()}" />
EOF;
} else {
$output .= <<<EOF
<form enctype="multipart/form-data" method="post" action="?action={$action}&work={$work->getId()}">
<label for="image">Файл фотографии:</label>
<input type="file" name="image" id="image" />
EOF;
}
[/align]
[/align] $output .= <<<EOF
<br />
<br />
[/align]
[/align] <label for="description">Описание:</label>
<input type="text" name="description" id="description" value="{$pic->getDescription()}" />
[/align]
[/align] <input type="hidden" name="id" value="{$pic->getId()}" />
<input type="hidden" name="work" value="{$work->getId()}" />
<input type="hidden" name="do" value="do" />
<br />
<br />
[/align]
[/align] <input type="submit" value="готово" />
</form>
EOF;
} else {
$pic->setWork($work->getId());
[/align]
[/align]
if (isset($_FILES['image'])) {
require_once(dirname(__FILE__) . '/objects/Group.php');
$group = Group::getById($work->getId());
[/align]
[/align] $result = DB::selectQuery('SELECT COUNT(*) as pcount FROM w_pictures WHERE work_id = ' . $work->getId());
[/align]
[/align] $row = $result->fetchRow();
[/align]
[/align] $num = $row['pcount'];
[/align]
[/align] $pic->setPhotoFromForm($_FILES['image'], $group->getName() . ' ' . $work->getName() . ' ' . $num++);
}
[/align]
[/align] $description = htmlentities($_POST['description'], ENT_QUOTES, 'utf-8');
[/align]
[/align] $pic->setDescription($description);
[/align]
[/align] if ($pic->save()) {
TemplateCache::drop(Constants::CACHE_WORK . $work->getId());
TemplateCache::drop(Constants::CACHE_PICTURE . $pic->getId());
[/align]
[/align] $output .= <<<EOF
<h1>{$title} изображения в работу [{$work->getName()}] успешно завершено</h1>
[/align]
[/align]<p>Вернуться в <a href="?action=pictures&work={$work->getId()}">список фотографий</a>.</p>
EOF;
}
}
[/align]
[/align] break;
[/align]
[/align] case 'del_pic':
$id = intval($_GET['id']);
$workId = intval($_GET['work']);
[/align]
[/align] require_once(dirname(__FILE__) . '/objects/Picture.php');
[/align]
[/align] $pic = Picture::getById($id);
[/align]
[/align] if (!$pic) {
$output .= <<<EOF
<h1>Рзображения СЃ таким идентификатором РЅРµ существует.</h1>
EOF;
[/align]
[/align] break;
}
[/align]
[/align] if ($pic->delete()) {
TemplateCache::drop(Constants::CACHE_WORK . $workId);
TemplateCache::drop(Constants::CACHE_PICTURE . $pic->getId());
[/align]
[/align] $output .= <<<EOF
<h1>Рзображение успешно удалено.</h1>
[/align]
[/align]<p>Вернуться в <a href="?action=pictures&work={$workId}">список фотографий работы</a>.</p>
EOF;
}
[/align]
[/align] break;
[/align]
[/align] case 'pictures':
[/align]
[/align] $groupId = intval($_GET['group']);
$workId = intval($_GET['work']);
[/align]
[/align] require_once(dirname(__FILE__) . '/objects/Work.php');
[/align]
[/align] $work = Work::getById($workId);
[/align]
[/align] if (!$work) {
$output .= <<<EOF
<h1>Работы с указанным идентификатором нет.</h1>
[/align]
[/align]<p>Вернуться в <a href="?action=works&group={$groupId}">список работ группы</a>.</p>
EOF;
[/align]
[/align] break;
}
[/align]
[/align] $output .= <<<EOF
<h1>Список фотографий для работы [{$work->getName()}]</h1>
<hr />
EOF;
[/align]
[/align] require_once(dirname(__FILE__) . '/objects/Picture.php');
require_once(dirname(__FILE__) . '/base/DBCollection.php');
[/align]
[/align] $pics = new DBCollection(Picture::create(), 'WHERE work_id = ' . $workId);
[/align]
[/align] foreach($pics->getList() as $pic) {
$output .= <<<EOF
<p>
<a href="?action=edit_pic&id={$pic->getId()}&work={$workId}" title="редактировать">&nbsp;v&nbsp;</a> &nbsp;
<a href="?action=del_pic&id={$pic->getId()}&work={$workId}" title="удалить" onclick="return confirm('Точно?');">&nbsp;x&nbsp;</a> &nbsp;
| &nbsp;
<img src="../{$pic->getWebPictureThumbnail()}" />
</p>
EOF;
}
[/align]
[/align] if ($pics->getCount() == 0) {
$output .= <<<EOF
<p>Пока пусто</p>
EOF;
}
[/align]
[/align] $output .= <<<EOF
<hr />
<p>
<a href="?action=add_pics&work={$workId}">Р&#8219;обавить</a> |
<a href="?action=works&group={$groupId}">Вернуться в список работ</a>
</p>
EOF;
[/align]
[/align] break;
[/align]
[/align] /**
* ----------------------
*
* РАБОТА РЎ РАБОТАМР
*
* ----------------------
*/
[/align]
[/align] case 'del_work':
$id = intval($_GET['id']);
$groupId = intval($_GET['group']);
[/align]
[/align] require_once(dirname(__FILE__) . '/objects/Picture.php');
require_once(dirname(__FILE__) . '/base/DBCollection.php');
[/align]
[/align] $pics = new DBCollection(Picture::create(), 'WHERE work_id = ' . $id);
[/align]
[/align] if ($pics->getCount() > 0) {
$output .= <<<EOF
<h1>В работе существуют фотографии. Сначала удалите их.</h1>
EOF;
} else {
require_once(dirname(__FILE__) . '/objects/Work.php');
$work = Work::getById($id);
[/align]
[/align] if (!$work) {
$output .= <<<EOF
<h1>Работы с указанным идентификатором не существует.</h1>
EOF;
} else {
if ($work->delete()) {
TemplateCache::drop(Constants::CACHE_WORK . $work->getId());
TemplateCache::drop(Constants::CACHE_INDEX);
[/align]
[/align] $output .= <<<EOF
<h1>Работа [{$work->getName()}] успешно удалена.</h1>
[/align]
[/align]<p>Вернуться в <a href="?action=works&group={$groupId}">список работ группы</a>.</p>
EOF;
}
}
}
[/align]
[/align] break;
[/align]
[/align] case 'add_work':
case 'edit_work':
$id = intval($_GET['id']);
$group_id = intval($_GET['group']);
[/align]
[/align] require_once(dirname(__FILE__) . '/objects/Group.php');
[/align]
[/align] $group = Group::getById($group_id);
[/align]
[/align] if (!$group) {
$output .= <<<EOF
<h1>Р&#8219;СЂСѓРїРїС‹ СЃ указанным идентификатором РЅРµ существует.</h1>
<p>Вернуться в <a href="index.php">список групп</a>.</p>
EOF;
[/align]
[/align] break;
}
[/align]
[/align] if ($id == 0
&& isset($_POST['id'])
) {
$id = intval($_POST['id']);
}
[/align]
[/align] require_once(dirname(__FILE__) . '/objects/Work.php');
[/align]
[/align] if ($id > 0) {
$work = Work::getById($id);
$title = 'Редактирование';
} else {
$work = Work::create();
$title = 'Р&#8219;обавление РЅРѕРІРѕР№';
}
[/align]
[/align] if (!isset($_POST['do'])) {
$output .= <<<EOF
<h1>{$title} работы (группа [{$group->getName()}])</h1>
[/align]
[/align]<form method="post" action="?action=edit_work&group={$group->getId()}">
<label for="name">Название:</label>
<input type="text" name="name" id="name" size="50" value="{$work->getName()}" />
<br />
[/align]
[/align] <label for="link">Ссылка:</label>
<input type="text" name="link" id="link" size="60" value="{$work->getLink()}" />
<br />
[/align]
[/align] <label for="description">Описание:</label>
<textarea id="description" name="description" cols="70" rows="5">{$work->getDescription()}</textarea>
[/align]
[/align] <input type="hidden" name="id" value="{$work->getId()}" />
<input type="hidden" name="do" value="do" />
<br />
<br />
[/align]
[/align] <input type="submit" value="готово" />
</form>
EOF;
} else {
$name = htmlentities($_POST['name'], ENT_QUOTES, 'utf-8');
$description = htmlentities($_POST['description'], ENT_QUOTES, 'utf-8');
$link = $_POST['link'];
[/align]
[/align] $work->setName($name);
[/align]
[/align] if (!$work->getDate()) {
$work->setDate(time());
}
[/align]
[/align] $work->setLink($link);
$work->setDescription($description);
$work->setGroup($group->getId());
[/align]
[/align] if ($work->save()) {
TemplateCache::drop(Constants::CACHE_INDEX);
TemplateCache::drop(Constants::CACHE_WORK . $group->getId());
[/align]
[/align] $output .= <<<EOF
<h1>{$title} работы [{$work->getName()}] в группе [{$group->getName()}] успешно завершено</h1>
[/align]
[/align]<p>Вернуться в <a href="?action=works&group={$group->getId()}">список работ группы</a>.</p>
EOF;
}
}
[/align]
[/align] break;
[/align]
[/align] case 'works':
[/align]
[/align] $groupId = intval($_GET['group']);
[/align]
[/align] require_once(dirname(__FILE__) . '/objects/Group.php');
[/align]
[/align] $group = Group::getById($groupId);
[/align]
[/align] if (!$group) {
&
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-11 17:41:58.623333
|
|
|
LadyVamp
Сообщений: 3
Оценки: 0
Присоединился: 2009-02-11 14:37:10.396666
|
- не в коде как то само здесь вставилось[:(]
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-12 00:02:08.223333
|
|
|
UDO
Сообщений: 435
Оценки: 0
Присоединился: 2008-12-04 00:55:31.380000
|
Вот появился вопросик… подскажите плиз есть например значение переменной $a $a = "123;456" как сделеть так чтобы это значение разделилось на 2 части до знака ; в одну переменную, а после знака ; в другую чтобы было вот так (длина и значение $a разные) $b = "123" $c = "456"
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-12 03:26:20.586666
|
|
|
Pashkela
Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
|
$t = explode(";",$a); $b = $t[0]; $c = $t[1]; echo "$b\n"; echo "$c\n";
|
|
|
RE: Вопросы по PHP (для новичков) - 2009-02-12 10:38:16.003333
|
|
|
UDO
Сообщений: 435
Оценки: 0
Присоединился: 2008-12-04 00:55:31.380000
|
Спасиба Pashkela помог реально++
|
|
|
|
|