Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > помогите данные не считываются из массива


Автор: supervladislav 17.6.2006, 04:28
Блин вроде всё работало ,как меня угораздило что-то изменить и всё.
Так вот есть скрипт голосования вот та часть которая отвечает за считывание из массива ,полученного из хтмл формы и запись в файлы.
Код

<?php
$golos=fopen("golos1.dat", "w+");
$golos2=fopen("golos2.dat","w+"); 
fwrite($golos,$g);
fwrite($golos2,$a);
fclose($golos);
fclose($golos2);
if (isset($_POST['yes'])){$ok=$ok++;echo"спасибо ваш ответ хорошо";}
if (isset($_POST['no'])) {$nok=$nok++;echo"спасибо ваш ответ плохо";}
$golos=fopen("golos1.dat", "w+");
$golos2=fopen("golos2.dat","w+"); 
$c=$ok+$g
$b=$nok+$a
fwrite($golos,$c);
fwrite($golos2,$b);
fclose($golos);
fclose($golos2);
?>

Ну тоесть всё предельно просто ))
Открывается файл ,читается информация и записывается в переменную  ,закрывается файл ,проверяется массив на предмет нахождения в нём положительных или отрицательных результатов,
данные складываются с предыдущими данными,и происходит запись в файл ,файл закрывается.
а вот html форма)))
Код

<html>
<form action="golos.php" method="post">
да<input type=submit  name="yes" value="за">
нет<input type=submit  name="no" value="против">
</form>
</html>

только не надо сильно орать что массив не прописан ,а то я и так и сяк пробовал не работает.
 

Автор: -=Ustas=- 17.6.2006, 08:50
Цитата(supervladislav @  17.6.2006,  04:28 Найти цитируемый пост)
Открывается файл ,читается информация и записывается в переменную

Покажи мне пальцем, где она у тебя читается? 

Автор: [xoodo] 17.6.2006, 08:56
Цитата(supervladislav @ 17.6.2006,  04:28)
Код

<?php
$golos=fopen("golos1.dat", "w+");
$golos2=fopen("golos2.dat","w+"); 
fwrite($golos,$g);
fwrite($golos2,$a);
fclose($golos);
fclose($golos2);
if (isset($_POST['yes'])){$ok=$ok++;echo"спасибо ваш ответ хорошо";}
if (isset($_POST['no'])) {$nok=$nok++;echo"спасибо ваш ответ плохо";}
$golos=fopen("golos1.dat", "w+");
$golos2=fopen("golos2.dat","w+"); 
$c=$ok+$g
$b=$nok+$a
fwrite($golos,$c);
fwrite($golos2,$b);
fclose($golos);
fclose($golos2);
?>

Ну тоесть всё предельно просто ))
Открывается файл ,читается информация и записывается в переменную...

Даа?! Мать моя женщина, всегда думал, что WRITE по-аглицки значит ПИСАТЬ, а ЧИТАТЬ -- READ.

http://ee2.php.net/fwrite
http://ee.php.net/fread

Код
<?php
$file1 = "golos1.dat";
$file2 = "golos2.dat";
$ok = $nok = 0;

$golos1 = fopen($file1, "r");
$golos2 = fopen($file2,"r"); 

$g = fread($golos1, filesize($file1));
$a = fread($golos2, filesize($file2));

fclose($golos1);
fclose($golos2);

if (isset($_POST['yes'])) {
    $ok++;
    echo"спасибо ваш ответ хорошо";
}
if (isset($_POST['no'])) {
    $nok++;
    echo"спасибо ваш ответ плохо";
}

$c = $ok + $g;
$b = $nok + $a;

$golos1 = fopen($file1, "w");
$golos2 = fopen($file2, "w"); 

fwrite($golos1, $c);
fwrite($golos2, $b);

fclose($golos1);
fclose($golos2);
?>


Добавлено @ 09:04 
Это ежели близко к тектсу. А ежели литературный перевод, то я бы так делал:

Код
<?php

function getData($fileName) {
    $fh = fopen($fileName, "r");
    $data = fread($fh, filesize($fileName));
    fclose($fh);
    return $data;
}

function putData($fileName, $data) {
    $fh = fopen($fileName, "w");
    fwrite($fh, $data);
    fclose($fh);
}


$file1 = "golos1.dat";
$file2 = "golos2.dat";

$g = getData($file1);
$a = getData($file2);

if (isset($_POST['yes'])) { $g++; }
elseif (isset($_POST['no'])) { $a++; }
else { die("U came from Moon, aren't U?"); }
echo"Спасибо, Ваш голос учтен.";

putData($file1, $g);
putData($file2, $a);

?>
  

Автор: -=Ustas=- 18.6.2006, 15:56
supervladislav, за выражениями следи!!!  smile   

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)