2013-02-17 97 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在請求之間傳輸計算出的值。

相關問題