PHP 执行 shell_exec 命令但不执行任何操作

问题描述 投票:0回答:1

我正在使用此脚本在 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
,
job_type
) VALUES ( '26' ,'1' ,'JavaScript' )

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 已执行

有人知道出了什么问题吗?

php mysql bash shell curl
1个回答
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 
© www.soinside.com 2019 - 2024. All rights reserved.