soheilyou 3 ارسال شده در مهر 93 گزارش بازنشر ارسال شده در مهر 93 دوستان میخوام تو افزونه ای که در حال نوشتننش هستم کاربر یه فرم بهش نشون داده بشه و کابر فقط متن ساده بتونه توش ارسال کنه و اطلاعات وارد شده ازش در دیتابیس ذخیره بشه ! حالا برای اینکار تو فایل اصلیه افزونه ام یه تابع درست کردم به این صورت : function soheil_questions_add_html() { global $wpdb; $tbl = $wpdb->prefix . "soheil_admin_question"; $wpdb->show_errors(); // start html ?> <form action='' method=post > <table style="font-size:10px;"> <tr> <td> نام : </td> <td> <input name="name" placeholder="نام" dir=rtl oninvalid="setCustomValidity('سن خود را به صورت صحیح وارد کنید')" oninput="setCustomValidity('')" /> </td> </tr> <tr> <td>نام خانوادگی : </td> <td><input size=30 placeholder="نام خانوادگی" type=text name=lastname dir=rtl /></td> </tr> <tr> <td> ایمیل:</td> <td><input size=30 type=text placeholder="Your Email" name=user_email dir=ltr typ"email" /> </td> </tr> <tr> <td>عنوان سوال : </td> <td><input size=30 type=text name=title dir=rtl /> </td> </tr> <input type="hidden" name=asked_date value="asked_time"> <input type="hidden" name=answer_date value="answer_time"> </table> انتشار عمومی <input type="checkbox" name="public" value="1" > <br> ( وضعیت انتشار : سوال شما میتواند خصوصی باشد و یا اینکه بعد از پاسخگویی در بخش سوالات انتشار یابد )<br> متن سوال : <textarea name=message dir=rtl style="width:80%; height:200px; font-size:10px" ></textarea><br> <input type="submit" class="button" value="افزودن لینک" /> </form> <?php } ?>و این همین تابع رو یه shortcode واسش درست کردم و مستقیما شرت کد رو تو قالب نمایش دادم و بنابراین این فرم تو قالب نمایش داده میشه ! و بعد اومدم تو همین صفحه اطلاعات ارسال این فرم رو تو دیتابیس ذخیر کردم با این کدا : global $wpdb; $tbl = $wpdb->prefix . "soheil_admin_question"; $wpdb->show_errors(); // start html ?> <!-- افزودن لینک --> <div class=warp> <h3>افزودن لینک</h3> <?php // افزودن لینک به دیتابیس if( ! empty($_POST['title']) and ! empty($_POST['message'])) { $title = htmlspecialchars(strip_tags(trim($_POST['title'])), ENT_QUOTES); $message = htmlspecialchars(strip_tags(trim($_POST['message'])), ENT_QUOTES); $name = htmlspecialchars(strip_tags(trim($_POST['name'])), ENT_QUOTES); $lastname = htmlspecialchars(strip_tags(trim($_POST['lastname'])), ENT_QUOTES); $user_email = htmlspecialchars(strip_tags(trim($_POST['user_email'])), ENT_QUOTES); $asked_date = htmlspecialchars(strip_tags(trim($_POST['asked_date'])), ENT_QUOTES); $answer_date = htmlspecialchars(strip_tags(trim($_POST['answer_date'])), ENT_QUOTES); $status = htmlspecialchars(strip_tags(trim($_POST['status'])), ENT_QUOTES); $public = htmlspecialchars(strip_tags(trim($_POST['public'])), ENT_QUOTES); $do = $wpdb->query("INSERT INTO `$tbl` (title,message,name,lastname,user_email,asked_date,answer_date,status,public) VALUES ('{$title}','{$message}','{$name}','{$lastname}','{$user_email}','{$asked_date}','{$answer_dat}','{$status}','{$public}')"); if($do>0) { echo "<div id=message class='updated fade' ><p>لینک اضافه شد .</p></div>"; global $wpdb; $tbl = $wpdb->prefix."soheil_admin_question_admin_pro" ; $wpdb->show_errors(); foreach($result as $row) : $admin_email = $row->admin_email ; if(! empty($admin_email) ) { $subject = "سوال جدید "; $e_message = "نام سوال کننده :". $name." ". $lastname." <br> ". "عنوان سوال :" . $title ."<br> متن سوال : <br> " . $message ; echo $e_message ; $headers = 'From: My Name <myname@example.com>' . "\r\n"; wp_mail($admin_email, $subject, $e_message, $headers); } endforeach; } else echo "<div id=message class='updated fade' style='background:pink' ><p>متاسفانه خطایی پیش آمد</p></div>";حالا آیا این htmlspecialchars(strip_tags(trim($_POST['public'])), ENT_QUOTES);برای فیلتر کردن وردی های مشکل دار کافیه ؟ و اینکه این کار برای امنیت وردپرس مشکلی ایجاد نمیکنه ؟ در ضمن برای insert ک ردن وروددی هم از این روش استفاده کردم : if( ! empty($_POST['title']) and ! empty($_POST['message'])) { $title = htmlspecialchars(strip_tags(trim($_POST['title'])), ENT_QUOTES); $message = htmlspecialchars(strip_tags(trim($_POST['message'])), ENT_QUOTES); $name = htmlspecialchars(strip_tags(trim($_POST['name'])), ENT_QUOTES); $lastname = htmlspecialchars(strip_tags(trim($_POST['lastname'])), ENT_QUOTES); $user_email = htmlspecialchars(strip_tags(trim($_POST['user_email'])), ENT_QUOTES); $asked_date = htmlspecialchars(strip_tags(trim($_POST['asked_date'])), ENT_QUOTES); $answer_date = htmlspecialchars(strip_tags(trim($_POST['answer_date'])), ENT_QUOTES); $status = htmlspecialchars(strip_tags(trim($_POST['status'])), ENT_QUOTES); $public = htmlspecialchars(strip_tags(trim($_POST['public'])), ENT_QUOTES); $do = $wpdb->query("INSERT INTO `$tbl` (title,message,name,lastname,user_email,asked_date,answer_date,status,public) VALUES ('{$title}','{$message}','{$name}','{$lastname}','{$user_email}','{$asked_date}','{$answer_dat}','{$status}','{$public}')"); if($do>0) echo "<div id=message class='updated fade' ><p>لینک اضافه شد .</p></div>"; else echo "<div id=message class='updated fade' style='background:pink' ><p>متاسفانه خطایی پیش آمد</p></div>"; نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .