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
Форумы портала PHP.SU :: Версия для печати :: голосование
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » голосование

Страниц (1): [1]
 

1. mihai - 06 Апреля, 2009 - 16:45:55 - перейти к сообщению
срисовал с книжки скрипт голосования
но
что то не работает

при первом запуске-голосовании
выдаёт ошибку

чисто интуитивно понимаю, что не может создать и записать в файл,
но вот почему

пожалуйста помогите исправить

Warning: fopen(ocenka/.txt) [function.fopen]: failed to open stream: No error in Z:\home\localhost\www\golosxxx\ocenka.php on line 42

Warning: fwrite(): supplied argument is not a valid stream resource in Z:\home\localhost\www\golosxxx\ocenka.php on line 43

Warning: fclose(): supplied argument is not a valid stream resource in Z:\home\localhost\www\golosxxx\ocenka.php on line 44

PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. <?
  4. $dir="ocenka";
  5. $ocenka=$ind.".txt";
  6. $way="$dir/$ocenka";
  7. if
  8. (!isset($_POST['ball']))
  9. {
  10. if
  11. (file_exists($way)==true)
  12. {
  13. $file=file($way);
  14. $vsego=(int)$file[0];
  15. $srednee=(float)$file[1];
  16. echo "колличество оценок этой статьи:$vsego";
  17. echo "Средняя оценка статьи:$srednee";
  18. }
  19. echo"<form method=POST action=ocenka.php>
  20. <input name=ind type=hidden value=$ind>
  21.     <select name=ball>
  22.     <option value=5>5 отлично</option>
  23.     <option value=4>4 четыре</option>
  24.     <option value=3>3 троечка</option>
  25.     <option value=2>2 двоечка</option>
  26.     <option value=1>1 еданичка</option>
  27.  </select>
  28.     <input name=submit type=submit value=оценить>
  29. </form>";
  30. }
  31. else
  32. {
  33. $ball=$_POST['ball'];
  34. $ind=$_POST['ind'];
  35. $ocenka=$ind.".txt";
  36. $way="$dir/$ocenka";
  37.  
  38. if(file_exists($way)!==true)
  39. {
  40. $vsego=1;
  41. $srednee=$ball;
  42. $count=$vsego."\n".$srednee;
  43. $open=fopen($way, "W+");
  44. fwrite($open, $count);
  45. fclose($open);
  46. }
  47. else
  48. {
  49.  
  50. $file=file($way);
  51. $vsego=(int)$file[0];
  52. $srednee=(float)$file[1];
  53. $vsego++;
  54. $srednee=($srednee*($vsego-1)+$ball)/$vsego;
  55. $srednee=round($srednee,2);
  56. $count=$vsego."\n".$srednee;
  57. $open=fopen($way, "r+");
  58. flock($open, LOCK_EX);
  59. fwrite($open, $count);
  60. flock($open, LOCK_UN);
  61. fclose($open);
  62. }
  63. echo "спасибо за ваш голос<br>";
  64. echo "вернуться";
  65. }
  66. ?>
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
2. vitaliy_mad - 06 Апреля, 2009 - 19:41:24 - перейти к сообщению
mihai пишет:
fopen(ocenka/.txt)

mihai пишет:
$ocenka=$ind.".txt";

Переменная $ind не определена. и соответственно файл ".txt" не может быть прочитан или записан...
3. mihai - 07 Апреля, 2009 - 14:07:47 - перейти к сообщению
и если вот так то тоже не работет
$ind=1;
4. chaynyk - 10 Апреля, 2009 - 22:45:50 - перейти к сообщению
попробуй заменить:

вместо

в двух местах.
проверь наличие папки Z:\home\localhost\www\golosxxx\ocenka\
в случае не удачи пришли код ошибки и выложи код с номерами строк, а то тяжело определить строку 42 и т.д.
5. vitaliy_mad - 10 Апреля, 2009 - 22:53:44 - перейти к сообщению
mihai пишет:
и если вот так то тоже не работет
$ind=1;

а файл 1.txt есть?
6. magistr_bender - 10 Апреля, 2009 - 23:32:57 - перейти к сообщению
всё намного проще...
автор просто не указал как ему надо открыть файл
попробуй fopen(имя_файла, 'r')

 

Powered by ExBB FM 1.0 RC1