Tjenare. försökte söka och kolla om detta diskuterats tidigare, hittade några exempel men inget som jag tyckte stämde in på det jag undrar över.
Jag har ganska konstiga problem med att jämföra data i min db (mysql) från php för om jag lägger in uppgifter med INSERT i php så blir Ä = Â_ eller nåt sånt. och det blir sen helt fel när jag ska jämföra för att se om användaren redan existerar. :huh: Jag vet ju att problemet antagligen är rätt lätt att lösa, men i vilken ände ska det lösas? ändra charset på databas/phpsidan/nåt annat? Tacksam för svar |
Använd samma charset överallt. I PHP-filen, i HTML-koden, i HTTP-headern, i MySQL och i kopplingen mellan PHP och MySQL.
|
hmm.. jag körde "utf-8" som om jag fatta det rätt ska vara samma som körs på phpmyadmin. men det verkade inte stämma heller.. blir tokig på sånthär ;)
Edit: Kopplingen mellan php & mysql? |
|
Tusen tack!!
mysql_query("SET NAMES 'utf8'") or die(mysql_error()); mysql_query("SET CHARACTER SET 'utf8'") or die(mysql_error()); gjorde susen. inte stött på detta tidigare.. |
Eftersom jag nu själv fått utstå några timmars felsökning gällande problem med åäö i samband med php och mysql, så tänkte jag med detta inlägg nu bespara framtida programmerare detta.
För att få åäö att fungera problemfritt, se till följande 1. PHP-filen du exekverar är enkodad i UTF-8 2. Använd följande kommando i php-filen "mysql_query("SET NAMES 'utf8'") or die(mysql_error());" 3. Använd följande kommando i php-filen "mysql_query("SET CHARACTER SET 'utf8'") or die(mysql_error()); " 4. Se till att anslutning till databasen i phpmyadmin är "Server connection collation: utf8_general_ci" 5. Se till att mysqltabellen har inställningen "Collation utf8_bin" 6. Se till att mysqlraden har inställningen "Collation utf8_bin" 7. Headern på sidan <head><meta charset="UTF-8"></head> 8. Kolla så att php.ini är konfigurerad med "default_charset = "utf-8"" Och om du följer ovan instruktioner kommer du inte behöva använda följande kommandon 9. utf8_encode() eller utf8_decode() Om du skall skicka epost med mail() funktionen, se till att ha med följande i headern 10. "Content-type: text/html; charset=UTF-8" . "\r\n"; Lycka till :) |
Citat:
Värt att bumpa ett inlägg från 2008 med saker de andra redan har sagt? Dessutom är mysql funktionerna deprecated! |
mysql_ funktionerna är direkt livsfarliga att använda. Kolla upp PDO och prepared statements.
http://wiki.hashphp.org/PDO_Tutorial...SQL_Developers |
För formulär, använd:
accept-charset="UTF-8" En relaterad fråga, hur bör man hantera de fall där användare(kanske hackers) skickar in t.ex UTF-7 via formulär? Blev inte klok på detta sist jag kollade |
Citat:
|
Alla tider är GMT +2. Klockan är nu 18:12. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson