для получения ссылки на изображение копай объект $insertedEntry, а как загрузить думаю тут из кода и так понятно, библиотека для работы с пикасой - http://framework[dot]zend[dot]com/download/gdata/ , библиотека от zendramework'a не зависит, просто инклюдишь файл инициализации в свой скрипт, и можешь работать с ней.
Яж помню что выводил установку кук после вывода тела.
"setcookie() defines a cookie to be sent along with the rest of the HTTP headers. Like other headers, cookies must be sent before any output from your script(this is a protocol restriction) . This requires that you place calls to this function prior to any output, including <html> and <head> tags as well as any whitespace." - http://www.php.net/manual/ru/fun...on.setcookie.php
Мануал врёт или fox волшебник?
output_buffering - не в счёт, на большинстве хостингов он выпилен, да и 95% php-программистов даже не догадываются о нём.
user это для блока новостей, carset тут не указан и вообще не чего из <head> так как файл инклюдится
У вас уже тело ответа выводится, а вы тут пытаетесь заголовки вывести, так нельзя, с куками нужно работать до вывода какого-либо кода, и желательно до первого закрытия тега ?> так как даже один пробел может быть воспринят как тело ответа. То есть сначала файла, без пробела
А вот потом когда написал эту вункцию че делать??
типо если эта функция то так иначе по другому????
именно так, определять можно непосредственно перед вызовом темплейтов . PHP абсолютно без разницы, с какого браузера был запрос, мобильного или десктопного. А вот как раз уже непосредственное разделение идёт на уровне HTML.
А еще можно посмотреть на формат fb2, там есть метки для всего книжного хозяйства.
Тогда и не надо будет ковырять монги-шмонги, может у человека простой хостинг, а вы ему монго предлагаете...
Кроме того нормальная такая мысль - бить текст книги по страницам прямо в БД - это нормально, и поиск нормально и связей один ключ id книги..
Ну так..)) всё зависит от проекта конечно, но с моей колокольни использовать sql хранилище для хранения древовидных документов - это как гвозди микроскопом, да и vps сейчас вытесняют обычные хостинги, цены уже почти выровнялись. Да и если потом расширить функционал придется, работать с документо-объектной моделью будет удобней. А так да, полностью с Вами согласен, можно посмотреть электронные форматы книг и писать прямо в файл, благо библиотек для работ с разными форматами сейчас навалом. Да и разобраться с одной библиотекой проще чем с nosql субд. Но если ТС захочет "только хардкор" всё-таки советую почитать про разные типы СУБД на досуге, в будущем будет легче при проектировании. "Когда знаешь много велосипедов, реже возникает желание писать свой" (с) не помню кто .
В данном случае лучше подойдет Документо-ориентированная субд, например MongoDB. Почитать про неё можно тут - http://ru[dot]wiki[dot]mongodb[dot]org/display/DOCS/Home . Как использовать на php тут - http://www.php.net/manual/ru/book.mongo.php . Если знакомы c javascript и JSON освоить её не составит проблем. Простыми словами - ДОСУБД позволяет хранить в качестве записи массив (не сериализованный) и работать запросами с массивами. В том числе и многомерными, и ассоциативными(ключ=>значение). То есть можно выдернуть запросом один/несколько элементов массива из записи (ну или там обновить, или удалить, вообщем все привычные SQL операции), или можно же запросить всю запись целиком(опять же как SQL), также поддерживаются индексы по элементам массива. Схема действия будет примерно такая - запись(массив)-книга, а в ней элементы массива тег(ключ)=>страница(значение). А использовать реляционную субд в данном случае неудобно - пардон, затрахаешься, клепать таблицы для связей, да и сколько места эти связные таблицы займут...
Передаёте параметры в функцию, а в функции используете вместо них переменные объекта, вот и не работает. $this-> запросе уберите, и за функционирует.
PS. Use PDO, luke
PPS. я бы написал так(учитывая как вы используете данный класс):
returntrue;//ну или можно вернуть id сохранённой новости из базы для дальнейшей работы, тут по вкусу вобщем
}
else
{
die(mysql_error());//дурной тон использовать die() для дебага, и не ООП-подход конечно, вообще тут исключение вызвать нужно, но для примера вполне сгодится
}
}
}
?>
тогда и править запрос не нужно, и вызывать проще:
$news=new news($author,$title,$short,$full);//создали новость, получили объект, и делаем с ним маниипуляции, например валидация и т.д. и в конце сохраняем:
html разметка верная, а приведённый мной код - абстрактный и на правильность не претендует
хотябы по тому что методы slideUp и slideDown без значений на входе раскрывают блок сверху-вниз (а в той игре, нужно наоборот),и имеют callback события(то есть можно переписать и выкинуть 10 строк как минимум) просто вы просили привести примерные функции и подсказать метод решения, вот я сосбственно и попытался это сделать
Js вообще хоть и тьюринг-полный, но функионал из коробки у него намного меньше чем на пример у php, скриптовый язык же. Даже чтобы получить случайное целое число в промежутке нужно писать свои функции. Да и каждый браузер его трактует как захочет, поэтому в кодинге на js также существует понятие кроссбраузерности. Особенно опера в этом плане доставляет, она с js дружит так же как и ie6 с блочной моделью и альфа-каналом в png.
0. Главный блок (к примеру 600х600)
1. div блоки(авалы, с которых будет что-то вылазить).
2. С div блоков вылазиют другие блоки(типо дети авалов ;) случайным образом
3. Если нажали на на блок(#2), то засчитать очки и убрать его.. Если нет, то убрать через ну там 0.5сек.
4. В переменную к примеру points записываются, и таймер(пусть как там будет 30 сек), после вывода таймера вывести переменную points.
Как то так?
В общем да, на выезжающих блоках нужно будет отлавливать событие click (например аттрибут onClick - и на него повесить функцию записи значения в переменную и функцию скрытия выезжающего блока, так же через setInterval повесить скрытие выезжающего блока через определённое время, ну в показывать их можно так - дать каждому выезажющему определённый порядковый id - (block1 ... blockN ..), и объединить их общик классом, например blocks ,затем взять math_random в границах кол-ва блоков, ну и с использованием jQuery код будет выглядеть примерно так:
var random_num = getRandomInt(1,10);//к примеру у нас 10 блоков, также глобализуем переменную, чтобы потом этот же блок опустить
jQuery("#block"+random_num).slideDown();//показываем блок силами jQuery
}
//функция прячущая случайный блок
function hide_uped_block{
jQuery("#block"+random_num).slideUp();//прячем только что поднятный блок
}
//объединим обе функции для задания интервала
function random_blocks{
random_display_block();//поднимаем блок
setTimeout(hide_uped_block(),500);//устанавливаем время, которое будет виден блок(то есть за какое время по нему нужно успеть кликнуть)
}
jQuery(document).ready(function(){
setInterval(random_blocks(),100);//устанавливаем запуск игры по dom ready(загрузке страницы) и интервал появления новых блоков
});
//теперь займёмся кликами
var total =0;//переменнная с очками, инициализируется 1 раз при загрузке документа
jQuery('.blocks').click(function(){
jQuery(this).slideUp();//прячем блок по клику
var total = total +100500;//плюсуем очки за удачный клик
});
ну в ообщем это так, примерно, можно прикрутить кнопку старт и таймер, и использовать клик по ней вместо jQuery(document).ready() ; думаю дальше докопаетесь до нужного вам функционала.
да тут сосбтвенно AJAX можно прикрутить только если к таблице результатов (хз какие ещё запросы к серверу нужны для игры такого типа), а по технологиям - можно смастерить такое на чистом HTML + jQuery (частично переведённая документация - jquery-docs.ru) , ну а если по новомодным правилам то понадобятся - HTML5, canvas и опять JS, можно чистый , можно библиотеку любую, с библиотекой быстрее получится. Да и собственно игр таких в инете пруд-пруди, можно просто открыть страницу с любой и F12 - js браузерный язык, все исходники будут видны (единственное что могут быть обфусцированы, но и это не большая проблема).