php传递并获取参数

时间:2014-04-02 07:20:52

标签: php parameter-passing

<?php $daerah_ejen1 = "$_GET[daerah_ejen]";
$kumpulan_ejen1 ="$_GET[kumpulan_ejen]";

echo $daerah_ejen1;
echo $kumpulan_ejen1;
echo $kumpulan_ejen;

$sql= "SELECT * FROM data_ejen WHERE daerah_ejen= '$daerah_ejen1' AND kumpulan_ejen='Ketua Kampung' ORDER BY nama_ejen";
$result = mysql_query($sql) or @error_die("Query failed : $sql " . mysql_error());
?>

我的网址

laporan_kk_detail.php?daerah_ejen=HULU+LANGAT&kumpulan_ejen=Ketua Kampung
输出daerah_ejen变量的

已显示, 但是kumpulan_ejen / kumpulan_ejen1不显示。

我不知道问题在哪里

5 个答案:

答案 0 :(得分:3)

访问$ _GET变量的引号无效。试试这个

<?php 
  $daerah_ejen1 = $_GET["daerah_ejen"];
  $kumpulan_ejen1 =$_GET["kumpulan_ejen"];

您应该阅读有关安全性的内容,因为您可以将恶意代码传递给您的脚本!

编辑://您可以查看此帖子https://stackoverflow.com/questions/19539692/sanitizing-user-input-php

答案 1 :(得分:3)

您正在使用双引号转换字符串中的get值,因此请删除并尝试

$daerah_ejen1 = $_GET['daerah_ejen'];
$kumpulan_ejen1 =$_GET['kumpulan_ejen'];

也使用mysql_real_escape_string()来阻止sql注入。

答案 2 :(得分:0)

如果您需要将$_GET['name']放在双引号中,请将其包含在{}括号中。

e.g。

$kumpulan_ejen1 ="{$_GET['kumpulan_ejen']}";

此外,正如dbh指出的那样,您只有$kumpulan_ejen1,而不是kumpulan_ejen

答案 3 :(得分:0)

  1. 引号围绕参数名称。这是因为$_GET[]是一个关联数组,其值使用字符串键

    引用

    $daerah_ejen1 = $_GET['daerah_ejen'];

    $kumpulan_ejen1 =$_GET['kumpulan_ejen'];

  2. 在查询中使用它们之前,请始终清理参数值,以防止SQL注入。

    $daerah_ejen1 = mysqli::real_escape_string($daerah_ejen1)

答案 4 :(得分:0)

您的代码遇到2个问题:

第一是:

$daerah_ejen1 = "$_GET[daerah_ejen]";
$kumpulan_ejen1 ="$_GET[kumpulan_ejen]";

替换它:

 $daerah_ejen1 = $_REQUEST['daerah_ejen'];
$kumpulan_ejen1 =$_REQUEST['kumpulan_ejen'];

第二是:

$sql= "SELECT * FROM data_ejen WHERE daerah_ejen= '$daerah_ejen1' AND kumpulan_ejen='Ketua Kampung' ORDER BY nama_ejen";

替换它:

$sql= "SELECT * FROM data_ejen WHERE daerah_ejen= '".$daerah_ejen1. "' AND kumpulan_ejen='Ketua Kampung' ORDER BY nama_ejen";