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