2013-02-17 55 views
0

我需要一些小php脚本的帮助。我想将我的$分数传递给另一个URL。

游客After通过提交HTML表单的POST测试,他取到测试得分计算并显示一个页面:

<?php 
$answer1= $_POST['answer1']; 
$answer2= $_POST['answer2']; 
$answer5= $_POST['answer5']; 
$answer6= $_POST['answer6']; 
$answer7= $_POST['answer7']; 
$answer8= $_POST['answer8']; 
$answer9= $_POST['answer9']; 
$answer10= $_POST['answer10']; 
$answer11= $_POST['answer11']; 
$answer12= $_POST['answer12']; 
$answer13= $_POST['answer13']; 
$answer14= $_POST['answer14']; 
$answer15= $_POST['answer15']; 
$answer16= $_POST['answer16']; 
$answer17= $_POST['answer17']; 
$answer18= $_POST['answer18']; 
$answer19= $_POST['answer19']; 
$answer20= $_POST['answer20']; 
$score = 0; 

if ($answer1 == "A"){$score++;$score++;$score++;$score++;$score++;} 
if ($answer1 == "B"){$score++;$score++;$score++;$score++;} 


if ($answer5 == "A"){$score++;$score++;$score++;$score++;$score++;} 

if ($answer6 == "A"){$score++;} 
if ($answer6 == "B"){$score++;$score++;$score++;$score++;$score++;} 

if ($answer7 == "A"){$score++;} 
if ($answer7 == "B"){$score++;$score++;$score++;} 
if ($answer7 == "C"){$score++;$score++;$score++;$score++;$score++;$score++;} 

if ($answer8 == "A"){$score++;$score++;$score++;$score++;$score++;} 
if ($answer8 == "B"){$score++;} 
if ($answer8 == "C"){$score++;$score++;} 


if ($answer9 == "B"){$score++;$score++;$score++;$score++;} 
if ($answer9 == "C"){$score++;$score++;$score++;$score++;$score++;$score++;$score++;} 
if ($answer9 == "D"){$score++;$score++;$score++;$score++;$score++;$score++;$score++;$score++;$score++;$score++;$score++;$score++;$score++;$score++;} 

if ($answer10 == "A"){$score++;$score++;$score++;} 
if ($answer10 == "B"){$score++;$score++;$score++;$score++;$score++;$score++;} 
if ($answer10 == "C"){$score++;$score++;$score++;$score++;$score++;$score++;$score++;$score++;$score++;$score++;} 

if ($answer11 == "A"){$score++;} 
if ($answer11 == "B"){$score++;$score++;$score++;$score++;$score++;} 
if ($answer11 == "C"){$score++;$score++;$score++;} 


if ($answer12 == "B"){$score++;$score++;$score++;$score++;$score++;} 
if ($answer12 == "C"){$score++;$score++;$score++;} 

if ($answer13 == "A"){$score++;$score++;$score++;$score++;$score++;} 
if ($answer13 == "B"){$score++;} 

if ($answer14 == "A"){$score++;$score++;$score++;} 
if ($answer14 == "B"){$score++;$score++;$score++;$score++;$score++;} 
if ($answer14 == "C"){$score++;} 

if ($answer15 == "A"){$score++;} 
if ($answer15 == "C"){$score++;$score++;$score++;} 
if ($answer15 == "D"){$score++;$score++;$score++;$score++;$score++;} 

if ($answer16 == "B"){$score++;} 
if ($answer16 == "C"){$score++;$score++;} 
if ($answer16 == "D"){$score++;$score++;$score++;$score++;$score++;} 

if ($answer17 == "B"){$score++;} 
if ($answer17 == "C"){$score++;$score++;} 
if ($answer17 == "D"){$score++;$score++;$score++;$score++;$score++;} 

if ($answer18 == "B"){$score++;$score++;$score++;$score++;} 
if ($answer18 == "C"){$score++;$score++;} 
if ($answer18 == "E"){$score++;$score++;$score++;$score++;$score++;} 
if ($answer18 == "F"){$score++;$score++;$score++;} 

if ($answer19 == "B"){$score++;$score++;$score++;$score++;$score++;} 
if ($answer20 == "A"){$score++;$score++;$score++;$score++;$score++;} 

echo "$score"; 

?> 

该网页上,其中回声“$分数”;显示,游客必须点击此表单按钮激活服务:

<form name="form1" method="post" action="test.php"> 

<input name="pass" type="text" id="pass" /> 

<input type="submit" style="font-weight:bold" name="Submit" value="Aktiviraj!" />  </form> 

点击他们被带到另一个.html为页面,那里其实我是想测试回声“$分数”按钮后,再次显示。基本上我希望页面A在页面B传递(发送)echo $分数,而不涉及MySql基础。

在此先感谢。

+0

您可以将评分(ha)存储在[session](http://php.net/manual/en/book.session.php)中。 – vstm 2013-02-17 17:01:15

+2

1.使用会话; 2.你的脚本里有** **一些**代码味道... – moonwave99 2013-02-17 17:02:11

+2

使用'$ score + = 4;'而不是'$ score ++; $ score ++; $ score ++; $ score ++;' – Wurstbro 2013-02-17 17:05:54

回答

0
<input name='answer[0]'/> 
<input name='answer[1]'/> 
<input name='answer[2]'/> 
<input name='answer[3]'/> 
<input name='answer[4]'/> 

<?php 
session_start(); 
$_SESSION['score'] = 0; 
//If you aren't using a DB backend 
$answers = array(
    0 => array("A"=>4,"B"=>1), 
    1 => array("A"=>4,"B"=>1), 
    2 => array("A"=>4,"B"=>2,"C"=>0),//and so on 

); 
foreach ($_POST['answer'] as $key => $value) 
{ 
    $_SESSION['score'] += (int)$answers[$key][$value]; 
} 
?> 
+0

这并不回答如何将计算得分转移到新页面的问题。 – Repox 2013-02-17 17:09:10

+0

是的。如果您将函数添加到任何页面,您可以使用它将分数添加到该页面。显然有更好的方法来编写这段代码,但为了让它按照他想要的方式快速工作,这样做可以做得很好。这个逻辑* NEEDS *没有理由在它自己的文件中。如果是这样,它可能只是一个包含。 – Ethan 2013-02-17 17:11:29

+0

这个答案意味着每次都应该发布和重新计算答案。这不仅是一个可怕的解决方案,也不回答如何将变量从一个请求转移到另一个请求的问题。这里的正确解决方案是会话,数据库后端或类似的。 – Repox 2013-02-17 17:15:34

0

您应该使用sessions在请求之间传输计算出的值。