webForumDet fria alternativet

Beställnings formulär

Flash

13 svar · 780 visningar · startad av Maacus

Medlem sedan jan. 2007108 inlägg
Frågan#1

Jag har gjort ett beställnings formulär för en katalog som är globalt. Jag har upptäckt nu att när någon från Ryssland beställer så bildas det tomma fält i databasen och jag tappar de beställningarna. Vad kan det bero på?

Jag använder PHP och MySQL.

Medlem sedan dec. 200384 inlägg
#2

Detta beror sannolikt på problem med teckenuppsättningen som används.
Liten checklista:

-Vilken version exporterar du din swf till?
-Inkluderar du (embed fonts) som har stöd för unicode?
-Kan du skriva in ryska tecken till databasen från tex ett webbformulär?

Medlem sedan jan. 2007108 inlägg
#3

Sinus skrev:

Detta beror sannolikt på problem med teckenuppsättningen som används.
Liten checklista:

-Vilken version exporterar du din swf till?
-Inkluderar du (embed fonts) som har stöd för unicode?
-Kan du skriva in ryska tecken till databasen från tex ett webbformulär?

  1. SWF:en är i version 7.
  2. Jag inkluderar inga fonts, jag använder instanser TextInput.
  3. Har inte provat via webbformulär. Vet inte heller hur jag gör ryska tecken.

Jag upptäckte felet då de som valt "Ryska" som språk på katalogen blev blanka fält förutom just kolumnen språk där informationen kommer från en dropdown och ibland så kom mail adressen med men övriga uppgifter försvann.

Medlem sedan dec. 200384 inlägg
#4

Inkludering av fonter är ett måste om du vill säkerställa att alla användare kan visa ditt innehåll korrekt.

Medlem sedan maj 2003750 inlägg
#5

Jag skulle tro att det är teckenkodningen som spökar. Använder du setCodepage = true? isf ta bort det.

Se också till att utf-8 är den teckenkodning som används hela vägen in i databasen och ut igen.

/Mirandir

Medlem sedan maj 2005704 inlägg
#6

Sinus skrev:

Inkludering av fonter är ett måste om du vill säkerställa att alla användare kan visa ditt innehåll korrekt.

Jag skulle tippa att det är samma med Ciryllic som med åäö...d.v.s. att det är inga problem att köra utan inbäddade typsnitt rent funktionellt, det är bara om du vill försäkra dig om att texten visar sig med exakt det typsnitt som du valt som du måste bädda in.
Skall man ha stöd för Ciryllic och diverse andra teckenuppsättningar i ett inmatningsfält skulle jag nog se till att försöka undvika att bädda in typsnitt då filstorleken annars drar iväg.

Om ryska användare trots allt försöker skicka formuläret skulle jag tro att de ser sina tecken bli ifyllda, så problemet är nog som mirandir säger att det inte är unicode hela vägen in och ut från databas.

Medlem sedan jan. 2007108 inlägg
#7

tack för alla svar, ska försöka kolla tecken kodningen från flashen in till databasen så att den behåller UTF-8 hela vägen så fort jag hinner.

Medlem sedan jan. 2007108 inlägg
#8

Såg att jag hade utf8_decode($_REQUEST['fname']) i php filen som lagrar datan, är det de som är felet?

Medlem sedan maj 2003750 inlägg
#9

utf8_decode() i php:n låter som en huvudmisstänkt.

/Mirandir

Medlem sedan maj 2005704 inlägg
#10

Om du tar bort utf8_decode så kommer du få märkliga ersättningstecken även med utf8 som collation i databasen.
T.ex. blir ett "ä" då till "ä" i databasen och måste köras genom utf8_decode då du hämtar ut datan om den skall visas rätt i Flash.
Så det är korrekt och skall vara kvar.

Det som verkar märkligt är att du säger att du får tomma fält från ryssar.
Några slags tecken borde dyka upp även om du har ett encoding problem.
Hitta lite Ciryllisk text och testa med.

Medlem sedan maj 2003750 inlägg
#11

[qoute]Om du tar bort utf8_decode så kommer du få märkliga ersättningstecken även med utf8 som collation i databasen.[/qoute]

Det är sant men då har du samtidigt brutit kedjan med utf-8.

/Mirandir

Medlem sedan maj 2005704 inlägg
#12

Det har du rätt i, har haft för vana att göra det då det alltid funkat bra med åäö.

Korrekta sättet att göra det på verkar vara att lägga till följande efter mysql_select_db:

mysql_query("SET NAMES utf8");

Alternativt så kan man göra ändringen i my.ini
http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html

Medlem sedan jan. 2007108 inlägg
#13

Blixtsystems skrev:

Det har du rätt i, har haft för vana att göra det då det alltid funkat bra med åäö.

Korrekta sättet att göra det på verkar vara att lägga till följande efter mysql_select_db:

mysql_query("SET NAMES utf8");

Alternativt så kan man göra ändringen i my.ini
http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html

Ska jag fortfarande kör med utf8_decode() om jag testar det du föreslagit.

Medlem sedan maj 2005704 inlägg
#14

Nej, det behövs inte då.

272 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
135 ms — ändringar (db)