UTF-8 med MySQL för svenska och kinesiska tecken

PHPportalen Forum Index » Tips och Trix
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
MixMan



Medlem i: 3141 dagar
Från: Järfälla
Status: Offline



#711066
Inlägg Skrivet: 2011-08-01 11:59      Ämne: UTF-8 med MySQL för svenska och kinesiska tecken Citera

I mitt första PHP projekt "Hello World" så stödjer jag alla tänkbara språk och har därför labbat och testat en hel del för att kunna visa och uppdatera databasen på alla språk. Här är de funktioner jag använder.

PHP fil med databas connection och filter funktion som kan inkluderas i alla andra PHP sidor
Exempel på filen db_conn.php och php/html filen user_update.php nedan
PHP:
1:
 
2:
<?php 
3:
        
4:
  /************* MYSQL DATABASE SETTINGS *****************/
5:
    #Define Constants for Database connection
6:
    define ("DB_HOST""localhost"); // set database host (localhost or remotehost)
7:
    define ("DB_USER""username"); // set MySQL database user name
8:
    define ("DB_PASS""password"); // set MySQL database password
9:
    define ("DB_NAME""database"); // set MySQL database name  
10:
    
11:
  /************* MYSQL DATABASE UTF-8 CONNECTION *****************/      
12:
    $link mysql_connect(DB_HOSTDB_USERDB_PASS) or die("Couldn't make connection."); 
13:
    $db mysql_select_db(DB_NAME$link) or die("Couldn't select database");
14:
    mysql_set_charset('utf8',$link); 
15:
    
16:
    header('Content-type: text/html; charset=utf-8'); // This row can be on each HTML page
17:
    
18:
  /************* UTF-8 DATA FILTER FUNCTION  *****************/       
19:
    function filter($data) {
20:
     $data trim(htmlentities(strip_html_tags($data), ENT_QUOTES'UTF-8'));
21:
     if (get_magic_quotes_gpc())
22:
      $data stripslashes($data);      
23:
      /* Decode HTML entities */
24:
    $data html_entity_decode$dataENT_QUOTES"UTF-8" );  
25:
     $data mysql_real_escape_string($data);   
26:
     return $data;
27:
    }
28:
  
29:
?>
30:
 


Exempel för att uppdatera databasen med för och efternamn.
Inkludera ovanstående kod som db_conn.php

Notera de 2 raderna i koden för att få UTF-8 stöd
header('Content-Type:text/html; charset=UTF-8');
och i <head> sektionen
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

PHP:
1:
 
2:
<?php 
3:
 
4:
include 'db_conn.php';
5:
header('Content-Type:text/html; charset=UTF-8');
6:
 
7:
if(isset($_POST['doSave']))
8:
{
9:
// Filter POST data for harmful code (sanitize)
10:
  foreach($_POST as $key => $value) {
11:
   $data[$key] = filter($value);
12:
  }
13:
 
14:
  $first$data[first_name];
15:
  $last$data[last_name] ;
16:
  $full_name$first .' '$last ;
17:
 
18:
  mysql_query("UPDATE users SET   
19:
         `first_name` = '$data[first_name]',
20:
         `last_name` = '$data[last_name]',
21:
         `full_name` = '$full_name'         
22:
          WHERE id='$_SESSION[user_id]'
23:
         ") or die(mysql_error());
24:
 
25:
  } 
26:
$rs_settings mysql_query("select * from users where id='$_SESSION[user_id]'"); 
27:
 
28:
?>
29:
<html>
30:
<head>
31:
<title>Update Name</title>
32:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
33:
</head>
34:
 
35:
<body>
36:
 
37:
     <?php while ($row_settings mysql_fetch_array($rs_settings)) {?>
38:
      <form action="user_update.php" method="post" name="myform" id="myform" >
39:
        <table width="98%" border="0" align="center"  cellpadding="7" cellspacing="3">
40:
               
41:
 
42:
          <tr> 
43:
            <td><?php echo 'First Name' ?></td>
44:
            <td> 
45:
            <input name="first_name" type="text" id="first_name" value="<?php echo $row_settings['first_name']; ?>">            
46:
            </td> 
47:
          </tr> 
48:
          
49:
          <tr> 
50:
            <td><?php echo 'Last Name' ?></td>
51:
            <td> 
52:
            <input name="last_name" type="text" id="last_name" value="<?php echo $row_settings['last_name']; ?>">            
53:
            </td> 
54:
          </tr>          
55:
 
56:
          <tr> 
57:
            <td></td>
58:
            <td>
59:
          <input class="button" name="doSave" type="submit" id="doSave" value="<?php echo 'Save' ?>">          
60:
            </td>
61:
          </tr>                    
62:
        </table>
63:
 
64:
      </form>
65:
     <?php ?>
66:
 
67:
</body>
68:
</html>
69:
 
70:
 
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » Tips och Trix
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic