2016-08-16 141 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"