Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在php中保护数据库配置_Php_Mysql - Fatal编程技术网

如何在php中保护数据库配置

如何在php中保护数据库配置,php,mysql,Php,Mysql,我有一个PHPAPI端点,如下所示 我需要做一些改变,比如: 需要在单独的文件中包含所有配置 使用服务器令牌验证API请求,以确保只接受真正的请求 在单独的文件中捕获所有错误日志,而不是显示在浏览器中 这是我的代码: <?php error_reporting(E_ALL); ini_set('display_errors', 1); $data = json_decode(file_get_contents('php://input'), true); if(!empty($data)

我有一个PHPAPI端点,如下所示

我需要做一些改变,比如:

  • 需要在单独的文件中包含所有配置

  • 使用服务器令牌验证API请求,以确保只接受真正的请求

  • 在单独的文件中捕获所有错误日志,而不是显示在浏览器中

  • 这是我的代码:

    <?php
    error_reporting(E_ALL);
    ini_set('display_errors', 1);
    $data = json_decode(file_get_contents('php://input'), true);
    
    if(!empty($data)):
    header('Content-Type:text/plain');
    
    
     /*MYSQL CREDENTIALS*/
    $hostname = 'localhost';                 
    $username = 'root';
    $password = '';
    $dbname = 'mydb';
    $dbh = new PDO("mysql:host=$hostname;dbname=$dbname", $username, $password);
    
    $arraykey=array_keys($data); 
    $array=$data[$arraykey[0]]; 
    
    try 
    {
    
        foreach($data as $array)
        {
    
        //MYSQL execute
        $count = $dbh->exec("INSERT INTO gmr(version,visitorId,dwellTime,poiId,srId,zoneId,poiProximityConfidence,zoneProximityConfidence,poiPresenceConfidence,zonePresenceConfidence,normalizedTime) VALUES ('" . implode("', '", $array) . "')" ) or die(print_r($dbh->errorInfo(), true)); 
    
        echo count($data);
        echo 'Data Successfully inserted!!<br />';
    }
    //echo $data;
    }
    catch(PDOException $e)
    {
        echo $e->getMessage();
    }
    
    endif;
    ?>
    


    其他两点需要建议这里是另外两点的建议:

  • 使用服务器令牌验证API请求,以确保仅接受 真正的要求
  • 为此,您可以使用
    CSRF令牌
    检查有效请求。你可以找到这个的重要用途

  • 列表项将所有错误日志捕获到单独的文件中,而不是显示在浏览器中
  • 默认情况下,PHP在服务器端记录所有内容。在Ubuntu中你可以找到
    /var/log/apache/error.log

    只需检查apache配置是否正确设置了错误日志

    请阅读此处了解更多信息:

    如果您不想在浏览器中显示错误,则可以设置
    错误报告(0)

    希望这就是你需要的

    对于3)您可以使用PHPs。
    <?php
    define (DB_USER, "root");
    define (DB_PASSWORD, "");
    define (DB_DATABASE, "mydb");
    define (DB_HOST, "localhost");
    ?>
    
    require ("configuration.php");
    
    $config = parse_ini_file('../config.ini');