darabba
Новичок
Приветствую всех форумчан!
Срочно нужна помощь гуру PHP.
У меня есть счетчик нажатий на кнопку, где кнопка не стандартная, а нарисованная в трех вариантах для каждого состояния (стационарное положение, при наведении мышью, вжатая).
Проблема моя в том, что при нажатии на кнопку форма видимо не сабмитится, т.е. не прибавляется единица к счетчику.
Код выглядит так:
<?php
$ip=getenv("REMOTE_ADDR");//извлекаю ип
$str2=$ip. "\r\n"; //подготавливаю переменную к записи
$ipsbase = "ipbase.txt";
$file2=file("ipbase.txt");
$c = file('count.txt');
echo '<center><form method="POST">
<input type="image" name="b" src="button_off.jpg" onmouseover="this.src=\'img/button_on.jpg\';" onmousedown="this.src=\'img/button_push.jpg\';" onmouseout="this.src=\'img/button_off.jpg\';" border="0" />
</form></center>';
$submit=$_POST['b'];
if (isset($submit)){
if(in_array($str2,$file2)){ //проверяю есть ли уже такой ип
header("Location: ".$_SERVER["REQUEST_URI"]."");
}
else {
$sb = fopen($ipsbase, "r+"); //открываю файл
fputs($sb,$ip. "\r\n"); //записываю ип в файл
$c[0]++;//+1 к счетчику
$fp = fopen('count.txt','r+');
fputs($fp,$c[0]);
fclose($fp);
}
}
function num2word($c,$words) {
$c=$c[0]%100;
if ($c>19) { $c=$c%10; }
switch ($c) {
case 1: { return($words[0]); }
case 2: case 3: case 4: { return($words[1]); }
default: { return($words[2]); }
}
}
$words=Array("человек", "человека", "человек");
echo "<H2><center>".$c[0]." ".num2word($c, $words)."</center></H2>";
?>
Если конечно в INPUT заменить type с image на submit, то счетчик прекрасно работает, но тогда теряется весь смысл, ведь будет стандартная кнопка, что для меня не приемлемо.
Пожалуйста, прошу Вас о помощи, как мне поправить код, чтобы счетчик заработал?
Заранее благодарю!
Срочно нужна помощь гуру PHP.
У меня есть счетчик нажатий на кнопку, где кнопка не стандартная, а нарисованная в трех вариантах для каждого состояния (стационарное положение, при наведении мышью, вжатая).
Проблема моя в том, что при нажатии на кнопку форма видимо не сабмитится, т.е. не прибавляется единица к счетчику.
Код выглядит так:
<?php
$ip=getenv("REMOTE_ADDR");//извлекаю ип
$str2=$ip. "\r\n"; //подготавливаю переменную к записи
$ipsbase = "ipbase.txt";
$file2=file("ipbase.txt");
$c = file('count.txt');
echo '<center><form method="POST">
<input type="image" name="b" src="button_off.jpg" onmouseover="this.src=\'img/button_on.jpg\';" onmousedown="this.src=\'img/button_push.jpg\';" onmouseout="this.src=\'img/button_off.jpg\';" border="0" />
</form></center>';
$submit=$_POST['b'];
if (isset($submit)){
if(in_array($str2,$file2)){ //проверяю есть ли уже такой ип
header("Location: ".$_SERVER["REQUEST_URI"]."");
}
else {
$sb = fopen($ipsbase, "r+"); //открываю файл
fputs($sb,$ip. "\r\n"); //записываю ип в файл
$c[0]++;//+1 к счетчику
$fp = fopen('count.txt','r+');
fputs($fp,$c[0]);
fclose($fp);
}
}
function num2word($c,$words) {
$c=$c[0]%100;
if ($c>19) { $c=$c%10; }
switch ($c) {
case 1: { return($words[0]); }
case 2: case 3: case 4: { return($words[1]); }
default: { return($words[2]); }
}
}
$words=Array("человек", "человека", "человек");
echo "<H2><center>".$c[0]." ".num2word($c, $words)."</center></H2>";
?>
Если конечно в INPUT заменить type с image на submit, то счетчик прекрасно работает, но тогда теряется весь смысл, ведь будет стандартная кнопка, что для меня не приемлемо.
Пожалуйста, прошу Вас о помощи, как мне поправить код, чтобы счетчик заработал?
Заранее благодарю!