![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Ripper |
|
||||
![]() Lonely soul... ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 30.6.2004 Где: г. Москва Репутация: 1 Всего: 23 |
Хочу сделать что-то типа голосования. Есть файл имеющий тип:
Ответ1: Ответ2: Ответ3: Есть форма:
И есть скрипт который должен просто записать то что выбрал:
Я долго мучался незнаю может просто туплю.. мало спал сегодня =) Если в массив идут строки \r\n\ то почему он записывает без перехода если я не указываю их сам? А если указываю получается пробелы и другой бред. Если выбрал 1 вариант Хорошо::1 Норма: --а тут пустая строка появляется-- Плохо: А если выбераю последнее или среднее я непомню то тама вообще что то типа Хорошо::1 -пустая Норма: -пустая Плохо : Простите если че нить глупое допустил но ни кто не может дать готовую номальную функцию для голосования?? Или скажите где ошибка.... -------------------- "Он знает: надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума" - Над кукушкиным гнездом |
||||
|
|||||
| Гость_Frikazoid |
|
|||
|
Unregistered |
Слухай! вопервых нах проходить 3 раза?
для разбиения на массив используй регекспы! preg_match_all('/<div class="text">(.*)<\/div>/Uims', $f, $text); вовторых нафига тебе текстовой файл? пользуй мускул! быстрее и круче! 2 запроса и всё в порядке! |
|||
|
||||
| Secandr |
|
|||
|
Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 5 Всего: 39 |
проще исеть такую структуру файла:
Соответствено ответ1:11, ответ2:22,ответ3:15 читаешь весь файл в переменную, затем разрезаешь строку $mas=explode(':',$file_content) затем $mas[$nomer_otveta]++; затем склеиваешь $file_content=join(":",$mas) и пишешь обратно в файл |
|||
|
||||
| dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: 2 Всего: 137 |
Ripper, а теперь подумай, что будет с твоим траффиком, если я сделаю так:
Кажется, будет не очень хорошо |
|||
|
||||
| Ripper |
|
|||
![]() Lonely soul... ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 30.6.2004 Где: г. Москва Репутация: 1 Всего: 23 |
dm9 Ты это к тому что можно вставить скрипт любой допустим? Ну в обрабатывабщем скрипте можно проверить если ID есть то если есть файл $id.".dat" то работать дальше?
Secandr Спасибо попробую -------------------- "Он знает: надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума" - Над кукушкиным гнездом |
|||
|
||||
| Secandr |
|
|||
|
Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 5 Всего: 39 |
Ripper Передовать имя файла из формы - секуритибаг. Так делать нельзя.
Если уж сильно хочется, то делай проверку:
|
|||
|
||||
| Ripper |
|
|||
![]() Lonely soul... ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 30.6.2004 Где: г. Москва Репутация: 1 Всего: 23 |
Secandr насчет файла... а как я выведу вопрос? Я знаю только их номера ведь?
И насчет Id непойму. у меня есть куча файлов. 1.dat ,2.dat ,3.dat, и вывожу все в зависимости от айди... разве нельзя проверить есть ли такой файл у меня в папке ? -------------------- "Он знает: надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума" - Над кукушкиным гнездом |
|||
|
||||
| Secandr |
|
|||
|
Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 5 Всего: 39 |
Ripper
ты будешь делать проверку на существование, а я в поле id введу вместо цифры другую информацию,например имя одного из твоих скриптов, а в конце пробел, и затрёшь ты свой файл. Мелкое но западло! Из формы лучше передовать только цифры, как ты и делаешь, но ты не проверяешь корректность информации при открытии файла, а этим может воспользоваться злоумышленик. $id.",dat" - не защита от взломщика, а защита от сбоя и дурака. |
|||
|
||||
| dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва Репутация: 2 Всего: 137 |
Secandr многое сказал, но добавлю ещё. Просто file() работает так, что если ты передашь ему url, он его будет пытаться скачать. В этом сучае: 1. Ты тратишь много траффика. 2. Процесс php занимает до фига памяти и очень сильно грузит систему (сам проверял, на Apache под Windows). Это отключается в настройках php, но по умолчанию, насколько я знаю, включено... Почитай статьи по безопсности. Я давал пару интересных ссылок в соседнем топике. PS Как раз большие файлы c расширением dat в инете найти несложно, вот можно и устроить западло. Конечно, этот баг ещё надо будет найти, ведь php-код не выдаётся сервером, но всё равно такие дыры не есть гуд. |
|||
|
||||
| Ripper |
|
|||
![]() Lonely soul... ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 30.6.2004 Где: г. Москва Репутация: 1 Всего: 23 |
Ну а как мне вопрос вывести? (secandr) И потом все равно не догоняю... я же могу проверить чтобы айди тока из цифр состояло. Или например если запрос не с формы то остоновить действия? И вообще как лучше делать голосование т.е. строктура файлов... чтобы можно было делать их много и вставлять в любое место сайта... как я определю какое голосование я вставил? тока через hidden??
-------------------- "Он знает: надо смеяться над тем, что тебя мучит, иначе не сохранишь равновесия, иначе мир сведет тебя с ума" - Над кукушкиным гнездом |
|||
|
||||
| Secandr |
|
|||
|
Связист ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4043 Регистрация: 3.8.2003 Где: Russia, Volgograd Репутация: 5 Всего: 39 |
Я и говорю, что нужно проверять чтобы id состояло только из цифр. $id+=0; - точно переведёт id в числовой вид, а затем ифом проверяешь не фыходит ли id за рамки <1 и >9999
|
|||
|
||||
| IZ@TOP |
|
|||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
А еще лучше установить точный путь до базы. И читать так: file('basedir/'.intval($id).'.dat');, максимум защиты, минимум кода. Единственное что тебе светит, это ошибка интерпретатора что файл не существует.
-------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |