/ Forside/ Teknologi / Udvikling / PHP / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
æøå - ok i mysql, men ikke når jeg hente~
Fra : PeterPirat
Vist : 1122 gange
50 point
Dato : 11-10-01 08:55

Hejsa...

Jeg er ved at lave en lille begynder database, men jeg har lidt problemer med æøå.
Når jeg kigger i mysql ser det fint ud med æøå, men med det samme jeg henter det er tegnene ændret...


Jeg henter således :


$SQL = "SELECT * FROM Section ORDER BY Section";
$result = mysql_query($SQL);?>


<?while ($row = mysql_fetch_array($result)) {
?>
<tr>
<td width="93%"><a href="katalog.php?SectionID=<?echo $row["SectionID"];?>"><?echo $row["Section"];?></a></td>
</tr>
<?}?>


 
 
Kommentar
Fra : Nyhedsbruger


Dato : 11-10-01 15:26

"PeterPirat" <PeterPirat.news@kandu.dk> skrev i en meddelelse
news:wibx7.6461$uQ.677808@news010.worldonline.dk...

Jeg har haft stor glæde at at konvetere alt til HTML *inden* jeg lagde det
ind i MySQL-databasen. Jeg konverterer også apostroffen, " ' " så jeg ikke
behøver at bruge MagicQuotes, som imho er en bizar og dårligt dokumenteret
feature...

Men det kræver jo selvf. at du kun skal bruge det som HTML - til tekst til
GD Image Lib. og lignende skal du selvf. af-HTML'e det før (eller lade være
med at HTML'e det i første omgang) det kan bruges...

Jeg gør det på følgende måde. Eneste grund til at bruge en global variabel
til konverteringstabellen er performance:

=== sav langs linien ===

/* function dk_html($str) returns the safe Danish HTML-equivalent of the
ascii string $str:
1) $str is run through htmlspecialchars()
2) ' is replaced by &#39; (for SQL-safety)
3) æøåÆØÅ is replaced by &aelig; &oslash; &aring; etc.
*/

$dk_html_trans = get_html_translation_table (HTML_SPECIALCHARS);

$dk_html_trans["'"] = '&#39;';
$dk_html_trans['æ'] = '&aelig;';
$dk_html_trans['ø'] = '&oslash;';
$dk_html_trans['å'] = '&aring;';
$dk_html_trans['Æ'] = '&AElig;';
$dk_html_trans['Ø'] = '&Oslash;';
$dk_html_trans['Å'] = '&Aring;';

function dk_html($str)
{
global $dk_html_trans;
return strtr($str, $dk_html_trans);
}

=== sav langs linien ===
--
Mvh. Mogens,
www.momech.dk



Kommentar
Fra : Nyhedsbruger


Dato : 11-10-01 15:38

Glemte at sige at der er en lang række fordele ved konvertering til HTML -
du undgår at folk skriver uventet HTML til din database/hjemmeside hvis du
f.eks. har en gæstebog osv.

Derudover BØR man alligevel også altid konvertere æøåÆØÅ da de ikke vises
korrekt på bestemte platforme; men det har jo ikke noget med PHP at gøre -
ud over at det er meget nemmere i PHP end i statisk HTML ;)

--
Mvh. Mogens,
www.momech.dk



Kommentar
Fra : Nyhedsbruger


Dato : 11-10-01 16:17

Mogens Meier Christensen wrote:

> Glemte at sige at der er en lang række fordele ved konvertering til HTML -
> du undgår at folk skriver uventet HTML til din database/hjemmeside hvis du
> f.eks. har en gæstebog osv.

Det er IMHO en dårlig ide at gemme HTML i databasen. Men det er blot en
rent principielt synspunkt. Forestil dig at du vil bruge indholdet i
andre sammenhænge end websider.

> Derudover BØR man alligevel også altid konvertere æøåÆØÅ da de ikke vises
> korrekt på bestemte platforme; men det har jo ikke noget med PHP at gøre -
> ud over at det er meget nemmere i PHP end i statisk HTML ;)

Da æ,ø og å falder indenfor ISO-8859/Latin1 tegnsættet, som er HTML's
medfødte tegnsæt, er det overflødigt at konvertere disse tegn til
entities. Det er dog altid en god ide at specificere hvilket tegnsæt der
bruges, enten i Content-Type-headeren eller tilsvarende meta http-equiv
tag.

--
Hroi Sigurdsson hroi@netgroup.dk
Netgroup Datacenter http://www.ngdc.dk

Kommentar
Fra : Nyhedsbruger


Dato : 12-10-01 01:05

> Det er IMHO en dårlig ide at gemme HTML i databasen. Men det er blot en
> rent principielt synspunkt. Forestil dig at du vil bruge indholdet i
> andre sammenhænge end websider.

