Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Нужна помощь со скриптом голосования.
В текстовом файле изначально шесть нулей в строчку.
Трабл в том, что результат работы
"Warning: fgets() expects parameter 1 to be resource, integer given in Z:\home\test1.ru\www\obrab.php on line 13
Warning: fputs() expects parameter 1 to be resource, integer given in Z:\home\test1.ru\www\obrab.php on line 13
Warning: fgets() expects parameter 1 to be resource, integer given in Z:\home\test1.ru\www\obrab.php on line 15
Warning: fputs() expects parameter 1 to be resource, integer given in Z:\home\test1.ru\www\obrab.php on line 15
Warning: fgets() expects parameter 1 to be resource, integer given in Z:\home\test1.ru\www\obrab.php on line 17
Warning: fputs() expects parameter 1 to be resource, integer given in Z:\home\test1.ru\www\obrab.php on line 17
Result:des
Warning: fclose() expects parameter 1 to be resource, integer given in Z:\home\test1.ru\www\obrab.php on line 19"
Я не понимаю в чем дело. 13-я строка это где значение "shes".
И еще, до 13 строки скрипт работает, в фаил добавляет. Но проблемма в том что он и старые не сохраняет. Т.е. данные прошлого опроса в 0 снова.
P.S. Я писал код исходя только из полученных пока что знаний, просьбя Строго не судить, а вот советы крайне приветствуются. Как и решение трабла.
OrmaJever
Отправлено: 03 Мая, 2011 - 23:14:17
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
Dchamel
Отправлено: 03 Мая, 2011 - 23:29:39
Новичок
Покинул форум
Сообщений всего: 5
Дата рег-ции: Май 2011
Помог: 0 раз(а)
OrmaJever, посмотрел, сложновато пока. Я как дальше углублюсь в изучение ПХП обязательно потестю твой скрипт.
А пока что мне нужно как-то с этим разобраться.
OrmaJever
Отправлено: 03 Мая, 2011 - 23:33:26
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
Ну если ты хочешь нормальное голосование то в 10-20 строк не получится и не углублятся тоже не выдет.
А если про ошибки топеременая $f должна быть ресурсом а она переопределяется в 13 строке
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
Plusminuz
Отправлено: 03 Мая, 2011 - 23:46:32
Частый гость
Покинул форум
Сообщений всего: 156
Дата рег-ции: Апр. 2011 Откуда: Россия
Помог: 2 раз(а)
Dchamel пишет:
$f=fopen('store.txt','r+');
Dchamel пишет:
if ($a=="shes") {$f=1;} else {$f=0;}
поменяйте имя для переменной
----- учусь...
Dchamel
Отправлено: 03 Мая, 2011 - 23:48:11
Новичок
Покинул форум
Сообщений всего: 5
Дата рег-ции: Май 2011
Помог: 0 раз(а)
OrmaJever, поправил, спишем невнимательность на то что я простыл ) Спасибо что указал.
А с самим тектовым что я не так сделал ? Почему старые значения не сохраняются ?
$l=fgets($f,1); - беру старое.
$l=$l+$g; - складываю с новым.
fputs($f,$l); и записываю его обратно. Ну как я думал. Я получается чет не то. (Добавление)
Plusminuz, уже. Теперь с тхт осталось разобраться чего он с 0 начинает каждый раз.
evgenijj
Отправлено: 04 Мая, 2011 - 00:31:30
Участник
Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006 Откуда: Москва
Помог: 10 раз(а)
Dchamel пишет:
Всем привет, в ПХП я новый человек, недавно учить начал, если честно пару дней назад
еще советую почитать про switch - ничего сложного, но кода будет поменьше.
P.s. сделано на быструю руку - очень спать хочется.
----- учусь...
Dchamel
Отправлено: 04 Мая, 2011 - 09:08:42
Новичок
Покинул форум
Сообщений всего: 5
Дата рег-ции: Май 2011
Помог: 0 раз(а)
evgenijj, дааа ламеры крепчают, стыдно даже ;)
Plusminuz, спасибо за труд, с массивами знаком. Я думал его переделывать на массиве как раз. Но очень хочется догнать что же у меня не так. В этом скрипте.
Plusminuz
Отправлено: 04 Мая, 2011 - 11:16:38
Частый гость
Покинул форум
Сообщений всего: 156
Дата рег-ции: Апр. 2011 Откуда: Россия
Помог: 2 раз(а)
Dchamel пишет:
очень хочется догнать что же у меня не так. В этом скрипте.
по-моему неправильно у вас то, как вы считываете данные, т.е. функция fgets
вы 6 раз одно и тоже считываете из файла,
Dchamel пишет:
$l=fgets($f,1);
и вдобавок ко всему после каждого считывания пишете туда новую информацию:
Dchamel пишет:
fputs($f,$l);
получается как бы по кругу гоняете одно и то же если я конечно правильно всё понял
----- учусь...
Dchamel
Отправлено: 04 Мая, 2011 - 17:15:24
Новичок
Покинул форум
Сообщений всего: 5
Дата рег-ции: Май 2011
Помог: 0 раз(а)
Plusminuz, я может не совсем правильно понял как эти функции работают.
fgets я думал при считывании 1 байта курсор оставляет после этого байта.
В описании сказано количество байт, конец строки или файла.
А как же считать тогда и сместить курсор ? или выбора нет как считывать по строкам и fgets ставить без длины...
К томуже мне казалось что fputs так же поступает. RTFM дальше ;)
altermann
Отправлено: 05 Мая, 2011 - 02:01:17
Частый гость
Покинул форум
Сообщений всего: 196
Дата рег-ции: Март 2010 Откуда: Днепропетровск
Помог: 6 раз(а)
Я так понимаю, когда у вас проголосуют за один пункт больше 9 человек, вы будете переписывать скрипт, чтоб читал и писал по 2 байта?
Написано на коленке:
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.