-1

1 つのページで複数のフォームに問題があります。ページ インデックスに 4 つのフォームを含めます

include('./poll_1a.php');
include('./poll_2a.php');
include('./poll_3a.php');
include('./poll_4a.php');

すべての投票ページのフォーム コードは同じです。すべてのスクリプトにいくつかの一意のマーカー ($poll_code) を含めますが、1 つのフォームを使用すると効果があります。送信変数は他のフォームで受信されます。しかし、私は各フォームを個別に処理したいと考えています。

変数 $poll_code はすべてのスクリプトで一意です -> poll_1 の場合は 1、poll_2 の場合は 2 など。同じ状況が $cookie_name にも当てはまります

$cookie_name = "poll_cookie_".$poll_code;

ご覧のとおり、Cookie にはさまざまな名前があります。

 $poll_code = "1"; // or 2, 3, 4
 ?>
 <p>    
  <form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" name="<?php echo $poll_code; ?>">
  <input type="hidden" name="poll_cookie_<?php echo $poll_code; ?>" value="<?php echo $poll_code; ?>">
  <table>
<?php
  //print possible answers
  for($i=0;$i<count($answers);$i++){
    ?><tr><td style="\text-allign: left;\"><input type="radio" name="vote_<?php echo $poll_code; ?>" value="<?php echo $i; ?>"> <?php echo $answers[$i]; ?></td></tr><?php
  }
  echo "</table>";
  echo "<br>";

if ($_COOKIE["$cookie_name"] == $poll_code ) { 
  echo "<br> &nbsp; &nbsp; &nbsp; nie można głosować ponownie ...";
} else {  
?>

    <p><input type="submit" name="submit_<?php echo $poll_code; ?>" value="głosuj !" onClick="this.disabled = 'true';"></p>

<?php    
    }
?>  

  </form>
</p>

Q: このフォームを 1 つのページで個別に機能させるにはどうすればよいですか?

// - - - - - - - - - - 編集

スクリプトの受信部分

  $votes = file($file);
  $total = 0;
  $totale = 0;
  $poll_cookie = 0;

if (isset($_POST["vote_$poll_code"]) &&  isset($_POST["poll_cookie_$poll_code"])) {
  $vote = $_POST["vote_$poll_code"]; 
  $poll_cookie = $_POST["poll_cookie_$poll_code"];
  }

  //submit vote
  if(isset($vote)){
    $votes[$vote] = $votes[$vote]+1;
  }

  //write votes
  $handle = fopen($file,"w");

  foreach($votes as $v){
    $total += $v;
    fputs($handle,chop($v)."\n");
  }

  fclose($handle);

もちろん、$file にも独自の宣言があります (スクリプトの先頭、$poll_code 宣言の下)。

$file = "poll_".$poll_code.".txt";
4

1 に答える 1

0

問題はループの外側にある可能性があると思う<?php echo $poll_code; ?>ので、割り当てられた同じ値を常に使用している可能性があり、ループ内に配置する可能性があります

于 2012-05-18T10:49:45.933 に答える