PHP Online Test

294
07 апреля 2022, 01:10

я столкнулся с такой проблемой, создал онлайн тест и в значения $plusbox и $errorbox не увеличивается значение на 1, хоть я и задал условия $plusbox++ и $errorbox++

$errorbox = 0;
 $plusbox = 0;
 if(!isset($_REQUEST['GO'])) {
   if($_REQUEST['TXT_FORM_NAME'] == " ") {break;}
   if($_POST[FORM1] == A) {$plusbox++;} else {$errorbox++;}
   if($_POST[FORM2] == C) {$plusbox++;} else {$errorbox++;}
   if($_POST[FORM3] == B) {$plusbox++;} else {$errorbox++;}
   if($_POST[FORM4] == A) {$plusbox++;} else {$errorbox++;}
   if($_POST[FORM5] == A) {$plusbox++;} else {$errorbox++;}
 }
Answer 1
$errorbox = 0;
$plusbox = 0;
if(!isset($_REQUEST['GO'])) {
    if($_POST['FORM1'] == 'A') {$plusbox++;} else {$errorbox++;}
    if($_POST['FORM2'] == 'C') {$plusbox++;} else {$errorbox++;}
    if($_POST['FORM3'] == 'B') {$plusbox++;} else {$errorbox++;}
    if($_POST['FORM4'] == 'A') {$plusbox++;} else {$errorbox++;}
    if($_POST['FORM5'] == 'A') {$plusbox++;} else {$errorbox++;}
}

Работающий и протестированный пример:

<?php
$errorbox = 0;
$plusbox = 0;
if($_POST['FORM1'] == 'A') {$plusbox++;} else {$errorbox++;}
if($_POST['FORM2'] == 'C') {$plusbox++;} else {$errorbox++;}
if($_POST['FORM3'] == 'B') {$plusbox++;} else {$errorbox++;}
if($_POST['FORM4'] == 'A') {$plusbox++;} else {$errorbox++;}
if($_POST['FORM5'] == 'A') {$plusbox++;} else {$errorbox++;}
echo 'box -';
print_r($plusbox);
echo 'error -';
print_r($errorbox);

?>
<form method="post">
    <input name="FORM1">
    <input name="FORM2">
    <input name="FORM3">
    <input name="FORM4">
    <input name="FORM5">
    <button>fdsf</button>
</form>
Answer 2

Проверьте своё решение, например так:

$_REQUEST['GO'] = null;
$_REQUEST['TXT_FORM_NAME'] = 'test';
$_POST['FORM1'] = 'A'; // верно
$_POST['FORM2'] = 'A'; // неверно
$_POST['FORM3'] = 'B'; // верно
$_POST['FORM4'] = 'A'; // верно
$_POST['FORM5'] = 'C'; // неверно
$errorbox = 0;
$plusbox = 0;
if(!isset($_REQUEST['GO'])) {
    if ($_REQUEST['TXT_FORM_NAME'] == " ") {return;}
    if($_POST['FORM1'] == 'A') {$plusbox++;} else {$errorbox++;}
    if($_POST['FORM2'] == 'C') {$plusbox++;} else {$errorbox++;}
    if($_POST['FORM3'] == 'B') {$plusbox++;} else {$errorbox++;}
    if($_POST['FORM4'] == 'A') {$plusbox++;} else {$errorbox++;}
    if($_POST['FORM5'] == 'A') {$plusbox++;} else {$errorbox++;}
}
printf("errorbox: %d, plusbox: %d\n", $errorbox, $plusbox);

Я немного поправил ваш код, чтобы он не валился с ошибками.

Если результат вас устраивает, уберите тестовые данные и посмотрите а что у вас в приходит в массивы $_REQUEST и $_POST. Напишите var_dump($_REQUEST, $_POST); посмотрите на вывод. При необходимости внесисте правки в HTML-форму или в php-код.

READ ALSO
Работа с файлами laravel, как скрыть storage?

Работа с файлами laravel, как скрыть storage?

Подскажите пожалуйста как правильно использовать файловую систему laravelНа примере изображений, мне их нужно сохранять в /storage/images/

248
Почему не импортируется gsap?

Почему не импортируется gsap?

Я установил gsap через npm:

76
Почему выдает Unexpected token? Javascript

Почему выдает Unexpected token? Javascript

Консоль выдает Uncaught SyntaxError: Unexpected token '{' на счет 14 строкиПочему?

199
Автономно работающий на хостинге .php

Автономно работающий на хостинге .php

Есть хостинг regru, есть сайт(пока не залит), суть в том, что есть

84