小编Joh*_*ohn的帖子

错误记录,顺利进行

我一直在阅读特别是'错误记录'我已经提出了函数'error_log',它似乎是一个用来处理错误记录的好工具.但最流畅和最好的使用方法是怎样的呢?

如果我有

try {
     //try a database connection...

} catch (PDOException $e) {
    error_log($e->getMessage(), 3, "/var/tmp/my-errors.log");

}
Run Code Online (Sandbox Code Playgroud)

这将记录my-errors.log文件中的错误.但是,如果我有时需要更改文件所在位置,新文件夹或其他内容.如果我有大量文件,我需要更改它们.

现在我开始考虑使用变量来设置错误日志的路径.当然可以工作,但是如果我想在函数或类方法中使用error_log呢?然后我需要将变量设置为全局,但这被认为是不好的做法!但是,如果我不应该在课堂上深入使用这个功能,那么这也不会被认为是不好的做法吗?这里有什么好的解决方案?

<?php

function legit() {
    try {
        if (1 == 1) {
            throw new Exception('There was an error here');
        }
    } catch (Exception $e) {
        throw new Exception('throw the error to the try-catch outside the function...');
    }

}

try {
    legit();
} catch (Exception $e) {
    echo 'error here' . $e->getMessage();

    //log it
}
Run Code Online (Sandbox Code Playgroud)

这是我上面讨论的一个例子(没有在类/函数中深入记录......这是一个好方法吗?)

进一步:

我不太确定我应该如何使用一般的例外.假设我想在方法中使用SQL对数据库执行INSERT,我是否会使用try/catch然后在失败时重新抛出异常?这被认为是好习惯吗?请举例.

php pdo

37
推荐指数
2
解决办法
2万
查看次数

每个请求或不是新的CSRF令牌?

所以我正在四处阅读并且对于拥有CSRF令牌感到困惑,我应该为每个请求生成一个新令牌,还是每小时或者其他什么?

$data['token'] = md5(uniqid(rand(), true));
$_SESSION['token'] = $data['token'];
Run Code Online (Sandbox Code Playgroud)

但是,假设每小时生成一个令牌更好,那么我需要两个会话:令牌,到期,

我将如何处理表格?只需将echo $ _SESSION ['token']放在隐藏的值表单上,然后在提交时进行比较?

php csrf

34
推荐指数
2
解决办法
2万
查看次数

.htaccess重写GET变量

我有一个index.php来处理所有的路由index.php?page = controller(简化)只是为了将逻辑与视图分开.

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w\d~%.:_\-]+)$ index.php?page=$1 [NC]
Run Code Online (Sandbox Code Playgroud)

基本上: http://localhost/index.php?page = controller To

HTTP://本地主机/控制器/

任何人都可以帮我添加重写

http:// localhost/controller/param/value/param/value(和soforth)

那将是:

HTTP://本地主机/控制器/ PARAM =值&PARAM =值

我不能让它与Rewriterule一起工作.

控制器可能如下所示:

    <?php
if (isset($_GET['action'])) {
 if ($_GET['action'] == 'delete') {
do_Delete_stuff_here();
}
}
?>
Run Code Online (Sandbox Code Playgroud)

并且:

    <?php
if (isset($_GET['action']) && isset($_GET['x'])) {
 if ($_GET['action'] == 'delete') {
do_Delete_stuff_here();
}
}
?>
Run Code Online (Sandbox Code Playgroud)

php .htaccess mod-rewrite

27
推荐指数
6
解决办法
8万
查看次数

Dompdf并设置不同的字体系列

生成PDF时,它完全忽略了font-family应用于CSS的属性.而不是说Verdana,它使用Times New Roman.所以我的CSS看起来像:

.sub-header {
    font-size: 1.4rem;
    text-transform: uppercase;
    font-family: NeutraText-Book !important;
    padding-bottom: 1.5rem;
}
Run Code Online (Sandbox Code Playgroud)

PDF生成如下:

$pdf = PDF::loadHTML($view);
return $pdf->stream();
Run Code Online (Sandbox Code Playgroud)

如何设置我想要的字体?

php dompdf

22
推荐指数
5
解决办法
6万
查看次数

根据用户输入创建一个类

要求$输入是不安全的.'.PHP'.然后开始上课.如何使其安全,无需使用可以被提及的类的白名单.

例1.(错误代码).

<?php

$input = $_GET['controller'];

require $input . '.php';

new $input;

?>
Run Code Online (Sandbox Code Playgroud)

php

19
推荐指数
1
解决办法
1684
查看次数

oAuth 2.0数据库结构

我希望在我当前的应用程序中实现oAuth.什么是良好的数据库结构来存储所需的信息,例如令牌等时代.有标准吗?

database oauth

8
推荐指数
1
解决办法
1万
查看次数

in_array没有任何意义

$arr = array(
    'test' => array(
        'soap' => true,
    ),
);

$input = 'hey';
if (in_array($input, $arr['test'])) {
    echo $input . ' is apparently in the array?'; 
}
Run Code Online (Sandbox Code Playgroud)

结果:嘿显然在阵列中?

这对我没有任何意义,请解释原因.我该如何解决这个问题?

php

7
推荐指数
1
解决办法
295
查看次数

读取音频文件信息php

如何从声音文件中读取比特率,长度等信息.不同的文件格式,mp3,wmw等.

我想那里有一些图书馆/班级,也许我可以尝试一下.

有什么建议?

php audio class

6
推荐指数
1
解决办法
2997
查看次数

PDO编写的声明,正确使用?

我只需要确保我已正确获得PDO准备语句,SQL注入是否可以保护以下代码?

$data['username'] = $username;
$data['password'] = $password;
$data['salt'] = $this->generate_salt();
$data['email'] = $email;

$sth = $this->db->prepare("INSERT INTO `user` (username, password, salt, email, created) VALUES (:username, :password, :salt, :email, NOW())");  
$sth->execute($data);
Run Code Online (Sandbox Code Playgroud)

php pdo

6
推荐指数
1
解决办法
1537
查看次数

如何在Modelio,UML上添加参数

在此输入图像描述

我无法真正找到如何在操作上添加参数,我该怎么办呢?上图是我使用的程序,Modelio ......

如何在Operation上添加参数?

我如何添加返回值?

uml modelio

6
推荐指数
1
解决办法
5559
查看次数

标签 统计

php ×8

pdo ×2

.htaccess ×1

audio ×1

class ×1

csrf ×1

database ×1

dompdf ×1

mod-rewrite ×1

modelio ×1

oauth ×1

uml ×1