Отправляет email-рассылки с помощью сервиса Sendsay

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

  Все выпуски  

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


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

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

Выпуск № 744
от 20.08.2007, 17:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 443, Экспертов: 56
В номере:Вопросов: 3, Ответов: 3


Вопрос № 98393: Здравствуйте, уважаемые эксперты. Вот, есть скрипт гостевой книги. Но происходит странная вещь... Первоначально в базе было одно сообщение от автора, и когда я добавила второе, база очистилась. Сколько я не пытаюсь добавлять сообщения, не пр...
Вопрос № 98398: Доброго времени суток! В общем, такая штука. Есть сайт, в котором мне необходимо хранить где-нибудь свои глобальные переменные. Я в курсе что можно хранить их в сессии, но... есть одно но... они должны подгружаться (то есть должны быть видимы) на...
Вопрос № 98407: Здравствуйте. У меня еще несколько вопросов. 1. Мне сказали, что с помощью массива можно сделать так, что выбранный пункт меню выделяется другим цветом. Как такое сделать? И как сделать в этом же массиве, чтобы при нажатии на разный пункт ме...

Вопрос № 98.393
Здравствуйте, уважаемые эксперты.

Вот, есть скрипт гостевой книги. Но происходит странная вещь... Первоначально в базе было одно сообщение от автора, и когда я добавила второе, база очистилась. Сколько я не пытаюсь добавлять сообщения, не проходит. В чем дело?

Заранее спасибо.

P. S. Исходник гесты: скачать.
Отправлен: 14.08.2007, 17:43
Вопрос задала: Angel7 (статус: Практикант)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 4)

Отвечает: Powoditch konstantin
Здравствуйте, Angel7!
В жизни не видел такого кривого кода). О вопросе - Вам надо изменить режимы открытия файлов для записи с fopen($aXX, "w") на fopen($aXX, "a+"). В предыдущей версии оно перезаписывало файлы каждый раз когда осуществлялась запись.
Ответ отправил: Powoditch konstantin (статус: 4-ый класс)
Ответ отправлен: 14.08.2007, 19:56


