2013-03-24 137 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; 
}