برگزیده های پرشین تولز

مشكل كاراكتر ' در برنامه نويسي php

hba

کاربر فعال صفحات داینامیک
کاربر فعال
تاریخ عضویت
8 آگوست 2004
نوشته‌ها
1,511
لایک‌ها
1
سن
39
محل سکونت
تهران-ونک-php-mysql
من یه صفحه لاگین ساختم که
PHP:
$myre=mysql_query("select * from user where user='$user'",$mycn);
می گردد ولی وقتی در فیلد یوزر ' رو ميزنم قاطی می کنه و اررور

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\easyphp1-7\www

رو می ده چه طوری کنم؟
 

Parsa_361

کاربر فعال صفحات داینامیک
کاربر فعال
تاریخ عضویت
5 آگوست 2005
نوشته‌ها
889
لایک‌ها
10
محل سکونت
Isfahan, php.ini
به نقل از hba :
من یه صفحه لاگین ساختم که
PHP:
$myre=mysql_query("select * from user where user='$user'",$mycn);
می گردد ولی وقتی در فیلد یوزر ' رو ميزنم قاطی می کنه و اررور

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\easyphp1-7\www

رو می ده چه طوری کنم؟
:cool:
مقدار فیلد یوزرت رو از این تابع رد کن :
()htmlspecialchars

PHP:
string htmlspecialchars ( string string [, int quote_style [, string charset]] )
منوال : http://www.ir.php.net/htmlspecialchars
 

hba

کاربر فعال صفحات داینامیک
کاربر فعال
تاریخ عضویت
8 آگوست 2004
نوشته‌ها
1,511
لایک‌ها
1
سن
39
محل سکونت
تهران-ونک-php-mysql
خوب من از اين هماستفاده كردم ولي نميدونم چه چيز هايي در اين دستور بايد داد
PHP:
($user)htmlspecialchars

داده اررور می دهد چه طور باید داخلش رو پر کنم؟؟؟؟؟؟؟؟؟؟؟
مرسی
 

Parsa_361

کاربر فعال صفحات داینامیک
کاربر فعال
تاریخ عضویت
5 آگوست 2005
نوشته‌ها
889
لایک‌ها
10
محل سکونت
Isfahan, php.ini
اینجوری :

PHP:
$user = htmlspecialchars($user);
 

balabala

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
22 می 2005
نوشته‌ها
8,362
لایک‌ها
5,745
سن
41
محل سکونت
یه خورده اونورتر
من هم یک مشکل با ' دارم:
وقتی تکستی رو پست میکنیم و با استفاده از $_POST مقدارش رو میگیریم. تمام ' ها به \' تبدیل میشه. وقتی میخوام تو دیتابیس ذخیرشون کنم اطلاعات اشتباهی ذخیره میشن مثلا:
کد:
It's a test.
به این صورت ذخیره میشه:
کد:
It\'s a test.
:wacko:
بچه ها، راه حلی دارید؟
 

Parsa_361

کاربر فعال صفحات داینامیک
کاربر فعال
تاریخ عضویت
5 آگوست 2005
نوشته‌ها
889
لایک‌ها
10
محل سکونت
Isfahan, php.ini
به نقل از balabala :
من هم یک مشکل با ' دارم:
وقتی تکستی رو پست میکنیم و با استفاده از $_POST مقدارش رو میگیریم. تمام ' ها به \' تبدیل میشه. وقتی میخوام تو دیتابیس ذخیرشون کنم اطلاعات اشتباهی ذخیره میشن مثلا:
کد:
It's a test.
به این صورت ذخیره میشه:
کد:
It\'s a test.
:wacko:
بچه ها، راه حلی دارید؟
خوب به خاطر این که از تابع ()addslashes استفاده می کنی !
از این تابع استفاده نکن !
از همون تابعی که من در بالا گفتم استفاده کن.
()htmlspecialchars
 