Вопрос № 98.398
Доброго времени суток!
В общем, такая штука. Есть сайт, в котором мне необходимо хранить где-нибудь свои глобальные переменные. Я в курсе что можно хранить их в сессии, но... есть одно но... они должны подгружаться (то есть должны быть видимы) на всем протяжении просмотра сайта (на какую страницу мы бы ни зашли). В принципе, вариант может быть такой - session_start(); в самом начале пхпшки, но согласитесь, это не очень правильно, точнее лень каждый раз прописывать это вверху пхп... Может быть есть какая-то альтернатива сессиям? И еще, очень часто видел советы по выключению register_globals. Чем он мешает? И включают ли эту опцию на серверах, предоставляемых хостинг?
Отправлен: 14.08.2007, 18:33
Вопрос задал: Blanzh (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Flynn
Здравствуйте, Blanzh!
Эту опцию обычно нигде не включают, если серверы заботятся о своей безопасности. register_globals вам все равно ничего не даст, так как переменные оно создает все равно из масивов $_GET и $_POST. Плохая она тем, что что доступ к ним имеет пользователь и он может создать любую переменную с любым именем. И если вскрипте какая-то переменная не инициализируется по умолчанию, но используется, то это создает дыкру в безопасности.
Не совсем понимаю чем вам не нравится session_start() в начале страниц. Если Вам на этой странице эти переменные не нужны - не включайте, если нужны - то любые другие вариации сессиый нагрузки вызовут намного больше.
Например можете сами сделать сесси на файлах и передавать данные через строку запроса или скрытые поля, но их всегда можно подменить и всегда придется проверять их правильноть.
Можете сделать собственный файлы и хранить в них данные и передавать только идентификатор файла - но тогда вам придется каждый раз открывать файл и смотреть его.
И что же тогда получается лучше - одна строка и получение данных из массива $_SESSION или же каждый раз читать файл и получать от туда же те же данные? Если на второе сделать функцию, все равно выходить одна строка в начале каждой страницы, но вот я лично сомневаюсь что аналог сессий сделаный на РНР, будет работать быстрее сессий написаных на С.
Ответ отправил: Flynn (статус: 4-ый класс)
Ответ отправлен: 14.08.2007, 18:52
Оценка за ответ: 4
Комментарий оценки:
Спасибо Агромное! Доступно и просто... В общем в любом случае буду испошльзовать $_SESSION. Но в этом случае возник еще один вопрос. Я хочу использовать темплэйт (html-файл, в который будут подгружаться другие странички), то есть при переходе например на страничку about.html, я должен подгружать содержимое этой страницы в укзанное место в темплэйте (шаблон для всех страниц). Есть вариант, использовать include, но тогда адресная строка будут постоянно на индексной. Могу ли я вообще реализовать такое? и если да, то подскажите "дорогу" к этому, плиз.


Вопрос № 98.407
Здравствуйте. У меня еще несколько вопросов.

1. Мне сказали, что с помощью массива можно сделать так, что выбранный пункт меню выделяется другим цветом. Как такое сделать? И как сделать в этом же массиве, чтобы при нажатии на разный пункт меню был разный титл?
2. У меня есть скрипт статей... Довольно простенький. Мне еще нужно сделать редактирование чужих комментов через админку, добавление статей тоже ТОЛЬКО через админку, а также возможность создания блоков "ПОследние статьи", "лучшие статьи". К сожалению, MySQL я знаю плохо... Помогите, пожалуйста. Исходник
3. Я недавно задавала вопрос (ссылка), так вот, теперь у меня новая проблема: у меня несколько видов файлов. Как сделать так, чтобы они все были на странице?

Всем заранее спасибо.
Отправлен: 14.08.2007, 20:13
Вопрос задала: Angel7 (статус: Практикант)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Flynn
Здравствуйте, Angel7!
1 - Не знаю что вам говорили на счет массива, но если только для РНР то все будет зависеть от того, как у вас выводит HTML. Т.е. например выбрав в меню "Новости" скрипт у нас ведь узнает что ему надо отправлять пользователю именно новости по какому-нибудь айди в строке запроса index.php?show=news, поэтому в самой простой реализации там где выводится текст меню вставляем простое условие -
if ($_POST['show']=="news") {echo "<font color='red'>Новости</font>"} else {echo "Новости";}
Вариант два - применение стиля.
т.е. у нас например HTML выводится так
<tr><td style=""<?=$news_style?>">Новости</td></tr>"
<?= - выводит значение переменной в браузер. Т.е. при загрузке страницы, проверяем что у нас за страница и такой переменной присваиваем значение особое значение существующего стиля, остальные заносятся по умолчанию.
Не удобно тем, что слишком много условий может получиться и слишком много лишних переменных.
Как вариант вывода для этого же способа - использование switch. См. пример 1.
Перед свичем присваиваем всем переменным значение по умолчанию и потом нужная нам выделится жирным шрифтом. Тут же приведен пример для заголовка страницы. Его просто выводим <title><?=$title?></title> или же echo "<title>$title</title>". Вне зависимости от того, какая у нас страница - если $title выведется свой, если он задан в swith-е.

Есть еще вариант с массивом - для больших switch он будет работать немного быстрее. Смотрите пример 2.

Вопрос три не совсем понял. Если будут вопросы - можете обращаться напрямую в аську 166842541, проще, быстрее и лучше поймем друг друга :)

Приложение:

Ответ отправил: Flynn (статус: 4-ый класс)
Ответ отправлен: 14.08.2007, 20:55
Оценка за ответ: 5
Комментарий оценки:
Спасибо. Вроде работает.


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

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

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

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

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


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


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.56 beta от 20.08.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное