<?php
class Baddriver{
// Constructor - open DB connection
function __construct() {
$this->db = new mysqli("localhost", "root", "password", "dbname");
$this->db->autocommit(FALSE);
}
// Destructor - close DB connection
function __destruct() {
$this->db->close();
}
// Main method to redeem a code
function bad() {
if(isset($_POST["plakano"]) || isset($_POST["secim"]) || isset($_POST["sehir"])){
$sehir=$_POST["sehir"];
$plakano=$_POST["plakano"];
$aciklama=$_POST["aciklama"];
$secim=$_POST["secim"];
$plaka = str_replace(",","",$plakano);
$stmt = $this->db->prepare("INSERT INTO veri (plakano,aciklama,tarih,sehir,secim) VALUES (?, ?, CURDATE(),?,?)");
$stmt->bind_param("ssss", $plakano,$aciklama,$sehir,$secim);
$stmt->execute();
$stmt->close();
$this->db->commit();
}
}
}
$api = new Baddriver;
$api->bad();
?>
这是我的php文件,我搜索了2天,现在我理解2件事情首先是我需要放
#!/usr/bin/php -q
在顶部(老实说不知道为什么)我需要连接到我的网络服务器打开shell并编写cron代码,如
PATH=/usr/local/sbin:/usr/local/bin:/home/user1/bin
MAILTO=user1@nowhere.org,user2@somewhere.org
0 2 1-10 * * du -h --max-depth=1 /
是不是cron会工作还是我缺少的东西?谢谢你的时间和时间。
答案 0 :(得分:2)
#!/usr/bin/php -q
告诉你的服务器这个脚本应该用php运行。
您添加到crontab的cron代码将按指定的时间间隔运行您的脚本。
但这不是全部。您的脚本使用$ _POST,但如果您将其作为cron作业运行,则无法发布到PHP脚本。所以这些价值将无法使用。
答案 1 :(得分:2)
Cron是一种按计划运行命令行工具的工具。因此,只需要以不需要Web服务器的任何功能的方式编写php脚本。即:setheaders,$ _GET,$ _POST,$ _COOKIE
#!/usr/bin/php -q
如果您使脚本可执行并直接从命令行运行它,则会提示如何运行它。在这种情况下,使用带有选项“-q”'
-q告诉脚本运行'quiet',并避免打印一些http标头。
另外,有关crontab条目格式的更多详细信息,请参阅man 5 crontab
。
您可以跳过设置脚本可执行文件和#!如果您在crontab条目的末尾使用/usr/bin/php -q badDriver.php
,则行。
53 23 * * 7 www-data /usr/bin/php -q /path/to/script/badDriver.php
每周日服务器时间晚上11:53运行脚本,作为用户'www-data'。