Php 根据答案添加值

Php 根据答案添加值,php,add,Php,Add,我有这两个文件 A.php 如何生成一个表达式来进行合计? 我写了一个简单的例子,我的有20个操作,如何根据答案加2分或1分或0,最后写出结果? (就像从0到10的考试) 谢谢。尝试将变量设置为0,然后添加点数。这是通过if语句将内容添加到一起的最基本方法 <?php $op1 = $_REQUEST ['op1']; $op2 = $_REQUEST ['op2']; $total=0; if ($op1 == '10'){ echo "Right answer.

我有这两个文件

A.php


如何生成一个表达式来进行合计? 我写了一个简单的例子,我的有20个操作,如何根据答案加2分或1分或0,最后写出结果? (就像从0到10的考试)


谢谢。

尝试将变量设置为0,然后添加点数。这是通过
if
语句将内容添加到一起的最基本方法

<?php

 $op1 = $_REQUEST ['op1'];
 $op2 = $_REQUEST ['op2'];
 $total=0;
 if ($op1 == '10'){
     echo "Right answer. 2p.";
     $mark = '2';
     $total+=2;
 }else{
     echo "Wrong answer. 0p.";
     $mark2 = '0';
 }

 if ($op2 == '20'){
     echo "Right answer. 2p.";
     $mark3 = '2';
     $total+=2;
 }else{
     echo "Wrong answer. 0p.";
     $mark4 = '0';
 }
 echo "Total points: $total";
?>

虽然提供了答案,但我将指出您的代码有什么问题,即,
大量

首先,当您可以直接使用HTML时,为什么需要回显HTML?回显大量HTML是使代码难看的实践之一

其次,对于每个问题和答案,您都使用if语句。这毫无意义:为每个问题添加10行代码

第三,永远不要使用
$\u REQUEST

我建议保留一个db或一系列问题和答案。例如

$q_array = Array(
     array(
        "question" => "abc",
        "answer" => "455",
     ),....
)

然后,您可以回显问题,并使用循环检查答案。

shubam答案的扩展:
$q_数组=数组(

数组的键是表单中的输入类型字段名,数组的值是正确答案

$total=0;
foreach($_REQUEST as $key=>$val)
{

if($q_array[$key]=$val)
{

     echo "Right answer. 2p.";
     $mark = '2';
     $total+=2;
     echo"<br>";

}


}

echo "Total points: $total";
$total=0;
foreach($\请求为$key=>$val)
{
if($q_数组[$key]=$val)
{
回声“正确答案。2p。”;
$mark='2';
$total+=2;
回声“
”; } } echo“总分:$Total”;
优点。除了
$\u请求之外,
是一个坏的meme;它需要消亡。它只是当前配置上的GET和POST的混合。cookie固定问题(我希望你提到)很久以前了,这种恐吓行为几乎不适用于它的常见用例。@马里奥:我不知道cookie固定的问题。我之所以远离
$\u请求
,是因为用“get”进行暴力强迫方法比
$\u POST
容易得多。这是事实,但不是一个很好的回避理由。从webbrowser和通过链接在每个GET中走私参数更容易(将
视为请求伪造漏洞),但这并不能使POST变量更安全;这通常是一种错误的安全感。OTOH,不需要在任何时候都允许双重输入,因此如果登录表单应该只使用POST,那么只使用$\u POST是有意义的。(对于非写API,由于方便,混合输入更可取。)
$q_array = Array(
     array(
        "question" => "abc",
        "answer" => "455",
     ),....
)
"op1"=>"10",
op2=>"20"

)
$total=0;
foreach($_REQUEST as $key=>$val)
{

if($q_array[$key]=$val)
{

     echo "Right answer. 2p.";
     $mark = '2';
     $total+=2;
     echo"<br>";

}


}

echo "Total points: $total";