balabala

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
22 می 2005
نوشته‌ها
8,362
لایک‌ها
5,745
سن
41
محل سکونت
یه خورده اونورتر
به نقل از Parsa_361 :
خوب به خاطر این که از تابع ()addslashes استفاده می کنی !
از این تابع استفاده نکن !
از همون تابعی که من در بالا گفتم استفاده کن.
()htmlspecialchars
نه اصلا تابعي رو صدا نميزنم:
PHP:
$data=$_POST['data'];
يك همچين چيزي اگر توش ' باشه تبديل ميشه به '\
 

balabala

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
22 می 2005
نوشته‌ها
8,362
لایک‌ها
5,745
سن
41
محل سکونت
یه خورده اونورتر
تو php.ini چيزي درموردش نيست؟ چطور ميشه گفت يك استرينگ رو در يك پست تغيير نده؟
 

balabala

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
22 می 2005
نوشته‌ها
8,362
لایک‌ها
5,745
سن
41
محل سکونت
یه خورده اونورتر
یافتم!

میتونم از stripslashes استفاده کنم اگر اشتباه نکنم؟ :cool: ولی اینجوری تو تمام متغییرهایی که به دیتابیس میرند باید ازش استفاده کنم! :(
 

Parsa_361

کاربر فعال صفحات داینامیک
کاربر فعال
تاریخ عضویت
5 آگوست 2005
نوشته‌ها
889
لایک‌ها
10
محل سکونت
Isfahan, php.ini
به نقل از balabala :
نه اصلا تابعي رو صدا نميزنم:
يك همچين چيزي اگر توش ' باشه تبديل ميشه به '\
:eek:
eeeeeeeeeeeeeeeeeeeeeeeeeee !
اصلاً برای من اینجوری نیست !
ببین یه بار دیگه دقت کن
یه جا تابع ()addslashes صدا زده شده !
ببین رو سرورم همینجوریه
 

balabala

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
22 می 2005
نوشته‌ها
8,362
لایک‌ها
5,745
سن
41
محل سکونت
یه خورده اونورتر
به نقل از Parsa_361 :
:eek:
eeeeeeeeeeeeeeeeeeeeeeeeeee !
اصلاً برای من اینجوری نیست !
ببین یه بار دیگه دقت کن
یه جا تابع ()addslashes صدا زده شده !
ببین رو سرورم همینجوریه
نه اصلا!
براي همين هم به php.ini شك دارم. يكي از دايركتيو ها بايد مربوط به همين باشه.
 

balabala

کاربر قدیمی پرشین تولز
کاربر قدیمی پرشین تولز
تاریخ عضویت
22 می 2005
نوشته‌ها
8,362
لایک‌ها
5,745
سن
41
محل سکونت
یه خورده اونورتر
در مورد addslashs ممنون. البته اونرو استفاده نكردم ولي فهميدم با stripslashs ميشه اسلشها رو ورداشت. ولي گفتم خيلي سخته همه جا صداش بزنم. بايد همش زير سر يكي از دايركتيواي php.ini باشه.
 

Moein

Registered User
تاریخ عضویت
2 مارس 2004
نوشته‌ها
1,150
لایک‌ها
64
محل سکونت
تهران - شهرک غرب
من هم همین مشکل رو داشتم و از stripslashes استفاده کردم و حتی تو سایت sedo.com که خیلی معروفه این مشکل وجود داره چون وقتی تو کانتکتشون چیزی می‌نویسم و اونها reply میکنن، میبینم اسلش اضافه شده !
 

hba

کاربر فعال صفحات داینامیک
کاربر فعال
تاریخ عضویت
8 آگوست 2004
نوشته‌ها
1,511
لایک‌ها
1
سن
39
محل سکونت
تهران-ونک-php-mysql
من اين مدلي هم زدم باز
PHP:
 $user = htmlspecialchars($user);
ارور گرفت ولي اين طوري زدم كار كرد
PHP:
$user = htmlspecialchars($user,1);

اين فيلد دومي چيه؟
 

sama_sally

Registered User
تاریخ عضویت
5 آپریل 2005
نوشته‌ها
2,598
لایک‌ها
1
سن
35
محل سکونت
Essen, Deutschland
کد:
string htmlspecialchars ( string string [, int quote_style [, string charset]])
ولی منم چیزی در نفهمیده بیدم :blink:
 
بالا