关于差异参数$ _GET ['id']和$ id

时间:2019-02-02 13:17:55

标签: php

所以我正在编写有关删除帖子的代码,所以我使用此代码

FirefoxOptions options = new FirefoxOptions();
FirefoxProfile profile = new FirefoxProfile();
profile.SetPreference("browser.download.folderList", 2);
profile.SetPreference("browser.download.dir", downloadPath);
profile.SetPreference("browser.download.downloadDir", downloadPath);
profile.SetPreference("browser.download.manager.alertOnEXEOpen", false);
profile.SetPreference("browser.helperApps.neverAsk.saveToDisk", 
                      "text/csv;application/csv;text/x-csv;text/plain;" +
                      "application/vnd.ms-excel;" +
                      "application/xls;" +
                      "application/msexcel;" +
                      "application/x-xls;" + 
                      "application/json;" +
                      "application/octet-stream");
options.Profile = profile;
string path = Directory.GetCurrentDirectory();
webDriver = new FirefoxDriver(options);

这是删除功能

require_once 'core/init.php';

  if (isset($_GET['id'])) {
    if (hapus_data($_GET['id'])) {
      header('Location: index.php');
    }else {
      echo "gagal menghapus data";
    }
  }

所以我不明白为什么这段代码可以工作,但是参数却不一样,就像我看到的那样,我把hapus_data($ _ GET ['id']然后是hapus_data($ id)用作函数的参数

1 个答案:

答案 0 :(得分:0)

在参数集,和受让人,在该函数的变量的名称。

由于$_GET['id']是一个超全球这将是相同

function hapus_data() { 
     $id = $_GET['id'] 

但随后您以后便无法执行

hapus_data(any_non_$_GET[id]_variable)

这样做时,在函数定义是较好的做法。

您应该参数化您的查询。这是SQL可注入的。像

function hapus_data($id){
    $query = "DELETE FROM blog WHERE id = ?";
    return run($query, array($id));
    // and then update `run` to bind the second parameter
}