PDA

View Full Version : یک اشکال در وروداطلاعات



mostafa612003
یک شنبه 13 فروردین 1385, 20:28 عصر
سلام
من وقتی می خواهم در متن ورود اطلاعات کاراکتر ' را وارد نمایم یک خطا نمایش داده می شود

Warning: (null)(): Invoke() failed: Exception occurred. Source: Microsoft OLE DB Provider for SQL Server Description: Unclosed quotation mark before the character string '11111111\') '.

من با بانک sql کار می کنم

متشکرم

alirezador
دوشنبه 14 فروردین 1385, 00:29 صبح
بهتره جایی که اطلاعات را میگیری ببینی از ' استفاده کردی یا نه اگه اینطوری بود به " تغییر بده

mostafa612003
دوشنبه 14 فروردین 1385, 19:00 عصر
سلام
من می خواهم از کاراکتر ' استفاده کنم

alirezador
دوشنبه 14 فروردین 1385, 22:05 عصر
دوست من اگر شما در گرفتن اطلاعاتتون مصلا از post استفاده کرده باشین
$username=$_POST['text1'];
احتمال میدم که اگر به جای کت از کتیشن استفاده کنی مشکل حل میشه
ولی بازم سورس اون تکه از برنامه را اینجا بزن تا بگم اشغال کجاست

mostafa612003
سه شنبه 15 فروردین 1385, 20:36 عصر
سلام
$onvan=trim($HTTP_POST_VARS['onvan']); #عنوان
$date=trim($HTTP_POST_VARS['date']); #تاریخ
$manba=trim($HTTP_POST_VARS['manba']); #منبع
$tasvir=trim($HTTP_POST_VARS['tasvir']); #نام تصویر
$matn=trim($HTTP_POST_VARS['matn']); #متن خبر

$conn = new COM("ADODB.Connection") or die("Cannot start ADO");
$conn->Open("Provider=SQLOLEDB; Data Source=.;
Initial Catalog=Entefaze; User ID=sa; Password=123");

$rs = $conn->Execute("SELECT * FROM t_Khabar order by id"); // Recordset
$num_columns = $rs->Fields->Count(); //'تعداد فیلدهای جدول
for ($i=0; $i < $num_columns; $i++) {
$fld[$i] = $rs->Fields($i);
}
$rowcount = 0;
while (!$rs->EOF) {
$rowcount=$fld[0]->value;
$rs->MoveNext();
}
$rowcount++;
$rs2 = $conn->Execute("INSERT INTO t_Khabar(ID,onvan,[date],resource,picture,matn)
values('$rowcount','$onvan','$date','$manba','$tas vir','$matn') "); // Recordset

nematia
چهارشنبه 16 فروردین 1385, 01:10 صبح
ورودی ها رو برای جایگذاری کاراکتر ' فیلتر کنید. از addslashes یا str_replace یا htmlspecialchars استفاده کنید.
مثلا:
$onvan=trim(str_replace('\'','\\\'',$HTTP_POST_VAR S['onvan'])); #عنوان

mostafa612003
چهارشنبه 16 فروردین 1385, 08:52 صبح
سلام
من می خواهم که کاراکتر ' را حتما وروداطلاعات کنم
یعنی به این کاراکتر در متن نیاز دارم
در ضمن من وقتی که " را درج می کنم در بانک به صورت "\ ذخیره می کند

متشکرم

mostafa612003
دوشنبه 21 فروردین 1385, 08:59 صبح
یعنی هیچ راهی وجود ندارد؟/

nematia
دوشنبه 21 فروردین 1385, 18:32 عصر
اگر این کار (اضافه کردن / ) به صورت خودکار انجام میشه و میخوای غیر فعال بشه دستور زیر را امتحان کن:
ini_set (magic_quotes_runtime ,0)

alirezador
دوشنبه 21 فروردین 1385, 20:42 عصر
آقای نعمتی ما هم استفاده کردیم خیلی ممنون

mostafa612003
شنبه 26 فروردین 1385, 19:52 عصر
ببخشید این کد را باید کجا استفاده کنم؟
متشکرم

nematia
دوشنبه 28 فروردین 1385, 12:08 عصر
هر جایی قبل از اجرای کدی که خطا میده.

mostafa612003
دوشنبه 28 فروردین 1385, 17:13 عصر
کد من خطا ندارد فقط موقع ورود اطلاعات کاراکتر " این کاراکت \" را ذخیره می کند
دستور بالا هم اضافه کردهم باز هم همانطوری وروداطلاعات می شود
این پیغام را هم می دهد:
Notice: Use of undefined constant magic_quotes_runtime - assumed 'magic_quotes_runtime' in H:\cgi\information\arshive-khabar\insert_khabar.php on line 20

متشکرم

armin390
سه شنبه 29 فروردین 1385, 18:12 عصر
چون شما magic_quotes_runtime رو داخل کوتیشن قرار ندادی اون رو به عنوان یک ثابت در نظر می گیره! در ضمن چون ورودی اطلاعاتتون از پسته باید magic_quotes_gpc رو در php.ini خاموش کنید؛
ولی در مورد اصل مشکلت که گفتی به ' احتیاج داری چون من اول و آخرش با MySQL کار کردم در این مواقع باید ' رو به دوتا یعنی '' تبدیل کرد!!(دقت کن " نیست!)

mostafa612003
شنبه 02 اردیبهشت 1385, 17:10 عصر
من کارهایی را که گفتید انجام دادم اما دوباره به جای " این کاراکتر \" را ذخیره می کند

armin390
شنبه 02 اردیبهشت 1385, 17:46 عصر
یعنی در php.ini
magic_quotes_gpc = Off
هست و بعد از تغییر وب سرور رو ریستارت کردی و مطمئنی که این تغییر رو در php.ini اصلی دادی؟

mostafa612003
یک شنبه 03 اردیبهشت 1385, 20:27 عصر
متشکرم درست شد