Не понимаю, в чем проблема
Пишу что-то типа сайта с викторинами, на страничке с тестами есть форма с вопросами, после ее отправки я записываю в куки имя теста, чтобы пользователь не мог проходить тест дважды, НО почему-то куки записываются при загрузке страницы, а не при отправке формы Вот код:
<!DOCTYPE html>
<html>
<head>
<tittle></tittle>
</head>
<body>
<form method="POST">
<?php
//unset($_COOKIE[$_GET['n']]);
$fileName = "quizzes_tasks/".$_GET['n'].".txt";
if(file_exists($fileName)){
$handle = fopen($fileName, 'r');
$string = fread($handle,filesize($fileName));
$questions = explode(";", $string);
$qANDa = array();
for($i=0; $i<count($questions); $i++){
array_push($qANDa, explode(":",$questions[$i]));
}
for($i=0; $i<count($qANDa); $i++){
for($j=0; $j<count($qANDa[$i]); $j++){
if(preg_match('/[\d]{1}[\s]{2}/',$qANDa[$i][$j])==true){
echo "<p>".$qANDa[$i][$j]."</p>";
}
else{
echo '<input type="radio" value="'.$j.'" name="a_'.$i.'" id="q"'.$j.'><label for="q'.$j.'" required>'.$qANDa[$i][$j].'</label></br>';
}
}
}
echo '</br>';
if(!empty($_COOKIE[$_GET['n']])){
echo "You've allready passed this test";
}
else{
echo '<button name="done">send</button>';
}
}
else{
echo "This test doesn't exist... YET";
}
?>
</form>
</body>
<?php
if(array_key_exists('done', $_POST)){
array_pop($_POST);
setcookie($_GET['n'], 'done');
$answersFileName = "quizzes_answers/".$_GET['n'].".txt";
$handle = fopen($answersFileName, 'r');
$string = fread($handle, filesize($answersFileName));
$answers = explode(';', $string);
$mark=0;
echo "<p>Answers</p>";
foreach($_POST as $key=>$item){
for($i=0; $i<count($answers); $i++){
if(substr($key, -1) == $i){
if($item==$answers[$i]){
$mark++;
$n=(substr($key, -1))+1;
echo $n." You answered correct</br>";
}
else{
$n=(substr($key, -1))+1;
echo $n." Your answer: ".$item." Correct answer: ".$answers[$i]."</br>";
}
}
else{
continue;
}
}
}
echo "</br>";
echo "Mark: ".$mark;
}
?>