Ja, OK, principielt enig.
Men det er ikke så svært at lave den inverse af den funktion der konverterer
til HTML.
Derudover havde vedkommende problemer med netop æøåÆØÅ fra MySQL så det var
da en work-around om ikke andet.

> Da æ,ø og å falder indenfor ISO-8859/Latin1 tegnsættet, som er HTML's
> medfødte tegnsæt, er det overflødigt at konvertere disse tegn til
> entities. Det er dog altid en god ide at specificere hvilket tegnsæt der
> bruges,

OK det er nok her jeg har misset noget - men det er jo HTML og ikke PHP.


Vi har stadig ikke set en acceptabel løsning på de aktuelle
æøåÆØÅ-problemer.


Men kan vi i øvrigt ikke få en lidt mere præcis beskrivelse af
problemerne???


--
Mvh. Mogens,
www.momech.dk



Accepteret svar
Fra : Nyhedsbruger

Modtaget 50 point
Dato : 12-10-01 03:46

"PeterPirat" <PeterPirat.news@kandu.dk> wrote in message
news:wibx7.6461$uQ.677808@news010.worldonline.dk...
> Hejsa...
>
> Jeg er ved at lave en lille begynder database, men jeg har lidt
> problemer med æøå.
> Når jeg kigger i mysql ser det fint ud med æøå, men med det samme jeg
> henter det er tegnene ændret...

Hvad mener du med "når jeg kigger i mysql" ? mener du i
kommandoprompt-tingen (Jeg går næsten ud fra at det er i et lege-miljø på
windoze)?
I så fald kan dit problem kan skyldes at du har sat værdierne ind med deres
DOS-tegnsæt(OEM så vidt jeg husker) værdier... og derfor vil du få mystiske
ting ud, når du henter det fra php.. Prøv at sætte nogle værdier ind via php
og træk dem ud igen, så skulle der gerne ingen problemer være med æøå.

--
Mvh. Nezar Nielsen
http://fez.dk/




Kommentar
Fra : Nyhedsbruger


Dato : 12-10-01 22:00

Thu, 11 Oct 2001 16:26:25 +0200 brugte Mogens Meier Christensen 46 linier
på at fortælle dette til dk.edb.internet.webdesign.serverside.php:

>Jeg gør det på følgende måde. Eneste grund til at bruge en global variabel
>til konverteringstabellen er performance:
>/* function dk_html($str) returns the safe Danish HTML-equivalent of the
>ascii string $str:
[...]

Og hvad er der galt med htmlentities?

$str = "Blåbærgrød";
$str = htmlentities($str);
echo $str;

Outputtet af det bliver - tadaaaa: Bl&aring;b&aelig;rgr&oslash;d


--
Lars Rander, www.rander.dk ICQ#: 987520 ** Pil ikke ved min adresse **
Sjathelt og beskytter af det svage køn (udnævnt af diktator SEJ 5/6-99)

Der findes to slags engle: Almindelige engle og skytsengle.
Skytsengle er skudt ud af kanoner. Dem er der lidt mere fart på.
Og så er de ofte lidt mere stive i håret. (Anne Sophie, 6 år)


Godkendelse af svar
Fra : PeterPirat


Dato : 15-10-01 08:31

Tak for svaret Nezar Nielsen.
Jeg havde ingen anelse om at dette kunne være et problem !!!
                        

Kommentar
Fra : Nyhedsbruger


Dato : 16-10-01 12:45

> Og hvad er der galt med htmlentities?

Intet - ud over at det måske ikke er alt der ikke er a-zA-Z der behøver at
konverteres...? :)

Jeg har ikke eksperimenteret med det, men ifl. manualen konvererer den *alt*
der kan konvereres...


--
Mvh. Mogens,
www.momech.dk



Kommentar
Fra : jonasmunk


Dato : 09-01-03 07:36

Hej, min første post!

I er alle galt på den

Problemet må ligge i MySql eller MySql-driveren. Når han siger "kigger i mysql" mener han at han ser dataene fra fx. kommado-promt'en eller et andet program. Tegnene er således ok i databasen, men det er når de kommer ud i php at problemet kommer.

Jeg har samme problem med Java Servlets, hvor jeg får nøgle kryptiske tegn istedet for æøå (samt andre tegn). Jeg kan se med andre programmer at data er ok i databasen.

Jeg ved ikke hvordan man løser det men jeg har ledt i lang tid, og har kun fundet meget tekniske løsninger - alle noget med unicode, men det kan være det er specialt for Java.

Det med at konverete frem og tilbage mellem HTML er en dårlig ide: Hvis det kun var æøå ville indput og output være det samme, men hvis man gerne vil skrive "&aelig;" som en del af input (det kan hænde) så får man "æ" som output og det er jo ikke ideen.

Hilsen Jonas

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177428
Tips : 31962
Nyheder : 719565
Indlæg : 6407936
Brugere : 218877

Månedens bedste
Årets bedste
Sidste års bedste