/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
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 henter ~
Fra : PeterPirat


Dato : 11-10-01 07: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>
<?}?>


--
Leveret af:
http://www.kandu.dk/
"Vejen til en hurtig løsning"


 
 
Mogens Meier Christe~ (11-10-2001)
Kommentar
Fra : Mogens Meier Christe~


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



Mogens Meier Christe~ (11-10-2001)
Kommentar
Fra : Mogens Meier Christe~


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



Hroi Sigurdsson (11-10-2001)
Kommentar
Fra : Hroi Sigurdsson


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

Mogens Meier Christe~ (12-10-2001)
Kommentar
Fra : Mogens Meier Christe~


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



Rander (12-10-2001)
Kommentar
Fra : Rander


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)


Mogens Meier Christe~ (16-10-2001)
Kommentar
Fra : Mogens Meier Christe~


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



Nezar Nielsen (12-10-2001)
Kommentar
Fra : Nezar Nielsen


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/




PeterPirat (15-10-2001)
Kommentar
Fra : PeterPirat


Dato : 15-10-01 07:31

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

--
Leveret af:
http://www.kandu.dk/
"Vejen til en hurtig løsning"


Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408952
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste