Kom ihåg mig?
Home Menu

Menu


Problem med XML

Ämnesverktyg Visningsalternativ
Oläst 2006-08-17, 10:41 #1
nosnaj nosnaj är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Mar 2005
Inlägg: 1 012
nosnaj nosnaj är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Mar 2005
Inlägg: 1 012
Suttit och blivit galen över problem med åäö. Provat med båda latin-1 samt utf-8 på databas men problemet är när man hämtar datan och ska pilla in i DOMDocuemnt. Den gillar inte alls åäö utan klagar.

Det fungerar dock om man kör utf8_enocde på datan innan man stoppar in den i DomDocumentet. Varför fungerar detta och inte när man har utf-8 överallt annars?
Känns väldigt obra sitta anropa utf8_enode överallt där man har text.

Följande testkod körs:

Kod:
<?php
$mysql_server = 'localhost';
$mysql_user = '';
$mysql_password = '';
$mysql_database = '';
$conn = @mysql_connect($mysql_server, $mysql_user, $mysql_password);
@mysql_select_db($mysql_database, $conn);

if(isset($_GET['data'])) {

	$sql = 'INSERT INTO test(test) VALUES (\''.$_GET['data'].'\');';
	$result = mysql_query($sql);
}
	$sql = 'SELECT * FROM test;';
	$result = mysql_query($sql);

	$dom = new DOMDocument('1.0', 'iso-8859-1');
	$node = $dom->createElement('test');
	$dom->appendChild($node);

	while($row = mysql_fetch_array($result)) {
 $tmp = $dom->createElement('tmp', $row['test']);
 $node->appendChild($tmp);
	}
	header('Content-type: text/xml');
	echo $dom->saveXML();
?>
nosnaj är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-08-17, 13:32 #2
Humankapitalistens avatar
Humankapitalisten Humankapitalisten är inte uppkopplad
Nykomling
 
Reg.datum: Jul 2006
Inlägg: 2
Humankapitalisten Humankapitalisten är inte uppkopplad
Nykomling
Humankapitalistens avatar
 
Reg.datum: Jul 2006
Inlägg: 2
DOMdocuments textmetoder förväntar sig 'utf-8' som inparameter. Alltså måste du alltid se till att det du skickar in är i 'utf-8'.

Det låter inte som du lyckats få till
Citat:
utf-8 överallt annars
. Hur gjorde du när du satte om databasen till 'utf-8'?

Prova att ändra mysql teckenuppsättning med nedanstående innan du skickar din SELECT, då borde du få 'utf-8' tillbaka.

mysql_query('SET character_set_results=utf8;');
mysql_query('SET character_set_client=utf8;');
mysql_query('SET character_set_connection=utf8;');

Ett annat tips;
Använd "mysql_real_escape_string($_GET['data'])", så slipper du problem om GET-variabeln innehåller t.ex. "Anders 'Bullen' Olsson"
Humankapitalisten är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-08-17, 13:50 #3
nosnaj nosnaj är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Mar 2005
Inlägg: 1 012
nosnaj nosnaj är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Mar 2005
Inlägg: 1 012
Fungerade perfekt!
Vilka filer ska man ändra så man får det fungera så man slipper köra dessa tre SQL-satser för varje mysql-anslutning?. Har sparat dessa inställningar i /etc/mysql/my.cnf men det funkar dock inte. Några idéer?

Sql injections känner jag till, det var bara en test och orkade inte skriva de extra tecknena.
nosnaj är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-08-17, 14:34 #4
Humankapitalistens avatar
Humankapitalisten Humankapitalisten är inte uppkopplad
Nykomling
 
Reg.datum: Jul 2006
Inlägg: 2
Humankapitalisten Humankapitalisten är inte uppkopplad
Nykomling
Humankapitalistens avatar
 
Reg.datum: Jul 2006
Inlägg: 2
Jag vet inte säkert och har ingen burk att proba på där jag sitter just nu, men testa

[mysql]
default-character-set=utf8

kan gå...
Humankapitalisten är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 09:59.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017