@@ -226,16 +226,20 @@ function onSubmit() {
226226
227227 $ domain_name = rtrim ($ soa ['origin ' ], '. ' );
228228 // DMARC requieres at least one active dkim-record...
229- $ sql = "SELECT * FROM dns_rr WHERE name LIKE ? AND type='TXT' AND data like 'v=DKIM1;%' AND active='Y' " ;
230- $ temp = $ app ->db ->queryAllRecords ($ sql , '%._domainkey. ' .$ domain_name .'. ' );
229+ $ sql = "SELECT * FROM dns_rr
230+ LEFT JOIN dns_soa ON (dns_rr.zone=dns_soa.id)
231+ WHERE dns_soa.origin = ? AND dns_rr.name LIKE ? AND type='TXT' AND data like 'v=DKIM1;%' AND dns_rr.active='Y' " ;
232+ $ temp = $ app ->db ->queryAllRecords ($ sql , $ soa ['origin ' ], '%._domainkey% ' );
231233 if (empty ($ temp )) {
232234 if (isset ($ app ->tform ->errorMessage )) $ app ->tform ->errorMessage = '<br/> ' . $ app ->tform ->errorMessage ;
233235 $ app ->tform ->errorMessage .= $ app ->tform ->wordbook ['dmarc_no_dkim_txt ' ].$ email ;
234236 }
235237
236238 // ... and an active spf-record (this breaks the current draft but DMARC is useless if you use DKIM or SPF
237- $ sql = "SELECT * FROM dns_rr WHERE name LIKE ? AND type='TXT' AND (data LIKE 'v=spf1%' AND active = 'y') " ;
238- $ temp = $ app ->db ->queryAllRecords ($ sql , $ domain_name .'. ' );
239+ $ sql = "SELECT * FROM dns_rr
240+ LEFT JOIN dns_soa ON (dns_rr.zone=dns_soa.id)
241+ WHERE dns_soa.origin = ? AND (dns_rr.name LIKE ? OR dns_rr.name = '') AND type='TXT' AND data like 'v=spf1%' AND dns_rr.active='Y' " ;
242+ $ temp = $ app ->db ->queryAllRecords ($ sql , $ soa ['origin ' ], $ soa ['origin ' ]);
239243 // abort if more than 1 active spf-records (backward-compatibility)
240244 if (is_array ($ temp [1 ])) {
241245 if (isset ($ app ->tform ->errorMessage )) $ app ->tform ->errorMessage = '<br/> ' . $ app ->tform ->errorMessage ;
0 commit comments