2013-03-24 191 views
1

我是一个PHP程序员,很快就迷失在Wordpress的复杂性和OOO代码中。我想我认为是在网站上运行的联系表单7插件中的一个简单黑客,我没有成功。Wordpress联系表格7破解

我试图联系表7的一个类做一个exec调用:

的wp-content /插件/接触形式-7 /包括/ classes.php(线549):

if ($send) { 
    exec ("/usr/bin/php /var/www/html/record_subscription_change.php -s $subject -r $recipient -b $body"); 
    return @wp_mail($recipient, $subject, $body, $headers, $attachments); 
} 

本质上我试图调用一个外部的PHP脚本并将变量传递给它。我试图在classes.php中创建我自己的函数,并且使联系表单7非常不愉快(当我点击提交按钮时它会旋转)。

+0

确定你正在发送正确的链接到脚本?你确定脚本没有错误吗? – 2013-03-24 21:38:17

+0

你是否试图解决当你尝试向'classes.php'添加函数时遇到的任何问题?如果是这样,我会建议尝试解决这个问题,而不是试图解决这个问题。 – ultranaut 2013-03-24 21:43:48

+0

是的,我做到了。脚本使用print_r打印到stdout并使用error_log写入日志文件。/usr/bin/php /var/www/html/record_subscription_change.php -s subject -r recipient Array ( [s] => subject [r] =>收件人 ) – 2013-03-24 21:53:53

回答

0

问题最终成为所有权/权限。 Apache下的Wordpress没有执行脚本或写入日志文件的权限。一旦这些权限得到纠正,它工作得很好。

0

你不必砍联系表格7可言,只是使用CF7钩...

http://hookr.io/plugins/contact-form-7/#index=a

的functions.php

add_action('wpcf7_mail_sent', 'action_wpcf7_mail_sent', 10, 1); 
function action_wpcf7_mail_sent($contact_form) { 
    $submission = WPCF7_Submission::get_instance(); 
    if($submission) { 
     $mail_temp = $contact_form->prop('mail'); 
     $mail = wpcf7_mail_replace_tags($mail_temp); 
     $subject = $mail['subject']; 
     $recipient = $mail['recipient']; 
     $body = $mail['body']; 
     exec ("/usr/bin/php /var/www/html/record_subscription_change.php -s $subject -r $recipient -b $body"); 
    } 
    return $contact_form; 
}