मैं एक HTML फॉर्म से एक mysql डेटाबेस में पारित डेटा डालने के लिए, फ्रेमवर्क (प्रोटोटाइप, jQuery, आदि) के बिना जावास्क्रिप्ट का उपयोग करने की कोशिश कर रहा हूं। मैंने यह काम करने में कामयाब रहा है, लेकिन मेरी भाषा (æøå) में आमतौर पर उपयोग किए जाने वाले कुछ विशेष पात्रों में समस्या आती है। utf-8 इन वर्णों का समर्थन करता है, और जब मैं जावास्क्रिप्ट छोड़ देता हूं तो सब कुछ ठीक काम करता है। हालांकि जब मैं जावास्क्रिप्ट पोस्ट फ़ंक्शन के माध्यम से HTML फॉर्म की सामग्री को पास करने और अपनी कार्यशील PHP स्क्रिप्ट के साथ क्वेरी निष्पादित करने का प्रयास करता हूं, तो प्रत्येक æøå को Ã⠀ SA में परिवर्तित किया जाता है।क्या जावास्क्रिप्ट बल विशिष्ट वर्णमाला है?
इसे तोड़ने के लिए, जावास्क्रिप्ट किसी भी तरह से एक विशिष्ट वर्णमाला को मजबूर करता है जब कोड में कोई अन्य निर्धारित नहीं होता है? मैंने जावास्क्रिप्ट पोस्ट और PHP फ़ाइल के साथ-साथ HTML फॉर्म के शीर्षलेख में वर्णसेट निर्दिष्ट करने का प्रयास किया है।
मेरा मानना है कि यह कुछ गलत या मेरे जावास्क्रिप्ट फ़ाइल में लापता होना चाहिए, formpost.js:
function sendText(visbool){
var http =new GetXmlHttpObject();
var url = "sendtext.php";
var ovrskrift = document.form1.overskrift.value;
var cont = document.form1.content.value;
var params = "overskrift=" + ovrskrift + "&tekst=" + cont + "&visbool=" + visbool;
http.open("POST", url, true);
//Send the proper header information along with the request
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
http.onreadystatechange = function() {//Call a function when the state changes.
if(http.readyState == 4 && http.status == 200) {
// gjør noe smart her
}
}
http.send(params);
}
function GetXmlHttpObject()
{
var objXMLHttp=null;
if (window.XMLHttpRequest)
{
objXMLHttp=new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
return objXMLHttp;
}
sendtext.php:
<?php
//variabler for spørring
$date= date('Y-m-d');
$overskrift= $_POST["overskrift"];
$ostr='36';
$tekst= $_POST["content"];
//$tekst="test tekst";
$istr='32';
$bilde="";
$style="onlyinfo.css";
//$vis=$_POST['visbool'];
$vis=0;
require ('../config.php'); // henter informasjon om database tilkoblingen fra config.php
if (!$con){die('Could not connect: ' . mysql_error());} // lager feilmelding hvis tilkoblingen mislyktes
// spørring for databasen, konstrueres etter variablene som er angitt ovenfor
$sql="INSERT INTO tbl_info(dato,overskrift_tekst,overskrift_str,infotekst_tekst,infotekst_str,bilde,style,vismeg) VALUES('" . $date . "','" . $overskrift . "','" . $ostr . "','" . $tekst . "','" . $istr . "','" . $bilde . "','" . $style . "','" . $vis . "')";
$result = mysql_query($sql); // kjører spørring og lagrer resultat i $result
mysql_close($con); // lukker database tilkoblingen
?>
createslide.php: (के लिए विस्तार सुरक्षित .php भविष्य कोड कार्यान्वयन)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
<head>
<title>inforMe: Legg til side</title>
<link type="text/css" rel="stylesheet" href="./css/style.css" id="adminss">
<script src="./js/formpost.js"></script>
<script type="text/javascript" src="./tinymce/jscripts/tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
tinyMCE.init({
mode : "textareas"
});
</script>
</head>
<body>
<div class="imgupload">
<input type="button" value="Last opp bilde"> <img src="" />
</div>
<div class="form">
<form name="form1" method="post" action="sendtext.php">
<label for="overskrift">Overskrift:</label>
<input type="text" size="70" id="overskift" name="overskrift"><br />
<label for="content">Tekst:</label>
<textarea id="content" name="content" cols="50" rows="15">This is some content that will be editable with TinyMCE.</textarea>
<input type="button" value="save draft" onclick="sendText(0)"/>
<input type="button" value="save and publish" onclick="sendText(1)"/>
<input type="submit" value="regular submit button"/>
</form>
</div>
</body>
</html>
एनबी! मुझे नहीं पता कि यह जानकारी कहां रखनी है .. अच्छा .. मैंने यहां इसके साथ जाने का फैसला किया: सबसे पहले सभी अच्छे सुझावों के लिए धन्यवाद। मुझे विश्वास है कि सवाल का जवाब दिया गया था। मेरी समस्या के अनुसार, यह केवल आंशिक रूप से हल किया गया है।
ऐसा लगता है कि अगर मैं लैटिन -1 वर्णमाला के साथ एक नया MySQL डेटाबेस बना रहा हूं और आईएसओ -885 9 -1 पर अपनी फाइलों में वर्णमाला विकल्प बदलता हूं तो यह यूटीएफ -8 वर्णसेट लाइन के साथ कहीं भी खो गया है, यह ठीक काम करता है । चूंकि मेरा परीक्षण सेटअप सभी नारियल सॉफ़्टवेयर (ब्राउज़र, डीबी सर्वर, आदि) पर आधारित है, मुझे लगता है कि जहां भी यह अन्यथा निर्दिष्ट नहीं है, यह आईएसओ -885 9 -1
एनबीबी! और अब यह सब ठीक है। जब मैं जोड़ता हूं तो सब ठीक काम करता है:
शीर्षलेख ('सामग्री-प्रकार: टेक्स्ट/सादा; charset = utf-8');
मेरी sendtext.php फ़ाइल के शीर्ष पर।
यह प्रश्न बहुत समय पहले पोस्ट किया गया था, लेकिन मुझे यह कहना है: कृपया मुझे बताएं कि यह आपका वास्तविक SQL-हैंडलिंग कोड नहीं है, क्योंकि यह आपको SQL-इंजेक्शन हमलों के लिए व्यापक रूप से खुला छोड़ देता है ... – Epcylon