مشکل در ایجاد Table با نام متغیر

Mds

Active Member
سلام به همگی بچه ها
من دارم یه دفترچه تلفن میسازم.برای همین لازمه که هر فردی بعد از ثبت نام یه TABLE با نام خودش ثبت بشه.
تا در مراجعت بعدی دفترچه تلفن (table) خودش رو ببینه .

اما یه مشگلی هست.من کد زیر رو برای ثبت TABLE نوشتم . اما وقتی کاربر از علامت های خاص /."%&!-+@... و
فاصله استفاده میکند بدون هیچ error پیام "Can Not Create Table" چاپ میشود.

PHP:
 $name=$_POST["name"];
 
$link = mysql_connect("localhost", "root") or die("Could not connect: " . mysql_error());
mysql_select_db("mdssoft") or die("Could not select database");

$query_create_db = "CREATE TABLE $name(
                    name TEXT NULL ,
				    number TEXT NULL ,
                    mobile TEXT NULL ,
				    email TEXT NULL ,
				    date TEXT NULL ) 
								         ";	
mysql_query($query_create_db,$link) or mysql_error().die("Can Not Create Table");
mysql_close($link);




لطفا کمک کنید و اگر متوجه نشدید بیشتر توضیح بدم.
ممنون
 

aaram

New Member
با سلام
خوب دوست عزيز اون كاراكترها كاراكترهاي غير مجاز ميباشد !!!!
 
  • Like
Reactions: Mds

tabib_m

Member
1- نیازی به این که بخوای برای هر کاربر ، یک تبیل جدید بسازی نیست!! کافیه یک تیبل کاربران داشته باشی ، و یک تیبل تلفن ها ، که توی تیبل تلفن ها یک فیلد داری که توش آی دی کاربری وارد میشه که صاحب اون تلفن هست:
کد:
Table Members:

[B]ID	Name	Username	Password[/B]
1	Mohsen	aaaa		ffff
2	Ali	bbbb		gggg
3	Sadeq	cccc		hhhh
4	Ahmad	dddd		iiii
5	Kamran	eeee		jjjj
...

Table Tels:

[B]ID	Name	Phone	Address	MemberID[/B]
1	Reza	222222	tttt	2
2	Hasan	333333	rrrr	3
3	Behnam	444444	hhhh	2
4	Moosa	555555	qqqq	1
5	Naser	666666	mmmm	4
...
در اینجا تلفن های شماره ی 1 و 3 مربوط میشن به کاربر شماره ی 2 یعنی Ali.
امیدوارم متوجه شده باشین.

2- اگر بخوای از همون راه خودت استفاده کنی ، چه نیازی هست که نام تیبل رو بر اساس نام شخص بذاری؟ یک نام به صورت اتوماتیک تعیین کن ، و توی یک تیبل دیگه ثبت کن که کدوم تیبل مربوط میشه به کدوم کاربر.
اگه متوجه نشدی ، بگو مثال بزنم.

موفق باشید
 
آخرین ویرایش:
  • Like
Reactions: Mds

Mds

Active Member
خیلی ممنون از شما دوستان عزیز.
متوجه شدم.امتحان میکنم.اگر مشگلی بود میگم.
 

msnasiri

Member
phpmyadmin می تونه چنین تیبل هایی رو بسازه
من توصیه می کنم که قبل از این کاراکترها یه \ اضافه کنی

البته بازم اون روش طبیب جان رو توصیه می کنم
 
  • Like
Reactions: Mds

k2-4u

Well-Known Member
دوست عزیز در PHP امکان استفاده متغیر در نام Table (به احتمال زیاد به دلیل امنیت ) نیست و اگر هم می خواهید کاری کنید که کاربر نتواند از هر کارکتری استفاده کند باید به صورت زیر عمل کنید
PHP:
if (eregi("[[:alnum:]]",$motaghayar)) { دستور 
	}
در اینجا اگر مقدار متغیر $motaghayar با حروف و اعداد پر شده باشد مقدار IF درست حساب می شود
موفق باشید
 
آخرین ویرایش:
  • Like
Reactions: Mds

sanbad

Member
اگه بخواهي علامات خاص را وارد ديتابيس کني بايد از توابع addslashes و stripslashes در کد php استفاده کني.
 
  • Like
Reactions: Mds

جدیدترین ارسال ها

بالا