|
|
|
การ insert ตัวอักษรพิเศษเข้าไปใน mysql (double quote) |
|
|
|
|
|
|
|
อันที่จริงมันก็ใช้แบบนั้นถุกแล้วน่ะครับ
|
|
|
|
|
Date :
2013-03-06 14:12:37 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มันก็ใช้แค่นั้นแหละครับ
|
|
|
|
|
Date :
2013-03-06 14:24:16 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่รู้ว่าจะใช้อันนี้ได้หรือเปล่านะครับ
Code (PHP)
$off_product = stripslashes($_POST["offer_products_1"]);
$order = "UPDATE content SET offer_products_1 = '$off_product' WHERE id = 68 ";
|
|
|
|
|
Date :
2013-03-06 15:05:40 |
By :
sail |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mysql_real_escape_string(); ยืนยันคับ แบบที่ใช้อยู่ นะถูกอยู่แล้ว
|
ประวัติการแก้ไข 2013-03-06 15:11:10
|
|
|
|
Date :
2013-03-06 15:10:28 |
By :
Dragons_first |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จริงๆ ที่มันเป็น " นี่ไม่ได้เป็นเพราะ mysql_real_escape_string() ครับ ฟังก์ชั่นนี้ไม่ได้มีหน้าที่ทำอย่างนั้น
แต่เป็นเพราะ htmlspecialchars() หรือ htmlentities() (หรืออื่นๆ)
ซึ่งอาจจะมี
$_POST["offer_products_1"] = htmlspecialchars($_POST["offer_products_1"]);
หรืออะไรคล้ายๆ แบบนี้อยู่สักที
และถ้าอยากให้มันกลับเป็น " จริงๆ เราใช้นี่ครับ
htmlspecialchars_decode() แปลงพวก " & < > ให้กลับมาเป็น " & < >
$order = "UPDATE content SET
product_title_1 = '".mysql_real_escape_string(htmlspecialchars_decode($_POST["offer_products_1"]))."' WHERE id = 68 ";
แล้วก็ลองอ่านบทความนี้ดูครับ อาจจะทำให้เข้าใจเรื่องพวกนี้มากขึ้น
สิ่งที่ทุกคนต้องรู้ ในการเขียนโปรแกรมแสดงผลในรูปแบบ HTML (ทำเว็บไซต์) ด้วย PHP หากไม่อยากให้ระบบที่เขียนนั้นถูก HACK ได้ !!!
|
|
|
|
|
Date :
2013-03-06 20:46:42 |
By :
cookiephp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
INSERT นี่ในความหมายไหนครับ การแสดงผล? หรือการบันทึกลงฐานข้อมูล
ถ้าเป็นการบันทึกลงฐานข้อมูล เรา INSERT " ไปตรงๆ นี่แหละ แต่ผ่าน mysql_real_escape() ก่อน
แต่ตอนแสดงผล เราจึงค่อย escape ข้อมูลที่อาจจะมี " ด้วย htmlspecialchars()
ซึ่งปัญหาของคุณตอนนี้คือ คุณ INSERT ข้อมูลที่ถูก escape ด้วย htmlspecialchars() เข้าไปในฐานข้อมูล
ซึ่งคุณต้องหาว่า "มันไปถูก escape มาจากที่ไหน ตรงไหนของโปรแกรม" เพื่อจะได้แก้ไขตรงนั้นครับ
แล้วก็ลองอ่านบทความให้เข้าใจโดยละเอียดอีกทีครับ หรือถ้าไม่เข้าใจ ผมคงต้องเขียนบทความให้ดีขึ้นกว่านี้ล่ะ
|
|
|
|
|
Date :
2013-03-07 20:02:00 |
By :
cookiephp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date :
2013-03-07 21:19:19 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอถามต่อ จขกท อีกหน่อยหน่ะครับ
แล้วปกติในการเก็บค่าจาก พวก ckeditor หรือ อื่น ๆ
แล้วคำสั่ง addslash นี่จะช่วยในการกรอง ' " ไหมครับ
|
|
|
|
|
Date :
2013-03-08 00:03:34 |
By :
ผ่านมาเห็น |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้หรือยังครับ ผมพอจะมีวิธีน่ะครับ ตามตัวอย่างเลยครับผม
Code (PHP)
<?php
//insert commant
error_reporting( E_ALL );
include("connect_db.php");
$text="insert into table (data1) values ('insert into table (f1,f2,f3) values ('v1','v2','v3')'";
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
$insertSQL = sprintf("INSERT INTO command (`cid` ,`site`,`comm`) VALUES (%s, %s, %s)",
GetSQLValueString(NULL, "int"),
GetSQLValueString("1", "int"),
GetSQLValueString($text, "text"));
$Result1 = mysql_query($insertSQL) or die(mysql_error());
if($Result1){echo "<br/>Ok";}else{echo "<br/>No";}
?>
|
|
|
|
|
Date :
2018-11-06 16:45:21 |
By :
kimzuhum |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|