Дано:
- счетчик с проверкой IP;
- Darth_Revan с его говнокодом;
- два метода решения.
Его способ заключается в том, чтобы при обращении к счетчику каждый раз считывать лог в память, добавлять новый IP, сортировать его и ложить обратно. Естественно, ему всё равно, что это сложнее, что тысячу раз читать файл - это некруто. Только полюбуйтесь на этот ужас:
#тут он получает данные
Voters=$(cat "./data/voters.txt");
UniqInfo="$REMOTE_ADDR"
if [ -n "$Voters" ]; then
echo 'Всего возложено '$(echo "$Voters" | wc -l)' цветов';
else
echo "Всего возложено over 9000 цветов";
fi;
if [[ $(echo "$Voters" | grep -c "$UniqInfo") != "0" ]]; then
echo ' (вы возложили цветы).';
fi;
#!/usr/bin/env vvsh
<%
#а вот тут идет голосование
File="./data/voters.txt";
UniqInfo="$REMOTE_ADDR";
touch "$File";
if [ -w "$File" ]; then
Temp=$(echo "$UniqInfo" && cat "$File");
echo "$Temp" | sort | uniq > "$File";
fi;
redirect http://khilmonument.whostas.com/
%>
Я не понимаю, зачем искуственно вызывать баги? Уменьшать скорость работы? Я предлагаю вот так:
#тут он получает данные
voters="$(cat "$APPS/data/voters.txt")"
info="$REMOTE_ADDR"
if [ -n "$voters" ]; then
echo "Всего возложено $(echo -e "$voters" | sort | uniq | wc -l) цветов"
else
echo 'Всего возложено over 9000 цветов'
fi
if echo -e "$voters" | grep -q -e "$info"; then
echo ' (вы возложили цветы).'
fi
#!/usr/bin/env vvsh
<%
#а вот тут идет голосование
file="$APPS/data/voters.txt";
info="$REMOTE_ADDR";
echo "$info" >> "$file"
redirect 'http://khilmonument.whostas.com/'
%>
ЛОР, может ты убедишь его, что его метод хуже?