我使用此脚本在post.sh文件中使用curl发布一些日期
#!/bin/sh
var1=`base64 javascript_100.file`
# post it 3 times
for i in `seq 1 3`; do
/usr/bin/curl -i --verbose -d "jobTexterea=$var1" http://my_server_address/target_page.php
done
使用我的Shell执行post.sh文件时没有任何问题,但是当我使用shell_exec('sh /path_to_post_file/post.sh')
在我的php脚本中调用它时,我从var_dump(shell_exec('sh /path_to_post_file/post.sh'));
收到此错误}。
错误:()HTTP / 1.1 302发现日期:2016年9月24日星期六15:14:38 GMT服务器:Apache / 2.4.23(Fedora)OpenSSL / 1.0.2h-fips PHP / 5.6.25 mod_perl / 2.0 .9 Perl / v5.22.2 X-Powered-By:PHP / 5.6.25位置:http://my_server_ ddress / Content-Length:401 Content-Type:text / html; charset = UTF-8发生了MySQL错误。 您的查询:INSERT INTO jobsNum_pro_batch(
job_batch_id
,jobs_in_batch
,job_type
)VALUES(' 26',' 1',' JavaScript& #39;)
post.sh 文件中的代码将信息发布到 target_page.php ,将所有内容放入数据库中的不同表中。问题是,从PHP页面运行shell_exec('sh /path_to_post_file/post.sh')
时,没有信息被上传到数据库中。但是,命令本身运行没有错误,我用
<?php
if (shell_exec('sh /path_to_post_file/post.sh')){
echo "<b> shell_exec was executed </b><br>";
var_dump(shell_exec('sh /path_to_post_file/post.sh'));
} else {
echo "<b> shell_exec was not executed </b><br>";
}
?>
我收到消息 shell_exec已执行
有谁知道出了什么问题?
答案 0 :(得分:0)
这就是诀窍!感谢@ Jean-FrançoisFabre,对他的代码进行了一些小改动,问题就消失了!
#!/bin/sh
progdir=$(dirname $0)
var1=`base64 $progdir/javascript_100.file`
# post it 3 times
for i in `seq 1 3`; do
/usr/bin/curl -i --verbose -d "jobTexterea=$var1" http://my_server_address/target_page.php
done