2016-08-16 140 views
0

請注意,這是一個初學者問題 - 我正在爲一所非常簡單的學校汽車預訂系統,用戶從第1頁選擇汽車組(a,b,c,d),他然後被重定向到他完成自己的預訂返回錯誤值的PHP函數

我的問題

我試着去用一個簡單的函數來檢索從第1頁的值,並把它添加到圖片src其中第2頁。 值得到正確傳遞然而在我的函數中值總是a無論做出了哪個選擇。

PAGE 1

`<select class="form-control col-xs-4" name="carType" id="sel1"> 
    <option value="a">Group A (Hyundai I10)</option> 
    <option value="b">Group B (VW POLO)</option> 
    <option value="c">Group C (Corolla)</option> 
    <option value="d">Group D (TRUCK)</option> 
</select>` 

enter image description here

PAGE 2

當我做echo $_POST['carType']我得到正確的值,所以這個問題是我的功能,因爲我總是得到返回值a

enter image description here

FUNCTION

function getCarGroup($group){ 
    //extension must end in PNG 
    if($group == 'a'){ 
     $src = 'a'; 
    } 
    else if($group == 'b'){ 
     $src = 'b'; 
    } 
    else if($group == 'c'){ 
     $src = 'c'; 
    } 
    else if($group =='d'){ 
     $src = 'd';  
    } 
    return $src; 
} 

FUNCTION CALL

<img src="img/cars/<?php echo getCarGroup($carType) ?>.png" class="img-responsive" />

結果

應該顯示ba

enter image description here

任何意見/幫助非常感謝

UPDATE:

function getCarGroup($group){ 
    //extension must end in PNG 
     if($group = 'a'){ 
      $src = 'a'; 
     } 
     else if($group = 'b'){ 
      $src = 'b'; 
     } 
     else if($group = 'c'){ 
      $src = 'c'; 
     } 
     else if($group ='d'){ 
      $src = 'd';  
     } 
     return $src; 
    } 
if($_SERVER['REQUEST_METHOD']=="POST"){  
echo $branch = $_POST['branch']; 
echo'<br />'; 
echo $pickup = $_POST['pickupDate']; 
echo'<br />'; 
echo $return = $_POST['returnDate']; 
echo'<br />'; 
echo $carType = $_POST['carType']; 
echo'<br />'; 
echo $name = $_POST['uName']; 
var_dump(getCarGroup($group)); 
    var_dump($carType); 
?> 
<div class="row"> 
    <div class="col-md-4"> 
    <img src="img/cars/<?php echo getCarGroup($carType) ?>.png" class="img-responsive" /> 
+2

我們可以看到你分配一個值'$ carType'? –

+0

確切的輸出是什麼:'var_dump($ group);'在你的函數中,在頂部? – Rizier123

+0

這是你的函數的簡化版本,否則@BhavikHirani的回答是正確的 – Steve

回答

3

,但你可以使用直接$_POST['carType']圖像名稱

<img src="img/cars/<?php echo $_POST['carType'] ?>.png" class="img-responsive" /> 
+1

就像一個重要的提示一樣,你不應該像這樣回顯用戶提供的數據。它會向您顯示一種稱爲[XSS攻擊]的攻擊類型(http://stackoverflow.com/questions/1996122/how-to-prevent-xss-with-html-php)。具有諷刺意味的是,他試圖這樣做的方式更安全,因爲它使用了白名單 – Machavity

2

你可能從未設置的$carType = $_POST['carType']值。要麼是你建立圖像src,或

前更換:

src="img/cars/<?php echo getCarGroup($carType) ?>.png" 

隨着

src="img/cars/<?php echo getCarGroup($_POST['carType']) ?>.png"