【发布时间】:2015-04-23 18:40:40
【问题描述】:
对不起,问题有所改变。
我有 hostgator 托管。在 cpanel 我创建了一个 cronjob 但它没有运行。
命令:php /home/username/public_html/dir1/dir2/cron.php。
现在在电子邮件中,我得到了文件中写入的整个代码。
<html>
<head>
<script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
<script type="text/javascript>
var i = 0;
function getdata(){
var dt = new Date();
var user1="h";
var pass= "h";
var location1='2';
var passdata = '';
if(i==0){
month = '' + (dt.getMonth() + 1),
day = '' + (dt.getDate() + 1),
year = dt.getFullYear();
if (month.length < 2) month = '0' + month;
if (day.length < 2) day = '0' + day;
var date1 = year+"-"+month+"-"+day;
passdata = "username="+user1+"&password="+pass+"&location="+location1+"&date="+date1;
}else{
var dd=dt.getDate();
dt.setDate(dd+i);
month = '' + (dt.getMonth() + 1),
day = '' + (dt.getDate()),
year = dt.getFullYear();
if (month.length < 2) month = '0' + month;
if (day.length < 2) day = '0' + day;
var date2 = year+"-"+month+"-"+day;
//alert(date2);
passdata = "username="+user1+"&password="+pass+"&location="+location1+"&date="+date2;
}
$.ajax({
type: "POST",
url: "www.site.com",
data : passdata,
success: function (data) {
var new_data=JSON.stringify(data);
if(i==0){
php_send(new_data,date1,2);
}else{
php_send(new_data,date2,2);
}
}
});
}
function php_send(agl,agl1,agl2)
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
var xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
var url="test_php.php";
xmlhttp.open("POST",url,true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("p="+agl+"&date1="+agl1+"&location="+agl2);
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4 && xmlhttp.status==200)
{
if(xmlhttp.responseText == 1){
i++;
if(i<=30){
getdata();
}
}
}
}
}
function createCORSRequest(method, url)
{
var xhr = new XMLHttpRequest();
if ("withCredentials" in xhr) {
// XHR for Chrome/Firefox/Opera/Safari.
xhr.open(method, url, true);
} else if (typeof XDomainRequest != "undefined") {
// XDomainRequest for IE.
xhr = new XDomainRequest();
xhr.open(method, url);
} else {
// CORS not supported.
xhr = null;
}
return xhr;
}
</script>
</head>
<body onload="getdata();"></body>
</html>
【问题讨论】:
-
当您尝试通过终端运行相同的命令时,输出是什么?这行得通吗?
-
突然 cronjob 开始工作,但在电子邮件中我得到了整个文件代码。
-
您尝试在哪个目录中手动运行文件?可能有一些要求语句可能正在使用一些可能导致执行继续的相对路径。您可以通过将目录更改为 /home 文件夹来尝试相同的操作吗?并检查您是否收到电子邮件。即切换 /home 文件夹并尝试运行该文件。
-
如果我尝试手动运行它,它会完美运行。
-
在命令行上将 PHP 文件作为 cron 作业运行仅处理 PHP 而不是 javascript! javascript 是客户端,因为没有客户端,它不会运行。重写您的脚本,使其没有 html 或 javascript,并且全部基于 php,它会正常工作。当您通过网络浏览器手动运行它时,它目前可以工作,因为那是处理 javascript。
标签: javascript cron hosting