【问题标题】:php script and die reportphp脚本和死亡报告
【发布时间】:2018-05-15 08:03:18
【问题描述】:

我继承了一些脚本,它们按预期工作,但它们都发送某些错误报告。我在 PHP 方面并不强,所以我在这里寻找一些智慧。

这里是脚本示例。

它监听用户活动,并通过 UserID 在 DB 中设置时间戳,告诉我们用户处于活动状态。

<?php
header('Access-Control-Allow-Origin: *');

$db = "xxx";//Your database name
$dbu = "xxx";//Your database username
$dbp = "xxx";//Your database users' password
$host = "xxx";//MySQL server - usually localhost

$link = mysqli_connect($host,$dbu,$dbp,$db);

if (!$link) {
    die(file_put_contents('error.dat', "activity connect db link fail: \n". mysqli_connect_error()));
}
//mysqli_set_charset($link, "utf8")
if (!mysqli_set_charset($link, "utf8")) {
    //printf("Error loading character set utf8: %s\n", mysqli_error($link));
    exit();
//} else {
    //printf("Current character set: %s\n", mysqli_character_set_name($link));
}

if(isset($_POST['uid'])){

     //Lightly sanitize the GET's to prevent SQL injections and possible XSS attacks
     $uid = strip_tags(mysqli_real_escape_string($link, $_POST['uid']));
     $sql = mysqli_query($link, "UPDATE ACTIVITY SET time=NOW() WHERE uid='$uid' ");

     if($sql){
    die(file_put_contents('error activity.dat', "activity $sql insert failed: \n". mysqli_connect_error()));
    }

//}else{
     //echo 'some error...';
}

mysqli_close($link);//Close off the MySQL connection to save resources.
?>

检查过... 脚本生成正确的数据库条目,但它也会创建错误 activity.dat 带有消息: 活动 1 插入失败:

现在的问题是...这是良性的吗?我只是评论说它不会创建更多错误文件或脚本需要修复吗?

谢谢!

【问题讨论】:

  • 您对 SQL 注入持开放态度 - 您应该研究如何解决 :)
  • if($sql) 似乎是荒谬的 - 这基本上表明如果查询 成功 然后将错误写入日志。那应该是if(!$sql)
  • mysqli_query 返回 true 或 false 进行更新,当查询成功时, $sql = true , true = 1,你的 if($sql) 是 if($sql == 1//真的)
  • 谢谢 CD001 和 FatFreddy,现在我意识到了问题。

标签: php mysql database mysqli


【解决方案1】:

它根据您的代码工作:

if($sql){
    die(file_put_contents('error activity.dat', "activity $sql insert failed: \n". mysqli_connect_error()));
}

这意味着如果 $sql 为真,则将错误消息放入 activity.dat

变成这样

if(!$sql){
    die(file_put_contents('error activity.dat', "activity $sql insert failed: \n". mysqli_connect_error()));
}

这意味着如果 $sql 不正确,则将错误消息放入 activity.dat

【讨论】:

  • 谢谢! @Kosar Latif
猜你喜欢
  • 2013-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-13
  • 1970-01-01
  • 2018-11-20
  • 1970-01-01
相关资源
最近更新 更多