我正在使用此脚本在 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/ 内容长度:401 内容类型:text/html; charset=UTF-8 发生 MySQL 错误。 您的查询: INSERT INTO jobsNum_pro_batch (
,job_batch_id
,jobs_in_batch
) VALUES ( '26' ,'1' ,'JavaScript' )job_type
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 已执行
有人知道出了什么问题吗?
这成功了!感谢@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