Salam wordpressdə bir formum var, form verilənlərinin başqa php faylında bazaya yazmaq istəyirəm. Həmin faylı tema qovluğunun içində saxlamalıyam? Sizcə bu cür yanaşma düzgündür? Təhlüksizlik cəhətdən nəsə problem falan olmazki?
Salam wordpressdə bir formum var, form verilənlərinin başqa php faylında bazaya yazmaq istəyirəm. Həmin faylı tema qovluğunun içində saxlamalıyam? Sizcə bu cür yanaşma düzgündür? Təhlüksizlik cəhətdən nəsə problem falan olmazki?
Verilmiş cavablar və yazılan şərhlər (4 cavab var)
1
WordPress CMF-ində bunun üçün theme template məntiqi var. Tutaq ki anket.php yaradırsız theme-in içində, içində də həm formun html-ini, həm də prosessinq skriptini yazırsız, faylda ən üstdə
yazıb save edirsiz. Sonra istənilən səhifə yaradırsız admin paneldə, save edərkən sağ qutucuqda template bölməsindən default əvəzinə Anketim seçirsiz. Vəssalam.
0
Bəli məndə bu formada etmişəm, sadəcə olaraq form prosessinqi başqa yerdə etməyimin məqsədi təkrar həmin səhifəyə(formun olduğu) yönləndirmək istəməyimdir.
Deməli formu doldurdub submit etdikdən sonra, səhifəni yenilədikdə yenə post edir(deyəsən cavablar.net-də də eyni problem var, şərh yazdıqdan sonra, səhifəni yenilədikdə yenə şərh yazır…). qarşısın almaq üçün post/redirect/get patterni işlətmək istəyirəm.
prosessinq scripti formla eyni yerdə olduqda təkrar yönləndirəndə header already sent xətası alıram buna görə prosessinqi basqa yerdə etməyi qərara aldım.
1
Cavablar.net-də o problem deyil, çünki suallar moderasiyaya düşür, əgər o bir gün bizə problem yaşadarsa 30-40 saniyəlik kod ilə həlli var 🙂
Siz postu insert etdikdən bir sözlə processing əməliyyatını bitirdikdən sonra wp_redirect əmri ilə cari səhifəyə redirect etsəz iş tamamdır. Dediyiniz qədərilə hər şeyi düz etmisiz, tək xətanız bu kodu ən üstdə yox, yəqin ki forma yaxın bir yerlərdə yazmağınızdır. Oysa processing kod ən yuxarıda, get_header()-dən belə yuxarıda olmalıdır və mütləqdir.
template name: Anket – bu sətirdən dərhal aşağıda if isset(post(anket deyiseni) {form prosessing…} blokunuzu daxil edin.
həm burda həm də başqa php kodlamada həmişə nəzərə alın, əgər header təyin edirsizsə(location,content-type və.s. fərq etmir), o mütləq bütün html kodlardan yuxarıda olmalıdır. Hətta bir dənə boşluq belə onun işləməməsinə gətirib çıxaracaq. php teqi içində olan boşluqdan getmir ha söhbət, html ərazidən gedir. (php teqindən kənar)
0
çox sağ olun, Elvin bəy, prosessinq hissəsini ən yuxarıya daşıdım problem həll oldu.
Sual verin
Cavab verin