Консультация № 171198
10.08.2009, 11:40
0.00 руб.
0 2 1
Добрый день!
У меня вопрос не работает почему то скрип голосования на сайте www.12821-80.ru
приведу ниже исходный код...
Помогите разабраться заранее спасибо!!!

запись в файле есть 1_t.dat

Приложение:
<noindex>
<?
$f=file("http://www.12821-80.ru/1_t.dat");
//$f=file("1_t.dat");
$s=explode(",",$f[0]);
$s[$id-1]++;
$fp=fopen("1_t.dat","w");
$ss=$s[0].",".$s[1].",".$s[2].",".$s[3].",".$s[4].",".$s[5];
fwrite($fp,$ss);
fclose($fp);

$s=explode(",",$f[0]);
$sum=$s[0]+$s[1]+$s[2]+$s[3]+$s[4]+$s[5];
$a[0]=round(((100/$sum)*$s[0]),1);
$a[1]=round(((100/$sum)*$s[1]),1);
$a[2]=round(((100/$sum)*$s[2]),1);
$a[3]=round(((100/$sum)*$s[3]),1);
$a[4]=round(((100/$sum)*$s[4]),1);
$a[5]=round(((100/$sum)*$s[5]),1);
?>
<form action="http://www.12821-80.ru/index.php">
<table class="table">
<tr><td rowspan="11" width="20"> </td>
<tr><td colspan="2"><b>Откуда вы о нас узнали?</b></td></tr>
<tr><td class="opr1">Google</td></tr>
<tr><td class="opr2">
<table>
<tr>
<td>
<input type="radio" value="1" name="id">
</td>
<td class="opr" width="<? echo $a[0]*3; ?>"></td>
<td class="ssylupniz1"><? echo $a[0]; ?>%</td>
</tr>
</table>
</td></tr>
<tr><td class="opr1">Rambler</td></tr>
<tr><td class="opr2">
<table>
<tr>
<td>
<input type="radio" value="2" name="id">
</td>
<td class="opr" width="<?echo $a[1]*3;?>"></td>
<td class="ssylupniz1"><? echo $a[1]; ?>%</td>
</tr>
</table>
</td></tr>
<tr><td class="opr1">Yandex</td></tr>
<tr><td class="opr2">
<table>
<tr>
<td>
<input type="radio" value="3" name="id">
</td>
<td class="opr" width="<? echo $a[2]*3; ?>"></td>
<td class="ssylupniz1"><? echo $a[2]; ?>%</td>
</tr>
</table>
</td></tr>
<tr><td class="opr1">Специализированные издания</td></tr>
<tr><td class="opr2">
<table>
<tr>
<td>
<input type="radio" value="4" name="id">
</td>
<td class="opr" width="<?echo $a[3]*3;?>"></td>
<td class="ssylupniz1"><? echo $a[3]; ?>%</td>
</tr>
</table>
</td></tr>
<tr><td class="opr1">Выставки, конференции</td></tr>
<tr><td class="opr2"></td><td>
<table>
<tr>
<td><input type="radio" value="5" name="id"></td>
<td class="opr" width="<? echo $a[4]*3; ?>"></td>
<td class="ssylupniz1"><? echo $a[4]; ?>%</td>
</tr>
</table>
</td></tr>
<tr><td></td><td class="opr1" >По рекомендации друзей и коллег</td></tr>
<tr><td class="opr2"> </td> <td>
<table>
<tr>
<td><input type="radio" value="6" name="id"></td>
<td class="opr" width="<? echo $a[5]*3; ?>"></td>
<td class="ssylupniz1"><? echo $a[5]; ?>%</td>
</tr>
</table>

<center> <input type="image" src="http://www.12821-80.ru/vote.png" alt="Vote">


<b>Всего:</b> <? echo $sum; ?>
</center>
</td>
</tr></tr>
</table>
</form>
</noindex>

Обсуждение

Неизвестный
10.08.2009, 12:02
общий
это ответ
Здравствуйте, Павел T.А..
Так как у Вас голосование, все-таки работает (в том смысле что данные из файла считываются), то Вам надо проверить права файла на запись.
Т.е. в данный момент у вас данные просто не записываются в файл.
Попробуйте chmod 777 т.е дать полные права на фaйл.
PS Все-таки реализация через файловую систему очень уязвима.
Неизвестный
18.08.2009, 09:56
общий
Я бы ещё проинициализировал явно переменную $id = $_GET['id']; - возможно, что не вкючена автоматическая регистрация глобальных переменных, и происходит вот что:

необъявленная $id равна по умолчанию 0;
$s[0-1] то есть $s[-1] не существует;
$s[$id-1]++; таким образом создаёт $s[-1] = 1, но на запись попадают только значения $s, начиная с нулевого - а они не изменялись. То есть голос не засчитывается.
Форма ответа