soheilyou

نمایش فرم و ورود اطلاعات از سمت کاربر و امنیت آن

1 پست در این موضوع قرار دارد

دوستان میخوام تو افزونه ای که در حال نوشتننش هستم کاربر یه فرم بهش نشون داده بشه و کابر فقط متن ساده بتونه توش ارسال کنه و اطلاعات وارد شده ازش در دیتابیس ذخیره بشه !

حالا برای اینکار تو فایل اصلیه افزونه ام یه تابع درست کردم به این صورت :


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>";

0

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط game-pc-mm
      سلام من داخل یک وب سایت بودم یک مورد به چشمم خورد میخام بدونم 

      ایا درست کردن این نوع فرم بدون افزونن هم میشه یا خیر
      به این صورت که فقط حود کد رو داخل برگه بزارم و خروجیش بشه همون که میخام اینم عکسش


    • توسط amirmt
      سلام سایت من چند وقتیه مورده حمله قرار گرفته و وقتی میخوام وارد سایت بشم به سایت های خارجی لینک میشه. اینترنت و زیر رو کردم یه سایت گیرم اوردم به ادرس sucuri.net سایتم رو دادم چک کنه و یه لیست از فایل هایی که مشکل داره رو گفت گه یه اسکرین ازش پیوند کردم. اکثره فایل ها هم jquery هستش که به مشکل خورده کسی میتونه کمکم کنه تا این کد ها ترمیم بشه یا حداقل راهنماییم کنه؟؟
      ادرس وب سایته خودم: unick.ir

    • توسط hodabanoo
      یه فرم میخام برای ثبت نام یه گروه از مشاغل خاص مثلا اشپز . میخام اطللاعات این کاربر ثبت بشه در دیتا بیس و با یه تابعی این اطلاعات رو دریافت کنه و در یک پست در ورد پرس نمایش بده
      میخام بدون افزونه پیاده سازی بشه
      و اینکه با همون جدول مربوط  به یوزر در ورد پرس میشه کارکرد یا باید یه جدول جدید در ورد پرس ایجاد کنم ؟ باتوجه به اینکه چند تا فرم میشه که هر کدوم مال کاربران خاصه؟ یکی کاربر عادی، یکی اشپز ، و یکی هم کار فرما ها
      من خودم دوست دارم تابع جدا و یک فایل پی اچ پی خام و یا حتی پلاگین جدا بنویسم ولی برای ایجاد یک پست تایپ معمولی ورد پرس ارور میده.
      من نمیدونم چطوری باید  در ورد پرس برنامه بنویسم که درست اجرا شه. یعنی تابع رو چطوری در ورد پرس تعریف کنم تا ارور نده
      ممنونم
      لطفا دوستانی که میدونن دریغ نکنن موضوع بحرانی هست
    • توسط Sitecheckup
      سلام
      وب سایت وردپرسی من بعد از مدتی هک شده و بعضی اوقات به یک ادرس دیگه ریدایرکت میشه و وقتی توی سرچ کنسول فچ میکنم میزنه که ریدایرکت شده به فلان آدرس
      حالا میخام بدونم که این مشکل رو چجوری میتونم حل کنم و بدونم دستور ریدایرکت کدوم قسمت قرار گرفته
      ممنون
    • توسط Mohammaddaw
      سلام خسته نباشید 
      من یک سایت دارم تازه برام ساختنش یعنی تقریبا یک ماهی ازش میگذره با لبتاب کار میکنم با سایتم مشکلی نداره ی بار با گوشی خودم تو گوگل سرچ کردم زدم رو سایت نوشته این سایت خصوصی نیست امکان برداشتن پسورد و رمز ... اینا هسته 
      بعد با یکی دیگه گوشی سرچ کردم همینو نوشته بود ولی با لبتابم خوبه 
      مشکل چیه ؟
      اگ میشه کمکم کنید