PDA

View Full Version : سوال: مشکل با درج اطلاعات فارسی در mssql 2005 با php



hamid-nic
چهارشنبه 03 فروردین 1390, 11:09 صبح
سلام دوستان ، وقتتان بخیر
من با فعال کردن extension مربوط به اتصال (php_mssql.dll)در php.ini توانستم با mssql 2005 ارتباط برقرار کنم .
از طریق stored procedure ی که در mssql ایجاد کردم اقدام به ثبت اطلاعات کردم با کد php زیر :



$servername = 'hamid';
$username = 'sa';
$password = '12345';
$DB = 'mydb';

$cn = mssql_connect($servername, $username, $password);
if ($cn===false)
{
echo '<p>Cannot connect to SQL Server Database. Please try again later.</p>';
exit;
}

if (mssql_select_db($DB, $cn) === false)
{
echo '<p>Cannot connect to MyDatabase. Please try again later.</p>';
exit;
}


$sp = mssql_init("sp_users_Insert"); // stored proc name

$stemp1 = iconv("UTF-8","Windows-1256",$_POST['name']);
$stemp2 = iconv("UTF-8","Windows-1256",$_POST['family']);
$stemp3 = iconv("UTF-8","Windows-1256",$_POST['user']);
$stemp4 = iconv("UTF-8","Windows-1256",$_POST['pass']);


mssql_bind($sp, "@id", $_POST['id'],SQLVARCHAR, false, false, 10);
mssql_bind($sp, "@name", $stemp1, SQLVARCHAR, false, false, 50);
mssql_bind($sp, "@family", $stemp2, SQLVARCHAR, false, false, 50);
mssql_bind($sp, "@username", $stemp3, SQLVARCHAR, false, false, 50);
mssql_bind($sp, "@pass", $stemp4, SQLVARCHAR, false, false, 50);
mssql_bind($sp, "@tell",$_POST['tell'],SQLVARCHAR, false, false, 10);

$result = mssql_execute($sp);
if ($result=='1')
{
print'اطلاعات با موفقیت ثبت شد';
}
else
{
print 'عملیات ثبت اطلاعات با شکست مواجه شد';
}
mssql_free_statement ($sp);
mssql_close($cn);</span>

با برنامه phpDesigner مشکلی نداره و اطلاعات به درستی ثبت میشه . اما وقتی همین کد را بیارم توی Dreamweaver اطلاعات وارد شده به صورت نامفهوم ثبت میشه (مثلا : ظپط±ظˆط؛غŒ)
در صفحه php کد های زیر را وارد کردم اما بی ثمر بود

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
header('Content-Type: text/html; charset=utf-8');

با استفاده از تابع

iconv("UTF-8","Windows-1256",$_POST['name'])

اقدام به ثبت اطلاعات کردم اما به صورت صحیح تبدیل نمی کند ( البته در phpDesigner بدون استفاده از این تابع عملیات ثبت اطلاعات با موفقیت انجام میشه و تمام کاراکتر ها و کلمات بصورت فارسی ثبت میشه ) مثلا کلمه ی |حمید| را بصورت |حم| وارد می کنه .
دوستان لطفا راهنمایی کنید که چه کنم ؟

hamid-nic
چهارشنبه 03 فروردین 1390, 14:49 عصر
از دوستان کسی هست راهنمایی کنه ؟
یا تجربه ی کار قبلی داشته باشه ؟

hamid-nic
پنج شنبه 04 فروردین 1390, 16:19 عصر
دوستان چرا تابع iconv درست کار نمی کنه ؟