PDA

View Full Version : سوال: در هنگام نمایش اطلاعات از htmlspecialchars استفاده کنم یا در همان ابتدای صفحه از آن استفاده کنم؟



farhadfery
شنبه 06 اسفند 1390, 12:48 عصر
سلام. فرض کنید یه فرم ثبت نام در سایت داریم که action این فرم به همین صفحه است. و مقادیر نام کاربری و رمز و .. را از $_POST می گیریم.

$user_name = isset($_POST['username'])? $_POST['username'] : '';

اگر ولید بودند در database ذخیره شوند و ریداریکت شود و اگر ولید نبود فرم هنوز نمایش داده می شود. که مثلا فیلد نام کاربری با value که ارسال کرده پر می شود.

<input type="text" name="username" id="username" value="<?=$user_name?>" />

حالا سوالم اینه که همان ابتدای صفحه, هنگام دریافت از post و ریختن نام کاربری در متغییر $user_name, تابع htmlspecialchars را بر آن اعمال کنم؟ (با توجه به اینکه اگر این متغغیر صحیح است توسط تابع mysql_real_escape چک و در database درج شود.) یا هنگام نمایش ابن تابع را اعمال کنم؟ یعنی:


$user_name = isset($_POST['username'])? htmlspecialchars($_POST['username']) : '';

بنویسم یا بدون htmlspecialchars دریافت کنم و در نمایش:

<input type="text" name="username" id="username" value="<?=htmlspecialchars($user_name);?>" />

masoud_tamizy
شنبه 06 اسفند 1390, 12:59 عصر
موقع دریافت فقط escape کن و موقع نمایش htmlspecialchar .
مگرکه چه نوع اطلاعاتی رو دریافت می کنی که وایه نمایش htmlspecialchars رو می خوای اعمال کنی ؟

farhadfery
شنبه 06 اسفند 1390, 13:06 عصر
موقع دریافت فقط escape کن و موقع نمایش htmlspecialchar .
مگرکه چه نوع اطلاعاتی رو دریافت می کنی که وایه نمایش htmlspecialchars رو می خوای اعمال کنی ؟
منظور شما از escape تابع escapeshellcmd است یا تابع دیگری؟
htmlspecialchars به خاطر اینکه کاربر امکان استفاده از textEditor با قابلیت درج لینک و چند تگ html دیگر دارد.

ayub_coder
شنبه 06 اسفند 1390, 14:07 عصر
تقریبا تفاوتی ندارن.
ولی اگه اول صفحه بگیری بعدش اگه خواستی تغییراتیروش اعمال کنی بهتر میشه .

farhadfery
شنبه 06 اسفند 1390, 15:45 عصر
تقریبا تفاوتی ندارن.
ولی اگه اول صفحه بگیری بعدش اگه خواستی تغییراتیروش اعمال کنی بهتر میشه .
یعنی هنگام درج در پایگاه داده. وقتی تابع htmlspecialchars در ابتدای صفحه روی متغغیر اعمال شده، مشکلی پیش نمی یاد؟

نظور شما از escape تابع escapeshellcmd است یا تابع دیگری؟
این دوستمون هم نگفت منظورش چه تابعی هست؟

masoud_tamizy
شنبه 06 اسفند 1390, 18:39 عصر
منظورم از escape هموم mysql_esape ه :لبخندساده:
درپنا حق